mirror of https://gitlab.com/bashrc2/epicyon
Getting server software type
parent
c341f87816
commit
43d70e842d
66
epicyon.py
66
epicyon.py
|
@ -837,6 +837,10 @@ def _command_options() -> None:
|
||||||
help='Category of item being shared')
|
help='Category of item being shared')
|
||||||
parser.add_argument('--location', dest='location', type=str, default=None,
|
parser.add_argument('--location', dest='location', type=str, default=None,
|
||||||
help='Location/City of item being shared')
|
help='Location/City of item being shared')
|
||||||
|
parser.add_argument('--software', dest='instance_software',
|
||||||
|
type=str, default=None,
|
||||||
|
help='Returns the type of instance software for the' +
|
||||||
|
'given domain. eg mastodon, epicyon, pixelfed')
|
||||||
parser.add_argument('--mapFormat', dest='mapFormat', type=str,
|
parser.add_argument('--mapFormat', dest='mapFormat', type=str,
|
||||||
default='kml',
|
default='kml',
|
||||||
help='Format for hashtag maps GPX/KML')
|
help='Format for hashtag maps GPX/KML')
|
||||||
|
@ -1320,6 +1324,68 @@ def _command_options() -> None:
|
||||||
session.close()
|
session.close()
|
||||||
sys.exit()
|
sys.exit()
|
||||||
|
|
||||||
|
if argb.instance_software:
|
||||||
|
debug = False
|
||||||
|
http_prefix = 'https'
|
||||||
|
if '127.0.0.1' in argb.instance_software or \
|
||||||
|
'localhost' in argb.instance_software:
|
||||||
|
http_prefix = 'http'
|
||||||
|
proxy_type = None
|
||||||
|
if '.onion' in argb.instance_software:
|
||||||
|
proxy_type = 'tor'
|
||||||
|
http_prefix = 'http'
|
||||||
|
elif '.i2p' in argb.instance_software:
|
||||||
|
proxy_type = 'i2p'
|
||||||
|
http_prefix = 'http'
|
||||||
|
if '://' not in argb.instance_software:
|
||||||
|
argb.instance_software = \
|
||||||
|
http_prefix + '://' + argb.instance_software
|
||||||
|
instance_domain_name = argb.instance_software.split('://')[1]
|
||||||
|
if '/' in instance_domain_name:
|
||||||
|
instance_domain_name = instance_domain_name.split('/')[0]
|
||||||
|
session = create_session(proxy_type)
|
||||||
|
profile_str = 'https://www.w3.org/ns/activitystreams'
|
||||||
|
as_header = {
|
||||||
|
'Accept': 'application/ld+json; profile="' + profile_str + '"'
|
||||||
|
}
|
||||||
|
if not argb.domain:
|
||||||
|
argb.domain = get_config_param(base_dir, 'domain')
|
||||||
|
domain = ''
|
||||||
|
if argb.domain:
|
||||||
|
domain = argb.domain
|
||||||
|
signing_priv_key_pem = get_instance_actor_key(base_dir, domain)
|
||||||
|
mitm_servers: list[str] = []
|
||||||
|
|
||||||
|
nodeinfo1_url = \
|
||||||
|
http_prefix + '://' + instance_domain_name + \
|
||||||
|
'/.well-known/nodeinfo'
|
||||||
|
nodeinfo1_json = get_json(signing_priv_key_pem, session, nodeinfo1_url,
|
||||||
|
as_header, None, debug, mitm_servers,
|
||||||
|
__version__, http_prefix, domain)
|
||||||
|
nodeinfo_url = None
|
||||||
|
if get_json_valid(nodeinfo1_json):
|
||||||
|
if nodeinfo1_json.get('links'):
|
||||||
|
if isinstance(nodeinfo1_json['links'], list):
|
||||||
|
if len(nodeinfo1_json['links']) > 0:
|
||||||
|
if nodeinfo1_json['links'][0].get('href'):
|
||||||
|
href = nodeinfo1_json['links'][0]['href']
|
||||||
|
if isinstance(href, str):
|
||||||
|
nodeinfo_url = href
|
||||||
|
if nodeinfo_url:
|
||||||
|
nodeinfo_json = \
|
||||||
|
get_json(signing_priv_key_pem, session, nodeinfo_url,
|
||||||
|
as_header, None, debug, mitm_servers,
|
||||||
|
__version__, http_prefix, domain)
|
||||||
|
if get_json_valid(nodeinfo_json):
|
||||||
|
if nodeinfo_json.get('software'):
|
||||||
|
if isinstance(nodeinfo_json['software'], dict):
|
||||||
|
if nodeinfo_json['software'].get('name'):
|
||||||
|
if isinstance(nodeinfo_json['software']['name'],
|
||||||
|
str):
|
||||||
|
print(nodeinfo_json['software']['name'])
|
||||||
|
session.close()
|
||||||
|
sys.exit()
|
||||||
|
|
||||||
if argb.conversation:
|
if argb.conversation:
|
||||||
post_id = argb.conversation
|
post_id = argb.conversation
|
||||||
if '://' not in post_id:
|
if '://' not in post_id:
|
||||||
|
|
|
@ -146,8 +146,9 @@ def _get_json_request(session, url: str, session_headers: {},
|
||||||
if url_domain:
|
if url_domain:
|
||||||
if url_domain not in mitm_servers:
|
if url_domain not in mitm_servers:
|
||||||
mitm_servers.append(url_domain)
|
mitm_servers.append(url_domain)
|
||||||
print('DEBUG: _get_json_request MITM ' +
|
if debug:
|
||||||
str(result.headers))
|
print('DEBUG: _get_json_request MITM ' +
|
||||||
|
str(result.headers))
|
||||||
else:
|
else:
|
||||||
if url_domain in mitm_servers:
|
if url_domain in mitm_servers:
|
||||||
mitm_servers.remove(url_domain)
|
mitm_servers.remove(url_domain)
|
||||||
|
|
Loading…
Reference in New Issue