mirror of https://gitlab.com/bashrc2/epicyon
				
				
				
			Merge branch 'main' of gitlab.com:bashrc2/epicyon
						commit
						c088283d03
					
				|  | @ -324,7 +324,7 @@ def _save_custom_emoji(session, base_dir: str, emojiName: str, url: str, | |||
|     if not os.path.isdir(custom_emoji_dir): | ||||
|         os.mkdir(custom_emoji_dir) | ||||
|     emoji_image_filename = custom_emoji_dir + '/' + emojiName + '.' + ext | ||||
|     if not download_image(session, base_dir, url, | ||||
|     if not download_image(session, url, | ||||
|                           emoji_image_filename, debug, False): | ||||
|         if debug: | ||||
|             print('EX: custom emoji not downloaded ' + url) | ||||
|  | @ -1573,7 +1573,7 @@ def import_emoji(base_dir: str, import_filename: str, session) -> None: | |||
|             emoji_image_filename = base_dir + '/emoji/' + tag + '.png' | ||||
|             if os.path.isfile(emoji_image_filename): | ||||
|                 continue | ||||
|             if download_image(session, base_dir, url, | ||||
|             if download_image(session, url, | ||||
|                               emoji_image_filename, True, False): | ||||
|                 emoji_dict[tag] = tag | ||||
|                 added += 1 | ||||
|  |  | |||
|  | @ -852,12 +852,10 @@ def _desktop_show_actor(base_dir: str, actor_json: {}, translate: {}, | |||
| 
 | ||||
| 
 | ||||
| def _desktop_show_profile(session, nickname: str, domain: str, | ||||
|                           http_prefix: str, base_dir: str, box_name: str, | ||||
|                           page_number: int, index: int, box_json: {}, | ||||
|                           base_dir: str, index: int, box_json: {}, | ||||
|                           system_language: str, | ||||
|                           screenreader: str, espeak, | ||||
|                           translate: {}, your_actor: str, | ||||
|                           post_json_object: {}, | ||||
|                           translate: {}, post_json_object: {}, | ||||
|                           signing_priv_key_pem: str) -> {}: | ||||
|     """Shows the profile of the actor for the given post | ||||
|     Returns the actor json | ||||
|  | @ -901,13 +899,10 @@ def _desktop_show_profile(session, nickname: str, domain: str, | |||
|     return actor_json | ||||
| 
 | ||||
| 
 | ||||
| def _desktop_show_profile_from_handle(session, nickname: str, domain: str, | ||||
|                                       http_prefix: str, base_dir: str, | ||||
|                                       box_name: str, handle: str, | ||||
|                                       system_language: str, | ||||
| def _desktop_show_profile_from_handle(session, domain: str, base_dir: str, | ||||
|                                       handle: str, system_language: str, | ||||
|                                       screenreader: str, espeak, | ||||
|                                       translate: {}, your_actor: str, | ||||
|                                       post_json_object: {}, | ||||
|                                       translate: {}, | ||||
|                                       signing_priv_key_pem: str) -> {}: | ||||
|     """Shows the profile for a handle | ||||
|     Returns the actor json | ||||
|  | @ -985,9 +980,7 @@ def _desktop_show_box(indent: str, | |||
|                       your_actor: str, box_name: str, box_json: {}, | ||||
|                       translate: {}, | ||||
|                       screenreader: str, system_language: str, espeak, | ||||
|                       page_number: int, | ||||
|                       new_replies: bool, | ||||
|                       new_dms: bool) -> bool: | ||||
|                       page_number: int) -> bool: | ||||
|     """Shows online timeline | ||||
|     """ | ||||
|     number_width = 2 | ||||
|  | @ -1429,8 +1422,6 @@ def run_desktop_client(base_dir: str, proxy_type: str, http_prefix: str, | |||
|     content = None | ||||
|     cached_webfingers = {} | ||||
|     person_cache = {} | ||||
|     new_replies_exist = False | ||||
|     new_dms_exist = False | ||||
|     pgp_key_upload = False | ||||
| 
 | ||||
|     say_str = indent + 'Loading translations file' | ||||
|  | @ -1502,12 +1493,9 @@ def run_desktop_client(base_dir: str, proxy_type: str, http_prefix: str, | |||
|                                       signing_priv_key_pem) | ||||
|         else: | ||||
|             inbox_json = box_json | ||||
|         new_dms_exist = False | ||||
|         new_replies_exist = False | ||||
|         if inbox_json: | ||||
|             _new_desktop_notifications(your_actor, inbox_json, notify_json) | ||||
|             if notify_json.get('dmNotify'): | ||||
|                 new_dms_exist = True | ||||
|                 if notify_json.get('dmNotifyChanged'): | ||||
|                     _desktop_notification(notification_type, | ||||
|                                           "Epicyon", | ||||
|  | @ -1515,7 +1503,6 @@ def run_desktop_client(base_dir: str, proxy_type: str, http_prefix: str, | |||
|                     if notification_sounds: | ||||
|                         _play_notification_sound(dm_sound_filename, player) | ||||
|             if notify_json.get('repliesNotify'): | ||||
|                 new_replies_exist = True | ||||
|                 if notify_json.get('repliesNotifyChanged'): | ||||
|                     _desktop_notification(notification_type, | ||||
|                                           "Epicyon", | ||||
|  | @ -1532,9 +1519,7 @@ def run_desktop_client(base_dir: str, proxy_type: str, http_prefix: str, | |||
|                                   your_actor, curr_timeline, box_json, | ||||
|                                   translate, | ||||
|                                   None, system_language, espeak, | ||||
|                                   page_number, | ||||
|                                   new_replies_exist, | ||||
|                                   new_dms_exist) | ||||
|                                   page_number) | ||||
|                 desktop_shown = True | ||||
|             prev_timeline_first_id = timeline_first_id | ||||
|         else: | ||||
|  | @ -1580,9 +1565,7 @@ def run_desktop_client(base_dir: str, proxy_type: str, http_prefix: str, | |||
|                                       your_actor, curr_timeline, box_json, | ||||
|                                       translate, | ||||
|                                       screenreader, system_language, espeak, | ||||
|                                       page_number, | ||||
|                                       new_replies_exist, new_dms_exist) | ||||
|                 new_dms_exist = False | ||||
|                                       page_number) | ||||
|             elif command_str.startswith('show rep'): | ||||
|                 page_number = 1 | ||||
|                 prev_timeline_first_id = '' | ||||
|  | @ -1596,10 +1579,7 @@ def run_desktop_client(base_dir: str, proxy_type: str, http_prefix: str, | |||
|                                       your_actor, curr_timeline, box_json, | ||||
|                                       translate, | ||||
|                                       screenreader, system_language, espeak, | ||||
|                                       page_number, | ||||
|                                       new_replies_exist, new_dms_exist) | ||||
|                 # Turn off the replies indicator | ||||
|                 new_replies_exist = False | ||||
|                                       page_number) | ||||
|             elif command_str.startswith('show b'): | ||||
|                 page_number = 1 | ||||
|                 prev_timeline_first_id = '' | ||||
|  | @ -1613,10 +1593,7 @@ def run_desktop_client(base_dir: str, proxy_type: str, http_prefix: str, | |||
|                                       your_actor, curr_timeline, box_json, | ||||
|                                       translate, | ||||
|                                       screenreader, system_language, espeak, | ||||
|                                       page_number, | ||||
|                                       new_replies_exist, new_dms_exist) | ||||
|                 # Turn off the replies indicator | ||||
|                 new_replies_exist = False | ||||
|                                       page_number) | ||||
|             elif (command_str.startswith('show sen') or | ||||
|                   command_str.startswith('show out')): | ||||
|                 page_number = 1 | ||||
|  | @ -1631,8 +1608,7 @@ def run_desktop_client(base_dir: str, proxy_type: str, http_prefix: str, | |||
|                                       your_actor, curr_timeline, box_json, | ||||
|                                       translate, | ||||
|                                       screenreader, system_language, espeak, | ||||
|                                       page_number, | ||||
|                                       new_replies_exist, new_dms_exist) | ||||
|                                       page_number) | ||||
|             elif (command_str == 'show' or command_str.startswith('show in') or | ||||
|                   command_str == 'clear'): | ||||
|                 page_number = 1 | ||||
|  | @ -1656,8 +1632,7 @@ def run_desktop_client(base_dir: str, proxy_type: str, http_prefix: str, | |||
|                                       your_actor, curr_timeline, box_json, | ||||
|                                       translate, | ||||
|                                       screenreader, system_language, espeak, | ||||
|                                       page_number, | ||||
|                                       new_replies_exist, new_dms_exist) | ||||
|                                       page_number) | ||||
|             elif (command_str.startswith('read ') or | ||||
|                   command_str.startswith('show ') or | ||||
|                   command_str == 'read' or | ||||
|  | @ -1699,14 +1674,11 @@ def run_desktop_client(base_dir: str, proxy_type: str, http_prefix: str, | |||
|                     if post_json_object: | ||||
|                         actor_json = \ | ||||
|                             _desktop_show_profile(session, nickname, domain, | ||||
|                                                   http_prefix, base_dir, | ||||
|                                                   curr_timeline, | ||||
|                                                   page_number, post_index, | ||||
|                                                   base_dir, post_index, | ||||
|                                                   box_json, | ||||
|                                                   system_language, | ||||
|                                                   screenreader, | ||||
|                                                   espeak, translate, | ||||
|                                                   your_actor, | ||||
|                                                   post_json_object, | ||||
|                                                   signing_priv_key_pem) | ||||
|                     else: | ||||
|  | @ -1718,16 +1690,12 @@ def run_desktop_client(base_dir: str, proxy_type: str, http_prefix: str, | |||
|                     profile_handle = post_index_str | ||||
|                     _desktop_clear_screen() | ||||
|                     _desktop_show_banner() | ||||
|                     _desktop_show_profile_from_handle(session, | ||||
|                                                       nickname, domain, | ||||
|                                                       http_prefix, base_dir, | ||||
|                                                       curr_timeline, | ||||
|                     _desktop_show_profile_from_handle(session, domain, | ||||
|                                                       base_dir, | ||||
|                                                       profile_handle, | ||||
|                                                       system_language, | ||||
|                                                       screenreader, | ||||
|                                                       espeak, translate, | ||||
|                                                       your_actor, | ||||
|                                                       None, | ||||
|                                                       signing_priv_key_pem) | ||||
|                     say_str = 'Press Enter to continue...' | ||||
|                     say_str2 = _highlight_text(say_str) | ||||
|  | @ -1742,12 +1710,10 @@ def run_desktop_client(base_dir: str, proxy_type: str, http_prefix: str, | |||
|                     post_index = int(post_index_str) | ||||
|                     actor_json = \ | ||||
|                         _desktop_show_profile(session, nickname, domain, | ||||
|                                               http_prefix, base_dir, | ||||
|                                               curr_timeline, | ||||
|                                               page_number, post_index, | ||||
|                                               base_dir, post_index, | ||||
|                                               box_json, | ||||
|                                               system_language, screenreader, | ||||
|                                               espeak, translate, your_actor, | ||||
|                                               espeak, translate, | ||||
|                                               None, signing_priv_key_pem) | ||||
|                     say_str = 'Press Enter to continue...' | ||||
|                     say_str2 = _highlight_text(say_str) | ||||
|  | @ -2581,5 +2547,4 @@ def run_desktop_client(base_dir: str, proxy_type: str, http_prefix: str, | |||
|                                       your_actor, curr_timeline, box_json, | ||||
|                                       translate, | ||||
|                                       screenreader, system_language, | ||||
|                                       espeak, page_number, | ||||
|                                       new_replies_exist, new_dms_exist) | ||||
|                                       espeak, page_number) | ||||
|  |  | |||
							
								
								
									
										17
									
								
								happening.py
								
								
								
								
							
							
						
						
									
										17
									
								
								happening.py
								
								
								
								
							|  | @ -353,8 +353,7 @@ def _dav_encode_token(year: int, month_number: int, | |||
| 
 | ||||
| 
 | ||||
| def _icalendar_day(base_dir: str, nickname: str, domain: str, | ||||
|                    day_events: [], person_cache: {}, | ||||
|                    http_prefix: str) -> str: | ||||
|                    day_events: [], person_cache: {}) -> str: | ||||
|     """Returns a day's events in icalendar format | ||||
|     """ | ||||
|     ical_str = '' | ||||
|  | @ -478,7 +477,6 @@ def _icalendar_day(base_dir: str, nickname: str, domain: str, | |||
| def get_todays_events_icalendar(base_dir: str, nickname: str, domain: str, | ||||
|                                 year: int, month_number: int, | ||||
|                                 day_number: int, person_cache: {}, | ||||
|                                 http_prefix: str, | ||||
|                                 text_match: str, system_language: str) -> str: | ||||
|     """Returns today's events in icalendar format | ||||
|     """ | ||||
|  | @ -503,8 +501,7 @@ def get_todays_events_icalendar(base_dir: str, nickname: str, domain: str, | |||
|         return ical_str | ||||
| 
 | ||||
|     ical_str += \ | ||||
|         _icalendar_day(base_dir, nickname, domain, day_events, person_cache, | ||||
|                        http_prefix) | ||||
|         _icalendar_day(base_dir, nickname, domain, day_events, person_cache) | ||||
| 
 | ||||
|     ical_str += 'END:VCALENDAR\n' | ||||
|     return ical_str | ||||
|  | @ -514,7 +511,6 @@ def get_month_events_icalendar(base_dir: str, nickname: str, domain: str, | |||
|                                year: int, | ||||
|                                month_number: int, | ||||
|                                person_cache: {}, | ||||
|                                http_prefix: str, | ||||
|                                text_match: str) -> str: | ||||
|     """Returns today's events in icalendar format | ||||
|     """ | ||||
|  | @ -537,8 +533,7 @@ def get_month_events_icalendar(base_dir: str, nickname: str, domain: str, | |||
|         day_events = month_events[str(day_of_month)] | ||||
|         ical_str += \ | ||||
|             _icalendar_day(base_dir, nickname, domain, | ||||
|                            day_events, person_cache, | ||||
|                            http_prefix) | ||||
|                            day_events, person_cache) | ||||
| 
 | ||||
|     ical_str += 'END:VCALENDAR\n' | ||||
|     return ical_str | ||||
|  | @ -1098,7 +1093,7 @@ def dav_report_response(base_dir: str, nickname: str, domain: str, | |||
|                                                 search_date.year, | ||||
|                                                 search_date.month, | ||||
|                                                 search_date.day, person_cache, | ||||
|                                                 http_prefix, text_match, | ||||
|                                                 text_match, | ||||
|                                                 system_language) | ||||
|                 events_href = \ | ||||
|                     http_prefix + '://' + domain_full + '/users/' + \ | ||||
|  | @ -1132,7 +1127,6 @@ def dav_report_response(base_dir: str, nickname: str, domain: str, | |||
|                                                query_start_year, | ||||
|                                                query_start_month, | ||||
|                                                person_cache, | ||||
|                                                http_prefix, | ||||
|                                                text_match) | ||||
|                 events_href = \ | ||||
|                     http_prefix + '://' + domain_full + '/users/' + \ | ||||
|  | @ -1180,7 +1174,6 @@ def dav_report_response(base_dir: str, nickname: str, domain: str, | |||
|                                                    nickname, domain, | ||||
|                                                    year, month, | ||||
|                                                    person_cache, | ||||
|                                                    http_prefix, | ||||
|                                                    text_match) | ||||
|                     events_href = \ | ||||
|                         http_prefix + '://' + domain_full + '/users/' + \ | ||||
|  | @ -1217,7 +1210,7 @@ def dav_report_response(base_dir: str, nickname: str, domain: str, | |||
|             get_todays_events_icalendar(base_dir, nickname, domain, | ||||
|                                         search_date.year, search_date.month, | ||||
|                                         search_date.day, person_cache, | ||||
|                                         http_prefix, text_match, | ||||
|                                         text_match, | ||||
|                                         system_language) | ||||
|         events_href = \ | ||||
|             http_prefix + '://' + domain_full + '/users/' + \ | ||||
|  |  | |||
|  | @ -0,0 +1,484 @@ | |||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||
| <!-- Created with Inkscape (http://www.inkscape.org/) --> | ||||
| 
 | ||||
| <svg | ||||
|    version="1.1" | ||||
|    id="svg2" | ||||
|    width="2048" | ||||
|    height="2048" | ||||
|    viewBox="0 0 2048 2048" | ||||
|    sodipodi:docname="logo.svg" | ||||
|    inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)" | ||||
|    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||||
|    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||||
|    xmlns:xlink="http://www.w3.org/1999/xlink" | ||||
|    xmlns="http://www.w3.org/2000/svg" | ||||
|    xmlns:svg="http://www.w3.org/2000/svg"> | ||||
|   <defs | ||||
|      id="defs6" /> | ||||
|   <sodipodi:namedview | ||||
|      id="namedview4" | ||||
|      pagecolor="#ffffff" | ||||
|      bordercolor="#666666" | ||||
|      borderopacity="1.0" | ||||
|      inkscape:pageshadow="2" | ||||
|      inkscape:pageopacity="0.0" | ||||
|      inkscape:pagecheckerboard="0" | ||||
|      showgrid="false" | ||||
|      inkscape:zoom="0.29248047" | ||||
|      inkscape:cx="871.85309" | ||||
|      inkscape:cy="1022.2905" | ||||
|      inkscape:window-width="1080" | ||||
|      inkscape:window-height="1836" | ||||
|      inkscape:window-x="0" | ||||
|      inkscape:window-y="29" | ||||
|      inkscape:window-maximized="1" | ||||
|      inkscape:current-layer="g8" /> | ||||
|   <g | ||||
|      inkscape:groupmode="layer" | ||||
|      inkscape:label="Image" | ||||
|      id="g8"> | ||||
|     <image | ||||
|        width="2048" | ||||
|        height="2048" | ||||
|        preserveAspectRatio="none" | ||||
|        style="image-rendering:optimizeQuality" | ||||
|        xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAACAAAAAgAAQMAAACIaUFzAAADJ3pUWHRSYXcgcHJvZmlsZSB0eXBl | ||||
| IGV4aWYAAHja7ZdLchwhDIb3nCJHQBJC4jg0NFW5QY6fH/phz9jluCpZZDFQDYwaJKFP0HbYf/0c | ||||
| 4QcKx+QhqXkuOUeUVFLhioHHo2yrpZhWexU/pQ/ycL9giAS9HC8Kn8t2yOd4nPLTCF3zb0XngCpG | ||||
| +vaiXgu2R/l26md/VnR6IHRa7ueCU5HwIad0/G756HNxe9har++2cEXgfDIjensmY8NOs+SRO6rm | ||||
| 3Zba7TQ6PQ7PghV0Q9i7whFh3oUkohU5PZT5sFT0GS1JwjwK64dCOF/oCnoERo4Gr89tjIsiAvk+ | ||||
| Lu9IHh49ly+3VKB4n24/Kgz38DFX6LNcuUdPqQKH6VAkjyhjvvtP5aRPcrk8moDfWfZ8W36Qm9wm | ||||
| 4jPhMEb3sTaNXdSUwSufm7q2skaYh1xMspZlVMOjGNuqJSB4HmtsSLgeGxJ3w7gQg/mgRJ0qDdpX | ||||
| 36jBxcQ7G3rmxrJkLsYlcAN25MKsNNikSBdHnrSVO0n49oVgdNa2jDkMd8JMJihDHvG/qV8qGqPN | ||||
| EFH0O1bwi+eJhBuT3GwxC0ACjTOougJ81ecyuQoI6gqzY4M1boeKTWll9pFcskALJir646ST9VMB | ||||
| QgTbCmdIQCBmEqVM0ZiNCHF0CgU4ojNO3gYEpModTnISyYDjPG1jjZGDZWXlQ4ybFCAUJ9WApkgN | ||||
| gJWSIn8sOXKoqmhS1aymrkUrTlrCKcvZ8rySq4klU8tm5lasunhy9Rzc3L14LVwEV7aWXKx4KaVW | ||||
| GK3QXLG6YkKtG2+ypU23vNnmW9lqQ/a01LTl0Kx5K6127tJxCeGYW/deet1pRyrtadcdx373vex1 | ||||
| INWGjDR05GHDRxn1jdqJ9UP9PjW6qPEiNSfaTQ1Ss0sFzetEJzMQ40QgbpMAIbEns+iBUuJJbjLD | ||||
| NwinQhlO6oTTaRIDwbQT66Cb3Ru5m1tAPP+WG09yYaL7F+TCRPcFuY/cPqE2P2kBl4IsQvMYzqBG | ||||
| welrvbJX3nBf+Bx4nd/Wr/rwpwnf7V+KXopeil6KXopeil6K/lNF+OMB/wSG33A4w46juleIAAAB | ||||
| hWlDQ1BJQ0MgcHJvZmlsZQAAeJx9kT1Iw0AcxV9TtUWqHewg4pChOlnwC3HUKhShQqkVWnUwufRD | ||||
| aNKQpLg4Cq4FBz8Wqw4uzro6uAqC4AeIo5OToouU+L+k0CLGg+N+vLv3uHsHCPUyU82OUUDVLCOd | ||||
| iIvZ3IoYeEUXehHGGIISM/XZVCoJz/F1Dx9f72I8y/vcn6NHyZsM8InEM0w3LOJ14qlNS+e8Txxh | ||||
| JUkhPiceMeiCxI9cl11+41x0WOCZESOTniOOEIvFNpbbmJUMlXiSOKqoGuULWZcVzluc1XKVNe/J | ||||
| XxjKa8tLXKc5iAQWsIgURMioYgNlWIjRqpFiIk37cQ//gONPkUsm1wYYOeZRgQrJ8YP/we9uzcLE | ||||
| uJsUigOdL7b9MQQEdoFGzba/j227cQL4n4ErreWv1IHpT9JrLS16BIS3gYvrlibvAZc7QP+TLhmS | ||||
| I/lpCoUC8H5G35QD+m6B7lW3t+Y+Th+ADHWVvAEODoHhImWvebw72N7bv2ea/f0AVTtymzJac7AA | ||||
| AA7gaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1 | ||||
| TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1l | ||||
| dGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA0LjQuMC1FeGl2MiI+CiA8cmRmOlJERiB4bWxuczpyZGY9 | ||||
| Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogIDxyZGY6RGVz | ||||
| Y3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv | ||||
| bS94YXAvMS4wL21tLyIKICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8x | ||||
| LjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2Rj | ||||
| L2VsZW1lbnRzLzEuMS8iCiAgICB4bWxuczpHSU1QPSJodHRwOi8vd3d3LmdpbXAub3JnL3htcC8i | ||||
| CiAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5z | ||||
| OnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgeG1wTU06RG9jdW1lbnRJRD0i | ||||
| Z2ltcDpkb2NpZDpnaW1wOjdmNTU4YTVkLTAyZTAtNGZiZi04NjJiLTc5M2Q2ZjZjN2M3NSIKICAg | ||||
| eG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozMDMwZWFkYy1kM2YyLTRmZWItYWVlZS0wYTQwYjVk | ||||
| OGRjMWQiCiAgIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpiNzhkZTUyYS03YzY0 | ||||
| LTRiZmMtYWVjYy0xMTVkY2M0MzVmYzQiCiAgIGRjOkZvcm1hdD0iaW1hZ2UvcG5nIgogICBHSU1Q | ||||
| OkFQST0iMi4wIgogICBHSU1QOlBsYXRmb3JtPSJMaW51eCIKICAgR0lNUDpUaW1lU3RhbXA9IjE2 | ||||
| NTUyMjE4MDUyODg5OTciCiAgIEdJTVA6VmVyc2lvbj0iMi4xMC4zMCIKICAgdGlmZjpPcmllbnRh | ||||
| dGlvbj0iMSIKICAgeG1wOkNyZWF0b3JUb29sPSJHSU1QIDIuMTAiPgogICA8eG1wTU06SGlzdG9y | ||||
| eT4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIK | ||||
| ICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDph | ||||
| ZmUxNjEyZS0yYmFiLTQ4NjgtYTNlMS1hMTQzMTQ1OThjNWEiCiAgICAgIHN0RXZ0OnNvZnR3YXJl | ||||
| QWdlbnQ9IkdpbXAgMi4xMCAoTGludXgpIgogICAgICBzdEV2dDp3aGVuPSIyMDIxLTEyLTEyVDIx | ||||
| OjI2OjA1KzAwOjAwIi8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgog | ||||
| ICAgICBzdEV2dDpjaGFuZ2VkPSIvIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjFj | ||||
| ZjUxMzYxLTVlMDEtNGFlMi1hNmZiLWFhYjZiMjI2M2IyZCIKICAgICAgc3RFdnQ6c29mdHdhcmVB | ||||
| Z2VudD0iR2ltcCAyLjEwIChMaW51eCkiCiAgICAgIHN0RXZ0OndoZW49IjIwMjItMDYtMTRUMTY6 | ||||
| NDg6MzgrMDE6MDAiLz4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAg | ||||
| ICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6OGY1 | ||||
| ZGQwZDUtOTBkNi00YWQxLWEyN2UtYWNiYTFjNTQzZWNmIgogICAgICBzdEV2dDpzb2Z0d2FyZUFn | ||||
| ZW50PSJHaW1wIDIuMTAgKExpbnV4KSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyMi0wNi0xNFQxNjo1 | ||||
| MDowNSswMTowMCIvPgogICAgPC9yZGY6U2VxPgogICA8L3htcE1NOkhpc3Rvcnk+CiAgPC9yZGY6 | ||||
| RGVzY3JpcHRpb24+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAg | ||||
| ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg | ||||
| ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg | ||||
| ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg | ||||
| ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg | ||||
| ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog | ||||
| ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg | ||||
| ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg | ||||
| ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg | ||||
| ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg | ||||
| ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg | ||||
| ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg | ||||
| ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg | ||||
| ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg | ||||
| ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg | ||||
| ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg | ||||
| ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg | ||||
| ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg | ||||
| ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg | ||||
| ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg | ||||
| ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg | ||||
| ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg | ||||
| ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg | ||||
| ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg | ||||
| ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg | ||||
| ICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg | ||||
| ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg | ||||
| ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg | ||||
| ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg | ||||
| CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg | ||||
| ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg | ||||
| ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg | ||||
| ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg | ||||
| ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg | ||||
| ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg | ||||
| ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg | ||||
| ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz5sc3Io | ||||
| AAAABlBMVEVWBQBlboYG6bSiAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAADsQA | ||||
| AA7EAZUrDhsAAAAHdElNRQfmBg4PMgX1EDdvAAAAFnRFWHRDb21tZW50AGJpbmFyeSBjb21tZW50 | ||||
| xeSgegAAIABJREFUeNrt3buu5bySIGixCAy94gs0wEcod4wGeB6pzfEooB9sNCijH2NUaON4UzKO | ||||
| oQHUYp/8M3NvXXhnBKmVijC66+S/99rSt6hg8CJpGCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo | ||||
| KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo | ||||
| KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo | ||||
| KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo | ||||
| KCheEXz55/+jXgxg/4rlteevfwLY8aXnL3+dv11ffQH8iOmdGfAbYH8lgPgGsPOrU8Bbm4CyL28C | ||||
| +giwvRDAHAHe2BGcAV5YC9hzjG8HeF8auALs784B1ALe1wKuAG/rCdkNYHk7wPZ2APv2HPC2JGDf | ||||
| ngTM25OAeXsS0G9PAvrtSUDZlycBB8C7koC0L08Cwr48CbgAXpUEuH15EnACvCkJMPvyJOAEeFUS | ||||
| sG9PAubtScC8PQnotycBJ8CbVgeUMwuObweY3z0cfFUW/BoNbS/dKfEFsOt3ZsGv0dAm31kLfgHs | ||||
| /J3dwPdoiL20G/hu9ead3cB3q1fv7Aa+vvdJvLMb+Or9ZvbObkB95z3zyikB9Z339Cu7gcNNQ/KV | ||||
| 3cD3YOC0SvKeOZHvWvg0RfyeboAdTvmV3QA7nLJ+ZTdwGACpV3YD36XgKQu+pxv4LgVPS6Xv6QYO | ||||
| peDwym7gUAqeiuH3lYLLeZJ8fF0puJ53zLymHzyUgqcsOL8OYB9OWfA1AMda+JgF31MIHPO+euO0 | ||||
| oDnkffnGSkgf8v4rH6lxBGBvrISOtfAxC76mEjqWgscpgVeWgscs+L5ScB1OxfD7SsFtOGXB11RC | ||||
| p1LwkAXfUwmdOj79wkrIHAHkCyuhYy18zIKvLAWPWfA1hcCpFHzjEwZPpeAhC74UQL2vEjrVwocs | ||||
| +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 | ||||
| dte4E4iNh6cowAace9dnAYxRgBUYoHEOjI2H4yXzDAwwPApgi/fcEyzA0hqAJw7Ngb8x85A+IDYc | ||||
| nKNHvMMCbEPzSByZGtikbZ5RBUUHA/Geu/Ca1c8oAmKV0B4HmEHdlw4AMm1gpoCTln7KFRDsB5c4 | ||||
| AOwgrMP5B/vBOdpQNtCGt/UAYGkjUwlcuYsnlMGxfnCPp4oFFGDsApA2MBPAQxfxlCsg1A8u7wCQ | ||||
| SeMcDly5iYd0gsF+cIwCbKB/tc/5+/vBPd5ZLJAAna4AfzewxQFmSPZuAGnjHOjSVTykEwxkwTkO | ||||
| AJl6ujUAbxIYo+XCBgmwdAMYigEWSICpH4BOGehp4I5bPGAuJJwE9mjBWHXVis4LIvHhwBrtuBdI | ||||
| gLknwJDQxzPowZt5SCfoLXPGWDPZIJvdPvQNHp+gVcDTF+YhVYBPYI/2W6CJZ+kNEO+WGHDlZh6U | ||||
| A12d4RbLWjMowNgf4HKRR6eOQPvefRgeJrDFLpIVFGB7BAAPJyUGW7r/27Ny4BVginxn9W1WPCwH | ||||
| XjJhbNC0gnI/IgeeBKZYPzGBtoB9eE4I//EI0CPmj8uB36e5R0cMENesfloO/P5u9tigEWTwrh+Y | ||||
| AyMAGnQJQz8xB/4E2CKHPIFlm+flwL+u9TXcRawDMMA6fEhw0O9LPGFCuGTiaIIGWIaPCQN5uPyJ | ||||
| RUA8ca+wH9dvVbywUF4HaID5kwD4Ct2gPqcHQLqi9uHdIceBgoKCgoKCgoKCgoKCgoKCgoKCgoKC | ||||
| goKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKC | ||||
| goKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKC | ||||
| goKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKC | ||||
| goKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKC | ||||
| goKCgoLij4r/DTmR+19NqbnDAAAAAElFTkSuQmCC | ||||
| " | ||||
|        id="image10" /> | ||||
|   </g> | ||||
| </svg> | ||||
| After Width: | Height: | Size: 34 KiB | 
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 24 KiB | 
							
								
								
									
										110
									
								
								inbox.py
								
								
								
								
							
							
						
						
									
										110
									
								
								inbox.py
								
								
								
								
							|  | @ -186,7 +186,7 @@ def cache_svg_images(session, base_dir: str, http_prefix: str, | |||
|             if not test_image_filename: | ||||
|                 image_filename = \ | ||||
|                     base_dir + '/media/' + post_id + '_' + filename | ||||
|                 if not download_image(session, base_dir, url, | ||||
|                 if not download_image(session, url, | ||||
|                                       image_filename, debug): | ||||
|                     continue | ||||
|             else: | ||||
|  | @ -884,9 +884,7 @@ def _inbox_post_recipients(base_dir: str, post_json_object: {}, | |||
|     return recipients_dict, recipients_dict_followers | ||||
| 
 | ||||
| 
 | ||||
| def _receive_undo_follow(session, base_dir: str, http_prefix: str, | ||||
|                          port: int, message_json: {}, | ||||
|                          federation_list: [], | ||||
| def _receive_undo_follow(base_dir: str, message_json: {}, | ||||
|                          debug: bool, domain: str, | ||||
|                          onion_domain: str, i2p_domain: str) -> bool: | ||||
|     if not message_json['object'].get('actor'): | ||||
|  | @ -947,12 +945,8 @@ def _receive_undo_follow(session, base_dir: str, http_prefix: str, | |||
|     return False | ||||
| 
 | ||||
| 
 | ||||
| def _receive_undo(session, base_dir: str, http_prefix: str, | ||||
|                   port: int, send_threads: [], post_log: [], | ||||
|                   cached_webfingers: {}, person_cache: {}, | ||||
|                   message_json: {}, federation_list: [], | ||||
|                   debug: bool, domain: str, | ||||
|                   onion_domain: str, i2p_domain: str) -> bool: | ||||
| def _receive_undo(base_dir: str, message_json: {}, debug: bool, | ||||
|                   domain: str, onion_domain: str, i2p_domain: str) -> bool: | ||||
|     """Receives an undo request within the POST section of HTTPServer | ||||
|     """ | ||||
|     if not message_json['type'].startswith('Undo'): | ||||
|  | @ -971,10 +965,8 @@ def _receive_undo(session, base_dir: str, http_prefix: str, | |||
|         return False | ||||
|     if message_json['object']['type'] == 'Follow' or \ | ||||
|        message_json['object']['type'] == 'Join': | ||||
|         return _receive_undo_follow(session, base_dir, http_prefix, | ||||
|                                     port, message_json, | ||||
|                                     federation_list, debug, | ||||
|                                     domain, onion_domain, i2p_domain) | ||||
|         return _receive_undo_follow(base_dir, message_json, | ||||
|                                     debug, domain, onion_domain, i2p_domain) | ||||
|     return False | ||||
| 
 | ||||
| 
 | ||||
|  | @ -1242,10 +1234,8 @@ def _receive_edit_to_post(recent_posts_cache: {}, message_json: {}, | |||
| 
 | ||||
| def _receive_update_activity(recent_posts_cache: {}, session, base_dir: str, | ||||
|                              http_prefix: str, domain: str, port: int, | ||||
|                              send_threads: [], post_log: [], | ||||
|                              cached_webfingers: {}, | ||||
|                              person_cache: {}, message_json: {}, | ||||
|                              federation_list: [], | ||||
|                              nickname: str, debug: bool, | ||||
|                              max_mentions: int, max_emoji: int, | ||||
|                              allow_local_network_access: bool, | ||||
|  | @ -1332,11 +1322,11 @@ def _receive_update_activity(recent_posts_cache: {}, session, base_dir: str, | |||
| 
 | ||||
| 
 | ||||
| def _receive_like(recent_posts_cache: {}, | ||||
|                   session, handle: str, is_group: bool, base_dir: str, | ||||
|                   session, handle: str, base_dir: str, | ||||
|                   http_prefix: str, domain: str, port: int, | ||||
|                   onion_domain: str, i2p_domain: str, | ||||
|                   send_threads: [], post_log: [], cached_webfingers: {}, | ||||
|                   person_cache: {}, message_json: {}, federation_list: [], | ||||
|                   cached_webfingers: {}, | ||||
|                   person_cache: {}, message_json: {}, | ||||
|                   debug: bool, | ||||
|                   signing_priv_key_pem: str, | ||||
|                   max_recent_posts: int, translate: {}, | ||||
|  | @ -1394,7 +1384,7 @@ def _receive_like(recent_posts_cache: {}, | |||
|                           handle_name, handle_dom, | ||||
|                           post_liked_id, | ||||
|                           like_actor): | ||||
|         _like_notify(base_dir, domain, onion_domain, handle, | ||||
|         _like_notify(base_dir, domain, onion_domain, i2p_domain, handle, | ||||
|                      like_actor, post_liked_id) | ||||
|     update_likes_collection(recent_posts_cache, base_dir, post_filename, | ||||
|                             post_liked_id, like_actor, | ||||
|  | @ -1462,10 +1452,10 @@ def _receive_like(recent_posts_cache: {}, | |||
| 
 | ||||
| 
 | ||||
| def _receive_undo_like(recent_posts_cache: {}, | ||||
|                        session, handle: str, is_group: bool, base_dir: str, | ||||
|                        session, handle: str, base_dir: str, | ||||
|                        http_prefix: str, domain: str, port: int, | ||||
|                        send_threads: [], post_log: [], cached_webfingers: {}, | ||||
|                        person_cache: {}, message_json: {}, federation_list: [], | ||||
|                        cached_webfingers: {}, | ||||
|                        person_cache: {}, message_json: {}, | ||||
|                        debug: bool, | ||||
|                        signing_priv_key_pem: str, | ||||
|                        max_recent_posts: int, translate: {}, | ||||
|  | @ -1581,11 +1571,11 @@ def _receive_undo_like(recent_posts_cache: {}, | |||
| 
 | ||||
| 
 | ||||
| def _receive_reaction(recent_posts_cache: {}, | ||||
|                       session, handle: str, is_group: bool, base_dir: str, | ||||
|                       session, handle: str, base_dir: str, | ||||
|                       http_prefix: str, domain: str, port: int, | ||||
|                       onion_domain: str, | ||||
|                       send_threads: [], post_log: [], cached_webfingers: {}, | ||||
|                       person_cache: {}, message_json: {}, federation_list: [], | ||||
|                       cached_webfingers: {}, | ||||
|                       person_cache: {}, message_json: {}, | ||||
|                       debug: bool, | ||||
|                       signing_priv_key_pem: str, | ||||
|                       max_recent_posts: int, translate: {}, | ||||
|  | @ -2686,7 +2676,7 @@ def _valid_post_content(base_dir: str, nickname: str, domain: str, | |||
|                       message_json['object']['tag']) | ||||
|                 return False | ||||
|     # check that the post is in a language suitable for this account | ||||
|     if not understood_post_language(base_dir, nickname, domain, | ||||
|     if not understood_post_language(base_dir, nickname, | ||||
|                                     message_json, system_language, | ||||
|                                     http_prefix, domain_full, | ||||
|                                     person_cache): | ||||
|  | @ -2850,7 +2840,8 @@ def _already_reacted(base_dir: str, nickname: str, domain: str, | |||
|     return False | ||||
| 
 | ||||
| 
 | ||||
| def _like_notify(base_dir: str, domain: str, onion_domain: str, | ||||
| def _like_notify(base_dir: str, domain: str, | ||||
|                  onion_domain: str, i2p_domain: str, | ||||
|                  handle: str, actor: str, url: str) -> None: | ||||
|     """Creates a notification that a like has arrived | ||||
|     """ | ||||
|  | @ -2861,9 +2852,13 @@ def _like_notify(base_dir: str, domain: str, onion_domain: str, | |||
|     # check that the liked post was by this handle | ||||
|     nickname = handle.split('@')[0] | ||||
|     if '/' + domain + '/users/' + nickname not in url: | ||||
|         if not onion_domain: | ||||
|             return | ||||
|         if '/' + onion_domain + '/users/' + nickname not in url: | ||||
|         if onion_domain: | ||||
|             if '/' + onion_domain + '/users/' + nickname not in url: | ||||
|                 return | ||||
|         if i2p_domain: | ||||
|             if '/' + i2p_domain + '/users/' + nickname not in url: | ||||
|                 return | ||||
|         if not i2p_domain and not onion_domain: | ||||
|             return | ||||
| 
 | ||||
|     account_dir = base_dir + '/accounts/' + handle | ||||
|  | @ -3012,8 +3007,7 @@ def _reply_notify(base_dir: str, handle: str, url: str) -> None: | |||
|             print('EX: unable to write ' + reply_file) | ||||
| 
 | ||||
| 
 | ||||
| def _git_patch_notify(base_dir: str, handle: str, | ||||
|                       subject: str, content: str, | ||||
| def _git_patch_notify(base_dir: str, handle: str, subject: str, | ||||
|                       from_nickname: str, from_domain: str) -> None: | ||||
|     """Creates a notification that a new git patch has arrived | ||||
|     """ | ||||
|  | @ -3051,7 +3045,6 @@ def _send_to_group_members(server, session, session_onion, session_i2p, | |||
|                            send_threads: [], post_log: [], | ||||
|                            cached_webfingers: {}, | ||||
|                            person_cache: {}, debug: bool, | ||||
|                            system_language: str, | ||||
|                            curr_domain: str, | ||||
|                            onion_domain: str, i2p_domain: str, | ||||
|                            signing_priv_key_pem: str) -> None: | ||||
|  | @ -3238,7 +3231,7 @@ def _update_last_seen(base_dir: str, handle: str, actor: str) -> None: | |||
|         print('EX: unable to write ' + last_seen_filename) | ||||
| 
 | ||||
| 
 | ||||
| def _bounce_dm(senderPostId: str, session, http_prefix: str, | ||||
| def _bounce_dm(sender_post_id: str, session, http_prefix: str, | ||||
|                base_dir: str, nickname: str, domain: str, port: int, | ||||
|                sending_handle: str, federation_list: [], | ||||
|                send_threads: [], post_log: [], | ||||
|  | @ -3288,7 +3281,7 @@ def _bounce_dm(senderPostId: str, session, http_prefix: str, | |||
|     media_type = None | ||||
|     image_description = '' | ||||
|     city = 'London, England' | ||||
|     in_reply_to = remove_id_ending(senderPostId) | ||||
|     in_reply_to = remove_id_ending(sender_post_id) | ||||
|     in_reply_to_atom_uri = None | ||||
|     schedule_post = False | ||||
|     event_date = None | ||||
|  | @ -3646,8 +3639,7 @@ def _check_for_git_patches(base_dir: str, nickname: str, domain: str, | |||
|                          json_obj['type'], json_obj['summary'], | ||||
|                          json_obj['content'], | ||||
|                          from_nickname, from_domain_full): | ||||
|         _git_patch_notify(base_dir, handle, | ||||
|                           json_obj['summary'], json_obj['content'], | ||||
|         _git_patch_notify(base_dir, handle, json_obj['summary'], | ||||
|                           from_nickname, from_domain_full) | ||||
|         return 1 | ||||
|     if '[PATCH]' in json_obj['content']: | ||||
|  | @ -3662,10 +3654,8 @@ def _inbox_after_initial(server, inbox_start_time, | |||
|                          key_id: str, handle: str, message_json: {}, | ||||
|                          base_dir: str, http_prefix: str, send_threads: [], | ||||
|                          post_log: [], cached_webfingers: {}, person_cache: {}, | ||||
|                          queue: [], domain: str, | ||||
|                          onion_domain: str, i2p_domain: str, | ||||
|                          port: int, proxy_type: str, | ||||
|                          federation_list: [], debug: bool, | ||||
|                          domain: str, onion_domain: str, i2p_domain: str, | ||||
|                          port: int, federation_list: [], debug: bool, | ||||
|                          queue_filename: str, destination_filename: str, | ||||
|                          max_replies: int, allow_deletion: bool, | ||||
|                          max_mentions: int, max_emoji: int, translate: {}, | ||||
|  | @ -3715,15 +3705,13 @@ def _inbox_after_initial(server, inbox_start_time, | |||
|     handle_name = handle.split('@')[0] | ||||
| 
 | ||||
|     if _receive_like(recent_posts_cache, | ||||
|                      session, handle, is_group, | ||||
|                      session, handle, | ||||
|                      base_dir, http_prefix, | ||||
|                      domain, port, | ||||
|                      onion_domain, i2p_domain, | ||||
|                      send_threads, post_log, | ||||
|                      cached_webfingers, | ||||
|                      person_cache, | ||||
|                      message_json, | ||||
|                      federation_list, | ||||
|                      debug, signing_priv_key_pem, | ||||
|                      max_recent_posts, translate, | ||||
|                      allow_deletion, | ||||
|  | @ -3743,14 +3731,12 @@ def _inbox_after_initial(server, inbox_start_time, | |||
|         return False | ||||
| 
 | ||||
|     if _receive_undo_like(recent_posts_cache, | ||||
|                           session, handle, is_group, | ||||
|                           session, handle, | ||||
|                           base_dir, http_prefix, | ||||
|                           domain, port, | ||||
|                           send_threads, post_log, | ||||
|                           cached_webfingers, | ||||
|                           person_cache, | ||||
|                           message_json, | ||||
|                           federation_list, | ||||
|                           debug, signing_priv_key_pem, | ||||
|                           max_recent_posts, translate, | ||||
|                           allow_deletion, | ||||
|  | @ -3770,15 +3756,13 @@ def _inbox_after_initial(server, inbox_start_time, | |||
|         return False | ||||
| 
 | ||||
|     if _receive_reaction(recent_posts_cache, | ||||
|                          session, handle, is_group, | ||||
|                          session, handle, | ||||
|                          base_dir, http_prefix, | ||||
|                          domain, port, | ||||
|                          onion_domain, | ||||
|                          send_threads, post_log, | ||||
|                          cached_webfingers, | ||||
|                          person_cache, | ||||
|                          message_json, | ||||
|                          federation_list, | ||||
|                          debug, signing_priv_key_pem, | ||||
|                          max_recent_posts, translate, | ||||
|                          allow_deletion, | ||||
|  | @ -4346,8 +4330,7 @@ def _inbox_after_initial(server, inbox_start_time, | |||
|                                        http_prefix, federation_list, | ||||
|                                        send_threads, | ||||
|                                        post_log, cached_webfingers, | ||||
|                                        person_cache, | ||||
|                                        debug, system_language, | ||||
|                                        person_cache, debug, | ||||
|                                        domain, onion_domain, i2p_domain, | ||||
|                                        signing_priv_key_pem) | ||||
|                 fitness_performance(inbox_start_time, | ||||
|  | @ -4422,7 +4405,7 @@ def _restore_queue_items(base_dir: str, queue: []) -> None: | |||
| def run_inbox_queue_watchdog(project_version: str, httpd) -> None: | ||||
|     """This tries to keep the inbox thread running even if it dies | ||||
|     """ | ||||
|     print('THREAD: Starting inbox queue watchdog') | ||||
|     print('THREAD: Starting inbox queue watchdog ' + project_version) | ||||
|     inbox_queue_original = httpd.thrInboxQueue.clone(run_inbox_queue) | ||||
|     httpd.thrInboxQueue.start() | ||||
|     while True: | ||||
|  | @ -5089,17 +5072,14 @@ def run_inbox_queue(server, | |||
|         inbox_start_time = time.time() | ||||
| 
 | ||||
|         curr_session = session | ||||
|         curr_proxy_type = proxy_type | ||||
|         if queue_json.get('actor'): | ||||
|             if isinstance(queue_json['actor'], str): | ||||
|                 sender_domain, _ = get_domain_from_actor(queue_json['actor']) | ||||
|                 if sender_domain.endswith('.onion') and \ | ||||
|                    session_onion and proxy_type != 'tor': | ||||
|                     curr_proxy_type = 'tor' | ||||
|                     curr_session = session_onion | ||||
|                 elif (sender_domain.endswith('.i2p') and | ||||
|                       session_i2p and proxy_type != 'i2p'): | ||||
|                     curr_proxy_type = 'i2p' | ||||
|                     curr_session = session_i2p | ||||
| 
 | ||||
|         if debug and queue_json.get('actor'): | ||||
|  | @ -5259,13 +5239,7 @@ def run_inbox_queue(server, | |||
|         # if queue_json['post'].get('id'): | ||||
|         #     queue_json['post']['id'] = queue_json['id'] | ||||
| 
 | ||||
|         if _receive_undo(curr_session, | ||||
|                          base_dir, http_prefix, port, | ||||
|                          send_threads, post_log, | ||||
|                          cached_webfingers, | ||||
|                          person_cache, | ||||
|                          queue_json['post'], | ||||
|                          federation_list, | ||||
|         if _receive_undo(base_dir, queue_json['post'], | ||||
|                          debug, domain, onion_domain, i2p_domain): | ||||
|             print('Queue: Undo accepted from ' + key_id) | ||||
|             if os.path.isfile(queue_filename): | ||||
|  | @ -5335,11 +5309,9 @@ def run_inbox_queue(server, | |||
|         if _receive_update_activity(recent_posts_cache, curr_session, | ||||
|                                     base_dir, http_prefix, | ||||
|                                     domain, port, | ||||
|                                     send_threads, post_log, | ||||
|                                     cached_webfingers, | ||||
|                                     person_cache, | ||||
|                                     queue_json['post'], | ||||
|                                     federation_list, | ||||
|                                     queue_json['postNickname'], | ||||
|                                     debug, | ||||
|                                     max_mentions, max_emoji, | ||||
|  | @ -5460,11 +5432,9 @@ def run_inbox_queue(server, | |||
|                                  base_dir, http_prefix, | ||||
|                                  send_threads, post_log, | ||||
|                                  cached_webfingers, | ||||
|                                  person_cache, queue, | ||||
|                                  domain, | ||||
|                                  person_cache, domain, | ||||
|                                  onion_domain, i2p_domain, | ||||
|                                  port, curr_proxy_type, | ||||
|                                  federation_list, | ||||
|                                  port, federation_list, | ||||
|                                  debug, | ||||
|                                  queue_filename, destination, | ||||
|                                  max_replies, allow_deletion, | ||||
|  |  | |||
|  | @ -99,7 +99,7 @@ def set_actor_languages(actor_json: {}, languages_str: str) -> None: | |||
|     actor_json['attachment'].append(new_languages) | ||||
| 
 | ||||
| 
 | ||||
| def understood_post_language(base_dir: str, nickname: str, domain: str, | ||||
| def understood_post_language(base_dir: str, nickname: str, | ||||
|                              message_json: {}, system_language: str, | ||||
|                              http_prefix: str, domain_full: str, | ||||
|                              person_cache: {}) -> bool: | ||||
|  |  | |||
							
								
								
									
										3
									
								
								like.py
								
								
								
								
							
							
						
						
									
										3
									
								
								like.py
								
								
								
								
							|  | @ -385,8 +385,7 @@ def outbox_like(recent_posts_cache: {}, | |||
| 
 | ||||
| 
 | ||||
| def outbox_undo_like(recent_posts_cache: {}, | ||||
|                      base_dir: str, http_prefix: str, | ||||
|                      nickname: str, domain: str, port: int, | ||||
|                      base_dir: str, nickname: str, domain: str, | ||||
|                      message_json: {}, debug: bool) -> None: | ||||
|     """ When an undo like request is received by the outbox from c2s | ||||
|     """ | ||||
|  |  | |||
|  | @ -580,8 +580,7 @@ def post_message_to_outbox(session, translate: {}, | |||
|     if debug: | ||||
|         print('DEBUG: handle any undo like requests') | ||||
|     outbox_undo_like(recent_posts_cache, | ||||
|                      base_dir, http_prefix, | ||||
|                      post_to_nickname, domain, port, | ||||
|                      base_dir, post_to_nickname, domain, | ||||
|                      message_json, debug) | ||||
| 
 | ||||
|     if debug: | ||||
|  |  | |||
							
								
								
									
										2
									
								
								posts.py
								
								
								
								
							
							
						
						
									
										2
									
								
								posts.py
								
								
								
								
							|  | @ -4998,7 +4998,7 @@ def download_announce(session, base_dir: str, http_prefix: str, | |||
|                              base_dir, nickname, domain, post_id, | ||||
|                              recent_posts_cache) | ||||
|             return None | ||||
|         if not understood_post_language(base_dir, nickname, domain, | ||||
|         if not understood_post_language(base_dir, nickname, | ||||
|                                         announced_json, system_language, | ||||
|                                         http_prefix, domain_full, | ||||
|                                         person_cache): | ||||
|  |  | |||
							
								
								
									
										16
									
								
								question.py
								
								
								
								
							
							
						
						
									
										16
									
								
								question.py
								
								
								
								
							|  | @ -136,20 +136,20 @@ def question_update_votes(base_dir: str, nickname: str, domain: str, | |||
|     return question_json, question_post_filename | ||||
| 
 | ||||
| 
 | ||||
| def is_question(postObjectJson: {}) -> bool: | ||||
| def is_question(post_object_json: {}) -> bool: | ||||
|     """ is the given post a question? | ||||
|     """ | ||||
|     if postObjectJson['type'] != 'Create' and \ | ||||
|        postObjectJson['type'] != 'Update': | ||||
|     if post_object_json['type'] != 'Create' and \ | ||||
|        post_object_json['type'] != 'Update': | ||||
|         return False | ||||
|     if not has_object_dict(postObjectJson): | ||||
|     if not has_object_dict(post_object_json): | ||||
|         return False | ||||
|     if not postObjectJson['object'].get('type'): | ||||
|     if not post_object_json['object'].get('type'): | ||||
|         return False | ||||
|     if postObjectJson['object']['type'] != 'Question': | ||||
|     if post_object_json['object']['type'] != 'Question': | ||||
|         return False | ||||
|     if not postObjectJson['object'].get('oneOf'): | ||||
|     if not post_object_json['object'].get('oneOf'): | ||||
|         return False | ||||
|     if not isinstance(postObjectJson['object']['oneOf'], list): | ||||
|     if not isinstance(post_object_json['object']['oneOf'], list): | ||||
|         return False | ||||
|     return True | ||||
|  |  | |||
|  | @ -193,7 +193,7 @@ def run_post_schedule(base_dir: str, httpd, max_scheduled_posts: int): | |||
| def run_post_schedule_watchdog(project_version: str, httpd) -> None: | ||||
|     """This tries to keep the scheduled post thread running even if it dies | ||||
|     """ | ||||
|     print('THREAD: Starting scheduled post watchdog') | ||||
|     print('THREAD: Starting scheduled post watchdog ' + project_version) | ||||
|     post_schedule_original = \ | ||||
|         httpd.thrPostSchedule.clone(run_post_schedule) | ||||
|     httpd.thrPostSchedule.start() | ||||
|  |  | |||
|  | @ -465,7 +465,7 @@ def post_json(http_prefix: str, domain_full: str, | |||
|     return None | ||||
| 
 | ||||
| 
 | ||||
| def post_json_string(session, post_jsonStr: str, | ||||
| def post_json_string(session, post_json_str: str, | ||||
|                      federation_list: [], | ||||
|                      inbox_url: str, | ||||
|                      headers: {}, | ||||
|  | @ -489,7 +489,7 @@ def post_json_string(session, post_jsonStr: str, | |||
| 
 | ||||
|     try: | ||||
|         post_result = \ | ||||
|             session.post(url=inbox_url, data=post_jsonStr, | ||||
|             session.post(url=inbox_url, data=post_json_str, | ||||
|                          headers=headers, timeout=timeout_sec) | ||||
|     except requests.exceptions.RequestException as ex: | ||||
|         if not quiet: | ||||
|  | @ -500,7 +500,7 @@ def post_json_string(session, post_jsonStr: str, | |||
|             print('EX: connection was reset during post_json_string') | ||||
|         if not quiet: | ||||
|             print('EX: post_json_string failed ' + inbox_url + ' ' + | ||||
|                   post_jsonStr + ' ' + str(headers)) | ||||
|                   post_json_str + ' ' + str(headers)) | ||||
|         return None, None, 0 | ||||
|     except ValueError as ex: | ||||
|         if not quiet: | ||||
|  | @ -592,8 +592,7 @@ def _looks_like_url(url: str) -> bool: | |||
|     return True | ||||
| 
 | ||||
| 
 | ||||
| def download_image(session, base_dir: str, url: str, | ||||
|                    image_filename: str, debug: bool, | ||||
| def download_image(session, url: str, image_filename: str, debug: bool, | ||||
|                    force: bool = False) -> bool: | ||||
|     """Downloads an image with an expected mime type | ||||
|     """ | ||||
|  |  | |||
							
								
								
									
										11
									
								
								speaker.py
								
								
								
								
							
							
						
						
									
										11
									
								
								speaker.py
								
								
								
								
							|  | @ -320,8 +320,7 @@ def _ssml_header(system_language: str, box_name: str, summary: str) -> str: | |||
| 
 | ||||
| 
 | ||||
| def _speaker_endpoint_ssml(display_name: str, summary: str, | ||||
|                            content: str, image_description: str, | ||||
|                            links: [], language: str, | ||||
|                            content: str, language: str, | ||||
|                            gender: str, box_name: str) -> str: | ||||
|     """Returns an SSML endpoint for the TTS speaker | ||||
|     https://en.wikipedia.org/wiki/Speech_Synthesis_Markup_Language | ||||
|  | @ -379,8 +378,6 @@ def get_ssml_box(base_dir: str, path: str, | |||
|     return _speaker_endpoint_ssml(speaker_json['name'], | ||||
|                                   speaker_json['summary'], | ||||
|                                   speaker_json['say'], | ||||
|                                   speaker_json['imageDescription'], | ||||
|                                   speaker_json['detectedLinks'], | ||||
|                                   system_language, | ||||
|                                   gender, box_name) | ||||
| 
 | ||||
|  | @ -411,7 +408,7 @@ def speakable_text(base_dir: str, content: str, translate: {}) -> (str, []): | |||
| 
 | ||||
| 
 | ||||
| def _post_to_speaker_json(base_dir: str, http_prefix: str, | ||||
|                           nickname: str, domain: str, domain_full: str, | ||||
|                           nickname: str, domain_full: str, | ||||
|                           post_json_object: {}, person_cache: {}, | ||||
|                           translate: {}, announcing_actor: str, | ||||
|                           theme_name: str) -> {}: | ||||
|  | @ -554,7 +551,7 @@ def update_speaker(base_dir: str, http_prefix: str, | |||
|     """ | ||||
|     speaker_json = \ | ||||
|         _post_to_speaker_json(base_dir, http_prefix, | ||||
|                               nickname, domain, domain_full, | ||||
|                               nickname, domain_full, | ||||
|                               post_json_object, person_cache, | ||||
|                               translate, announcing_actor, | ||||
|                               theme_name) | ||||
|  | @ -581,8 +578,6 @@ def update_speaker(base_dir: str, http_prefix: str, | |||
|         _speaker_endpoint_ssml(speaker_json['name'], | ||||
|                                speaker_json['summary'], | ||||
|                                speaker_json['say'], | ||||
|                                speaker_json['imageDescription'], | ||||
|                                speaker_json['detectedLinks'], | ||||
|                                system_language, | ||||
|                                gender, box_name) | ||||
|     try: | ||||
|  |  | |||
							
								
								
									
										2
									
								
								tests.py
								
								
								
								
							
							
						
						
									
										2
									
								
								tests.py
								
								
								
								
							|  | @ -3208,7 +3208,7 @@ def test_client_to_server(base_dir: str): | |||
|                                    http_prefix, | ||||
|                                    cached_webfingers, person_cache, | ||||
|                                    True, __version__, signing_priv_key_pem) | ||||
|     for _ in range(10): | ||||
|     for _ in range(20): | ||||
|         if os.path.isfile(alice_dir + '/accounts/alice@' + alice_domain + | ||||
|                           '/followers.txt'): | ||||
|             test_str = 'bob@' + bob_domain + ':' + str(bob_port) | ||||
|  |  | |||
|  | @ -383,7 +383,6 @@ def html_calendar(person_cache: {}, css_cache: {}, translate: {}, | |||
|                                                year, month_number, | ||||
|                                                day_number, | ||||
|                                                person_cache, | ||||
|                                                http_prefix, | ||||
|                                                text_match, | ||||
|                                                system_language) | ||||
|         day_events = None | ||||
|  | @ -404,7 +403,7 @@ def html_calendar(person_cache: {}, css_cache: {}, translate: {}, | |||
|     if icalendar: | ||||
|         return get_month_events_icalendar(base_dir, nickname, domain, | ||||
|                                           year, month_number, person_cache, | ||||
|                                           http_prefix, text_match) | ||||
|                                           text_match) | ||||
| 
 | ||||
|     events = \ | ||||
|         get_calendar_events(base_dir, nickname, domain, year, month_number, | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue