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 get_gemini_link
|
||||
from donate import set_gemini_link
|
||||
from person import update_memorial_flags
|
||||
from person import get_featured_hashtags
|
||||
from person import set_featured_hashtags
|
||||
from person import clear_person_qrcodes
|
||||
|
@ -6906,10 +6907,14 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
curr_memorial:
|
||||
set_memorials(base_dir, self.server.domain,
|
||||
fields['memorialAccounts'])
|
||||
update_memorial_flags(base_dir,
|
||||
self.server.person_cache)
|
||||
else:
|
||||
if curr_memorial:
|
||||
set_memorials(base_dir,
|
||||
self.server.domain, '')
|
||||
update_memorial_flags(base_dir,
|
||||
self.server.person_cache)
|
||||
|
||||
# change email address
|
||||
current_email_address = get_email_address(actor_json)
|
||||
|
@ -24543,6 +24548,8 @@ def run_daemon(max_shares_on_profile: int,
|
|||
begin_thread(httpd.thrFederatedSharesDaemon,
|
||||
'run_daemon start federated shares')
|
||||
|
||||
update_memorial_flags(base_dir, httpd.person_cache)
|
||||
|
||||
if client_to_server:
|
||||
print('Running ActivityPub client on ' +
|
||||
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 get_actor_roles_list
|
||||
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 acct_handle_dir
|
||||
from utils import safe_system_string
|
||||
|
@ -75,6 +77,7 @@ from webfinger import webfinger_handle
|
|||
from pprint import pprint
|
||||
from cache import get_person_from_cache
|
||||
from cache import store_person_in_cache
|
||||
from cache import remove_person_from_cache
|
||||
from filters import is_filtered_bio
|
||||
from follow import is_following_actor
|
||||
|
||||
|
@ -2107,3 +2110,40 @@ def set_featured_hashtags(actor_json: {}, hashtags: str,
|
|||
actor_json['tag'] = result
|
||||
else:
|
||||
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