Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
mxrch
GitHub Repository: mxrch/GHunt
Path: blob/master/ghunt/parsers/digitalassetslinks.py
252 views
1
from typing import *
2
from ghunt.objects.apis import Parser
3
4
5
class DalStatements(Parser):
6
def __init__(self):
7
self.statements: List[DalStatement] = []
8
self.max_age: str = ""
9
self.debug_string: str = ""
10
11
def _scrape(self, digital_assets_links_base_model_data: Dict[str, any]):
12
if (statements_data := digital_assets_links_base_model_data.get('statements')):
13
for statements_data_item in statements_data:
14
statements_item = DalStatement()
15
statements_item._scrape(statements_data_item)
16
self.statements.append(statements_item)
17
self.max_age = digital_assets_links_base_model_data.get('maxAge')
18
self.debug_string = digital_assets_links_base_model_data.get('debugString')
19
20
class DalStatement(Parser):
21
def __init__(self):
22
self.source: DalSource = DalSource()
23
self.relation: str = ""
24
self.target: DalTarget = DalTarget()
25
26
def _scrape(self, digital_assets_links_unknown_model1_data: Dict[str, any]):
27
if (source_data := digital_assets_links_unknown_model1_data.get('source')):
28
self.source._scrape(source_data)
29
self.relation = digital_assets_links_unknown_model1_data.get('relation')
30
if (target_data := digital_assets_links_unknown_model1_data.get('target')):
31
self.target._scrape(target_data)
32
33
class DalSource(Parser):
34
def __init__(self):
35
self.web: DalWeb = DalWeb()
36
37
def _scrape(self, digital_assets_links_source_data: Dict[str, any]):
38
if (web_data := digital_assets_links_source_data.get('web')):
39
self.web._scrape(web_data)
40
41
class DalWeb(Parser):
42
def __init__(self):
43
self.site: str = ""
44
45
def _scrape(self, digital_assets_links_web_data: Dict[str, str]):
46
self.site = digital_assets_links_web_data.get('site')
47
48
class DalTarget(Parser):
49
def __init__(self):
50
self.android_app: DalAndroidApp = DalAndroidApp()
51
self.web: DalWeb = DalWeb()
52
53
def _scrape(self, digital_assets_links_target_data: Dict[str, any]):
54
if (android_app_data := digital_assets_links_target_data.get('androidApp')):
55
self.android_app._scrape(android_app_data)
56
if (web_data := digital_assets_links_target_data.get('web')):
57
self.web._scrape(web_data)
58
59
class DalAndroidApp(Parser):
60
def __init__(self):
61
self.package_name: str = ""
62
self.certificate: DalCertificate = DalCertificate()
63
64
def _scrape(self, digital_assets_links_android_app_data: Dict[str, any]):
65
self.package_name = digital_assets_links_android_app_data.get('packageName')
66
if (certificate_data := digital_assets_links_android_app_data.get('certificate')):
67
self.certificate._scrape(certificate_data)
68
69
class DalCertificate(Parser):
70
def __init__(self):
71
self.sha_fingerprint: str = ""
72
73
def _scrape(self, digital_assets_links_certificate_data: Dict[str, str]):
74
self.sha_fingerprint = digital_assets_links_certificate_data.get('sha256Fingerprint')
75
76