mirror of https://gitlab.com/bashrc2/epicyon
				
				
				
			Function to get moved accounts
							parent
							
								
									cf461cba20
								
							
						
					
					
						commit
						fdbe400def
					
				
							
								
								
									
										43
									
								
								epicyon.py
								
								
								
								
							
							
						
						
									
										43
									
								
								epicyon.py
								
								
								
								
							|  | @ -111,6 +111,7 @@ from desktop_client import run_desktop_client | ||||||
| from happening import dav_month_via_server | from happening import dav_month_via_server | ||||||
| from happening import dav_day_via_server | from happening import dav_day_via_server | ||||||
| from content import import_emoji | from content import import_emoji | ||||||
|  | from relationships import get_moved_accounts | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def str2bool(value_str) -> bool: | def str2bool(value_str) -> bool: | ||||||
|  | @ -343,6 +344,9 @@ def _command_options() -> None: | ||||||
|     parser.add_argument('--posts', dest='posts', type=str, |     parser.add_argument('--posts', dest='posts', type=str, | ||||||
|                         default=None, |                         default=None, | ||||||
|                         help='Show posts for the given handle') |                         help='Show posts for the given handle') | ||||||
|  |     parser.add_argument('--moved', dest='moved', type=str, | ||||||
|  |                         default=None, | ||||||
|  |                         help='Show moved accounts for the given handle') | ||||||
|     parser.add_argument('--postDomains', dest='postDomains', type=str, |     parser.add_argument('--postDomains', dest='postDomains', type=str, | ||||||
|                         default=None, |                         default=None, | ||||||
|                         help='Show domains referenced in public ' |                         help='Show domains referenced in public ' | ||||||
|  | @ -860,6 +864,45 @@ def _command_options() -> None: | ||||||
|                                    signing_priv_key_pem, origin_domain) |                                    signing_priv_key_pem, origin_domain) | ||||||
|         sys.exit() |         sys.exit() | ||||||
| 
 | 
 | ||||||
|  |     if argb.moved: | ||||||
|  |         if not argb.domain: | ||||||
|  |             origin_domain = get_config_param(base_dir, 'domain') | ||||||
|  |         else: | ||||||
|  |             origin_domain = argb.domain | ||||||
|  |         if debug: | ||||||
|  |             print('origin_domain: ' + str(origin_domain)) | ||||||
|  |         if '@' not in argb.moved: | ||||||
|  |             if '/users/' in argb.moved: | ||||||
|  |                 moved_nickname = get_nickname_from_actor(argb.moved) | ||||||
|  |                 moved_domain, moved_port = get_domain_from_actor(argb.moved) | ||||||
|  |                 argb.moved = \ | ||||||
|  |                     get_full_domain(moved_nickname + '@' + moved_domain, | ||||||
|  |                                     moved_port) | ||||||
|  |             else: | ||||||
|  |                 print('Syntax: --moved nickname@domain') | ||||||
|  |                 sys.exit() | ||||||
|  |         if not argb.http: | ||||||
|  |             argb.port = 443 | ||||||
|  |         nickname = argb.moved.split('@')[0] | ||||||
|  |         domain = argb.moved.split('@')[1] | ||||||
|  |         proxy_type = None | ||||||
|  |         if argb.tor or domain.endswith('.onion'): | ||||||
|  |             proxy_type = 'tor' | ||||||
|  |             if domain.endswith('.onion'): | ||||||
|  |                 argb.port = 80 | ||||||
|  |         elif argb.i2p or domain.endswith('.i2p'): | ||||||
|  |             proxy_type = 'i2p' | ||||||
|  |             if domain.endswith('.i2p'): | ||||||
|  |                 argb.port = 80 | ||||||
|  |         elif argb.gnunet: | ||||||
|  |             proxy_type = 'gnunet' | ||||||
|  |         if not argb.language: | ||||||
|  |             argb.language = 'en' | ||||||
|  |         moved_dict = \ | ||||||
|  |             get_moved_accounts(base_dir, nickname, domain, 'following.txt') | ||||||
|  |         pprint(moved_dict) | ||||||
|  |         sys.exit() | ||||||
|  | 
 | ||||||
|     if argb.postDomains: |     if argb.postDomains: | ||||||
|         if '@' not in argb.postDomains: |         if '@' not in argb.postDomains: | ||||||
|             if '/users/' in argb.postDomains: |             if '/users/' in argb.postDomains: | ||||||
|  |  | ||||||
							
								
								
									
										10
									
								
								inbox.py
								
								
								
								
							
							
						
						
									
										10
									
								
								inbox.py
								
								
								
								
							|  | @ -1089,7 +1089,15 @@ def _person_receive_update(base_dir: str, | ||||||
|             print('actor updated for ' + person_json['id']) |             print('actor updated for ' + person_json['id']) | ||||||
| 
 | 
 | ||||||
|     if person_json.get('movedTo'): |     if person_json.get('movedTo'): | ||||||
|         new_actor = person_json['id'] + ' ' + person_json['movedTo'] |         prev_domain, prev_port = get_domain_from_actor(person_json['id']) | ||||||
|  |         prev_domain_full = get_full_domain(prev_domain, prev_port) | ||||||
|  |         prev_nickname = get_nickname_from_actor(person_json['id']) | ||||||
|  |         new_domain, new_port = get_domain_from_actor(person_json['movedTo']) | ||||||
|  |         new_domain_full = get_full_domain(new_domain, new_port) | ||||||
|  |         new_nickname = get_nickname_from_actor(person_json['movedTo']) | ||||||
|  | 
 | ||||||
|  |         new_actor = prev_nickname + '@' + prev_domain_full + ' ' + \ | ||||||
|  |             new_nickname + '@' + new_domain_full | ||||||
|         refollow_str = '' |         refollow_str = '' | ||||||
|         refollow_filename = base_dir + '/accounts/actors_moved.txt' |         refollow_filename = base_dir + '/accounts/actors_moved.txt' | ||||||
|         refollow_file_exists = False |         refollow_file_exists = False | ||||||
|  |  | ||||||
|  | @ -0,0 +1,51 @@ | ||||||
|  | __filename__ = "relationships.py" | ||||||
|  | __author__ = "Bob Mottram" | ||||||
|  | __license__ = "AGPL3+" | ||||||
|  | __version__ = "1.3.0" | ||||||
|  | __maintainer__ = "Bob Mottram" | ||||||
|  | __email__ = "bob@libreserver.org" | ||||||
|  | __status__ = "Production" | ||||||
|  | __module_group__ = "Core" | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | import os | ||||||
|  | from utils import acct_dir | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | def get_moved_accounts(base_dir: str, nickname: str, domain: str, | ||||||
|  |                        filename: str = 'following.txt') -> {}: | ||||||
|  |     """returns a dict of moved accounts | ||||||
|  |     """ | ||||||
|  |     refollow_filename = base_dir + '/accounts/actors_moved.txt' | ||||||
|  |     if not os.path.isfile(refollow_filename): | ||||||
|  |         return {} | ||||||
|  |     refollow_str = '' | ||||||
|  |     try: | ||||||
|  |         with open(refollow_filename, 'r', | ||||||
|  |                   encoding='utf-8') as fp_refollow: | ||||||
|  |             refollow_str = fp_refollow.read() | ||||||
|  |     except OSError: | ||||||
|  |         print('EX: get_moved_accounts unable to read ' + | ||||||
|  |               refollow_filename) | ||||||
|  |     refollow_list = refollow_str.split('\n') | ||||||
|  | 
 | ||||||
|  |     follow_filename = \ | ||||||
|  |         acct_dir(base_dir, nickname, domain) + '/' + filename | ||||||
|  |     follow_str = '' | ||||||
|  |     try: | ||||||
|  |         with open(follow_filename, 'r', | ||||||
|  |                   encoding='utf-8') as fp_follow: | ||||||
|  |             follow_str = fp_follow.read() | ||||||
|  |     except OSError: | ||||||
|  |         print('EX: get_moved_accounts unable to read ' + | ||||||
|  |               follow_filename) | ||||||
|  |     follow_list = follow_str.split('\n') | ||||||
|  | 
 | ||||||
|  |     result = {} | ||||||
|  |     for handle in follow_list: | ||||||
|  |         for line in refollow_list: | ||||||
|  |             if line.startswith(handle + ' '): | ||||||
|  |                 new_handle = line.split(' ')[1] | ||||||
|  |                 result[handle] = new_handle | ||||||
|  |                 break | ||||||
|  |     return result | ||||||
		Loading…
	
		Reference in New Issue