mirror of https://gitlab.com/bashrc2/epicyon
Tidying
parent
d582b5662b
commit
a5103c4074
51
epicyon.py
51
epicyon.py
|
@ -127,6 +127,7 @@ from blocking import get_blocks_via_server
|
|||
from poison import html_poisoned
|
||||
from poison import load_dictionary
|
||||
from poison import load_2grams
|
||||
from webapp_post import get_instance_software
|
||||
|
||||
|
||||
def str2bool(value_str) -> bool:
|
||||
|
@ -1344,45 +1345,29 @@ def _command_options() -> None:
|
|||
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 + '"'
|
||||
}
|
||||
instance_softw = {}
|
||||
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)
|
||||
if not argb.domain:
|
||||
origin_domain = get_config_param(base_dir, 'domain')
|
||||
else:
|
||||
origin_domain = argb.domain
|
||||
signing_priv_key_pem = get_instance_actor_key(base_dir, origin_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'])
|
||||
software_name = \
|
||||
get_instance_software(base_dir, session,
|
||||
http_prefix,
|
||||
instance_domain_name,
|
||||
instance_softw,
|
||||
signing_priv_key_pem,
|
||||
debug,
|
||||
http_prefix, domain,
|
||||
mitm_servers, False)
|
||||
if software_name:
|
||||
print(software_name.split(' ')[1])
|
||||
session.close()
|
||||
sys.exit()
|
||||
|
||||
|
|
|
@ -152,14 +152,15 @@ def _get_instance_software_html(title_str: str, software_name: str) -> str:
|
|||
return instance_str
|
||||
|
||||
|
||||
def _get_instance_software(base_dir: str, session,
|
||||
instance_http_prefix: str,
|
||||
instance_domain: str,
|
||||
instance_software: {},
|
||||
signing_priv_key_pem: str,
|
||||
debug: bool,
|
||||
http_prefix: str, domain: str,
|
||||
mitm_servers: []) -> str:
|
||||
def get_instance_software(base_dir: str, session,
|
||||
instance_http_prefix: str,
|
||||
instance_domain: str,
|
||||
instance_software: {},
|
||||
signing_priv_key_pem: str,
|
||||
debug: bool,
|
||||
http_prefix: str, domain: str,
|
||||
mitm_servers: [],
|
||||
store: bool) -> str:
|
||||
"""returns the type of instance software for the given
|
||||
instance domain eg. mastodon, epicyon, pixelfed
|
||||
"""
|
||||
|
@ -216,8 +217,10 @@ def _get_instance_software(base_dir: str, session,
|
|||
return ''
|
||||
software_name = remove_html(software_name)
|
||||
instance_software[instance_domain] = software_name
|
||||
instance_software_filename = data_dir(base_dir) + '/instance_software.json'
|
||||
save_json(instance_software, instance_software_filename)
|
||||
if store:
|
||||
instance_software_filename = \
|
||||
data_dir(base_dir) + '/instance_software.json'
|
||||
save_json(instance_software, instance_software_filename)
|
||||
return instance_domain + ' ' + software_name
|
||||
|
||||
|
||||
|
@ -2788,14 +2791,14 @@ def individual_post_as_html(signing_priv_key_pem: str,
|
|||
if '://' in instance_actor:
|
||||
instance_http_prefix = instance_actor.split('://')[0]
|
||||
software_name = \
|
||||
_get_instance_software(base_dir, session,
|
||||
instance_http_prefix,
|
||||
instance_actor,
|
||||
instance_software,
|
||||
signing_priv_key_pem,
|
||||
False,
|
||||
http_prefix, domain,
|
||||
mitm_servers)
|
||||
get_instance_software(base_dir, session,
|
||||
instance_http_prefix,
|
||||
instance_actor,
|
||||
instance_software,
|
||||
signing_priv_key_pem,
|
||||
False,
|
||||
http_prefix, domain,
|
||||
mitm_servers, True)
|
||||
|
||||
# get the title: x replies to y, x announces y, etc
|
||||
(title_str2,
|
||||
|
|
Loading…
Reference in New Issue