mirror of https://gitlab.com/bashrc2/epicyon
Update memoral actor flags when file is changed
parent
628740afd9
commit
a1a44e1804
|
@ -63,6 +63,7 @@ from donate import get_website
|
||||||
from donate import set_website
|
from donate import set_website
|
||||||
from donate import get_gemini_link
|
from donate import get_gemini_link
|
||||||
from donate import set_gemini_link
|
from donate import set_gemini_link
|
||||||
|
from person import update_memorial_flags
|
||||||
from person import get_featured_hashtags
|
from person import get_featured_hashtags
|
||||||
from person import set_featured_hashtags
|
from person import set_featured_hashtags
|
||||||
from person import clear_person_qrcodes
|
from person import clear_person_qrcodes
|
||||||
|
@ -6906,10 +6907,14 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
curr_memorial:
|
curr_memorial:
|
||||||
set_memorials(base_dir, self.server.domain,
|
set_memorials(base_dir, self.server.domain,
|
||||||
fields['memorialAccounts'])
|
fields['memorialAccounts'])
|
||||||
|
update_memorial_flags(base_dir,
|
||||||
|
self.server.person_cache)
|
||||||
else:
|
else:
|
||||||
if curr_memorial:
|
if curr_memorial:
|
||||||
set_memorials(base_dir,
|
set_memorials(base_dir,
|
||||||
self.server.domain, '')
|
self.server.domain, '')
|
||||||
|
update_memorial_flags(base_dir,
|
||||||
|
self.server.person_cache)
|
||||||
|
|
||||||
# change email address
|
# change email address
|
||||||
current_email_address = get_email_address(actor_json)
|
current_email_address = get_email_address(actor_json)
|
||||||
|
@ -24543,6 +24548,8 @@ def run_daemon(max_shares_on_profile: int,
|
||||||
begin_thread(httpd.thrFederatedSharesDaemon,
|
begin_thread(httpd.thrFederatedSharesDaemon,
|
||||||
'run_daemon start federated shares')
|
'run_daemon start federated shares')
|
||||||
|
|
||||||
|
update_memorial_flags(base_dir, httpd.person_cache)
|
||||||
|
|
||||||
if client_to_server:
|
if client_to_server:
|
||||||
print('Running ActivityPub client on ' +
|
print('Running ActivityPub client on ' +
|
||||||
domain + ' port ' + str(proxy_port))
|
domain + ' port ' + str(proxy_port))
|
||||||
|
|
40
person.py
40
person.py
|
@ -38,6 +38,8 @@ from roles import set_role
|
||||||
from roles import actor_roles_from_list
|
from roles import actor_roles_from_list
|
||||||
from roles import get_actor_roles_list
|
from roles import get_actor_roles_list
|
||||||
from media import process_meta_data
|
from media import process_meta_data
|
||||||
|
from utils import get_memorials
|
||||||
|
from utils import is_account_dir
|
||||||
from utils import valid_hash_tag
|
from utils import valid_hash_tag
|
||||||
from utils import acct_handle_dir
|
from utils import acct_handle_dir
|
||||||
from utils import safe_system_string
|
from utils import safe_system_string
|
||||||
|
@ -75,6 +77,7 @@ from webfinger import webfinger_handle
|
||||||
from pprint import pprint
|
from pprint import pprint
|
||||||
from cache import get_person_from_cache
|
from cache import get_person_from_cache
|
||||||
from cache import store_person_in_cache
|
from cache import store_person_in_cache
|
||||||
|
from cache import remove_person_from_cache
|
||||||
from filters import is_filtered_bio
|
from filters import is_filtered_bio
|
||||||
from follow import is_following_actor
|
from follow import is_following_actor
|
||||||
|
|
||||||
|
@ -2107,3 +2110,40 @@ def set_featured_hashtags(actor_json: {}, hashtags: str,
|
||||||
actor_json['tag'] = result
|
actor_json['tag'] = result
|
||||||
else:
|
else:
|
||||||
actor_json['tag'] += result
|
actor_json['tag'] += result
|
||||||
|
|
||||||
|
|
||||||
|
def update_memorial_flags(base_dir: str, person_cache: {}) -> None:
|
||||||
|
"""Sets or clears the memorial flags based upon the content of
|
||||||
|
accounts/memorial file
|
||||||
|
"""
|
||||||
|
memorials = get_memorials(base_dir).split('\n')
|
||||||
|
|
||||||
|
for _, dirs, _ in os.walk(base_dir + '/accounts'):
|
||||||
|
for account in dirs:
|
||||||
|
if not is_account_dir(account):
|
||||||
|
continue
|
||||||
|
actor_filename = base_dir + '/accounts/' + account + '.json'
|
||||||
|
if not os.path.isfile(actor_filename):
|
||||||
|
continue
|
||||||
|
actor_json = load_json(actor_filename)
|
||||||
|
if not actor_json:
|
||||||
|
continue
|
||||||
|
if not actor_json.get('id'):
|
||||||
|
continue
|
||||||
|
nickname = account.split('@')[0]
|
||||||
|
actor_changed = False
|
||||||
|
if not actor_json.get('memorial'):
|
||||||
|
if nickname in memorials:
|
||||||
|
actor_json['memorial'] = True
|
||||||
|
actor_changed = True
|
||||||
|
else:
|
||||||
|
if nickname not in memorials:
|
||||||
|
actor_json['memorial'] = False
|
||||||
|
actor_changed = True
|
||||||
|
if actor_changed:
|
||||||
|
save_json(actor_json, actor_filename)
|
||||||
|
actor = actor_json['id']
|
||||||
|
remove_person_from_cache(base_dir, actor, person_cache)
|
||||||
|
store_person_in_cache(base_dir, actor, actor_json,
|
||||||
|
person_cache, True)
|
||||||
|
break
|
||||||
|
|
Loading…
Reference in New Issue