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