mirror of https://gitlab.com/bashrc2/epicyon
Replace prepend file operations with functions
parent
e06a331fe0
commit
1fca4e909e
18
bookmarks.py
18
bookmarks.py
|
|
@ -37,6 +37,7 @@ from posts import get_person_box
|
||||||
from session import post_json
|
from session import post_json
|
||||||
from data import load_string
|
from data import load_string
|
||||||
from data import save_string
|
from data import save_string
|
||||||
|
from data import prepend_string
|
||||||
|
|
||||||
|
|
||||||
def undo_bookmarks_collection_entry(recent_posts_cache: {},
|
def undo_bookmarks_collection_entry(recent_posts_cache: {},
|
||||||
|
|
@ -252,19 +253,12 @@ def update_bookmarks_collection(recent_posts_cache: {},
|
||||||
bookmark_index = post_filename.split('/')[-1]
|
bookmark_index = post_filename.split('/')[-1]
|
||||||
if os.path.isfile(bookmarks_index_filename):
|
if os.path.isfile(bookmarks_index_filename):
|
||||||
if not text_in_file(bookmark_index, bookmarks_index_filename):
|
if not text_in_file(bookmark_index, bookmarks_index_filename):
|
||||||
try:
|
if prepend_string(bookmark_index, bookmarks_index_filename,
|
||||||
with open(bookmarks_index_filename, 'r+',
|
'EX: ' +
|
||||||
encoding='utf-8') as fp_bmi:
|
'Failed to prepend entry to bookmarks index ' +
|
||||||
content = fp_bmi.read()
|
bookmarks_index_filename + ' [ex]'):
|
||||||
if bookmark_index + '\n' not in content:
|
|
||||||
fp_bmi.seek(0, 0)
|
|
||||||
fp_bmi.write(bookmark_index + '\n' + content)
|
|
||||||
if debug:
|
|
||||||
print('DEBUG: bookmark added to index')
|
|
||||||
except OSError as ex:
|
|
||||||
if debug:
|
if debug:
|
||||||
print('WARN: Failed to write entry to bookmarks index ' +
|
print('DEBUG: bookmark added to index')
|
||||||
bookmarks_index_filename + ' ' + str(ex))
|
|
||||||
else:
|
else:
|
||||||
save_string(bookmark_index + '\n', bookmarks_index_filename,
|
save_string(bookmark_index + '\n', bookmarks_index_filename,
|
||||||
'EX: unable to write bookmarks index ' +
|
'EX: unable to write bookmarks index ' +
|
||||||
|
|
|
||||||
21
data.py
21
data.py
|
|
@ -127,3 +127,24 @@ def append_string(text: str, filename: str, exception_text: str) -> bool:
|
||||||
"""Appends a string to file
|
"""Appends a string to file
|
||||||
"""
|
"""
|
||||||
return _store_base(text, filename, exception_text, 'a+')
|
return _store_base(text, filename, exception_text, 'a+')
|
||||||
|
|
||||||
|
|
||||||
|
def prepend_string(text: str, filename: str, exception_text: str) -> bool:
|
||||||
|
"""Prepends a string to a file
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
with open(filename, 'r+', encoding='utf-8') as fp:
|
||||||
|
content: str = fp.read()
|
||||||
|
if text + '\n' not in content:
|
||||||
|
fp.seek(0, 0)
|
||||||
|
fp.write(text + '\n' + content)
|
||||||
|
return True
|
||||||
|
except OSError as exc:
|
||||||
|
if '[ex]' in exception_text:
|
||||||
|
exception_text = exception_text.replace('[ex]', str(exc))
|
||||||
|
print(exception_text)
|
||||||
|
except UnicodeEncodeError as exc:
|
||||||
|
if '[ex]' in exception_text:
|
||||||
|
exception_text = exception_text.replace('[ex]', str(exc))
|
||||||
|
print(exception_text)
|
||||||
|
return False
|
||||||
|
|
|
||||||
|
|
@ -74,6 +74,7 @@ from person import get_actor_json
|
||||||
from cache import get_person_from_cache
|
from cache import get_person_from_cache
|
||||||
from data import save_string
|
from data import save_string
|
||||||
from data import load_string
|
from data import load_string
|
||||||
|
from data import prepend_string
|
||||||
|
|
||||||
|
|
||||||
def _desktop_help() -> None:
|
def _desktop_help() -> None:
|
||||||
|
|
@ -188,17 +189,8 @@ def _mark_post_as_read(actor: str, post_id: str, post_category: str) -> None:
|
||||||
if os.path.isfile(read_posts_filename):
|
if os.path.isfile(read_posts_filename):
|
||||||
if text_in_file(post_id, read_posts_filename):
|
if text_in_file(post_id, read_posts_filename):
|
||||||
return
|
return
|
||||||
try:
|
prepend_string(post_id, read_posts_filename,
|
||||||
# prepend to read posts file
|
'EX: Failed to prepend post as read 1 [ex]')
|
||||||
post_id += '\n'
|
|
||||||
with open(read_posts_filename, 'r+',
|
|
||||||
encoding='utf-8') as fp_read:
|
|
||||||
content = fp_read.read()
|
|
||||||
if post_id not in content:
|
|
||||||
fp_read.seek(0, 0)
|
|
||||||
fp_read.write(post_id + content)
|
|
||||||
except OSError as ex:
|
|
||||||
print('EX: Failed to mark post as read 1 ' + str(ex))
|
|
||||||
else:
|
else:
|
||||||
save_string(post_id + '\n', read_posts_filename,
|
save_string(post_id + '\n', read_posts_filename,
|
||||||
'EX: Failed to mark post as read 2 [ex]')
|
'EX: Failed to mark post as read 2 [ex]')
|
||||||
|
|
|
||||||
15
happening.py
15
happening.py
|
|
@ -40,6 +40,7 @@ from data import load_list
|
||||||
from data import load_string
|
from data import load_string
|
||||||
from data import save_string
|
from data import save_string
|
||||||
from data import append_string
|
from data import append_string
|
||||||
|
from data import prepend_string
|
||||||
|
|
||||||
|
|
||||||
def _strings_are_digits(strings_list: []) -> bool:
|
def _strings_are_digits(strings_list: []) -> bool:
|
||||||
|
|
@ -159,16 +160,10 @@ def save_event_post(base_dir: str, handle: str, post_id: str,
|
||||||
|
|
||||||
if os.path.isfile(tl_events_filename):
|
if os.path.isfile(tl_events_filename):
|
||||||
_remove_event_from_timeline(event_id, tl_events_filename)
|
_remove_event_from_timeline(event_id, tl_events_filename)
|
||||||
try:
|
ex_str: str = \
|
||||||
with open(tl_events_filename, 'r+',
|
'EX: Failed to prepend entry to events file ' + \
|
||||||
encoding='utf-8') as fp_tl_events:
|
tl_events_filename + ' [ex]'
|
||||||
content = fp_tl_events.read()
|
if not prepend_string(event_id, tl_events_filename, ex_str):
|
||||||
if event_id + '\n' not in content:
|
|
||||||
fp_tl_events.seek(0, 0)
|
|
||||||
fp_tl_events.write(event_id + '\n' + content)
|
|
||||||
except OSError as ex:
|
|
||||||
print('EX: Failed to write entry to events file ' +
|
|
||||||
tl_events_filename + ' ' + str(ex))
|
|
||||||
return False
|
return False
|
||||||
else:
|
else:
|
||||||
save_string(event_id + '\n', tl_events_filename,
|
save_string(event_id + '\n', tl_events_filename,
|
||||||
|
|
|
||||||
43
inbox.py
43
inbox.py
|
|
@ -142,6 +142,7 @@ from data import save_string
|
||||||
from data import save_flag_file
|
from data import save_flag_file
|
||||||
from data import load_string
|
from data import load_string
|
||||||
from data import append_string
|
from data import append_string
|
||||||
|
from data import prepend_string
|
||||||
|
|
||||||
|
|
||||||
def _store_last_post_id(base_dir: str, nickname: str, domain: str,
|
def _store_last_post_id(base_dir: str, nickname: str, domain: str,
|
||||||
|
|
@ -940,16 +941,9 @@ def update_edited_post(base_dir: str,
|
||||||
index_filename = \
|
index_filename = \
|
||||||
acct_dir(base_dir, nickname, domain) + '/' + box_name + '.index'
|
acct_dir(base_dir, nickname, domain) + '/' + box_name + '.index'
|
||||||
if not text_in_file(id_str, index_filename):
|
if not text_in_file(id_str, index_filename):
|
||||||
try:
|
prepend_string(id_str, index_filename,
|
||||||
with open(index_filename, 'r+',
|
'WARN: Failed to prepend index after edit ' +
|
||||||
encoding='utf-8') as fp_index:
|
index_filename + ' [ex]')
|
||||||
content = fp_index.read()
|
|
||||||
if id_str + '\n' not in content:
|
|
||||||
fp_index.seek(0, 0)
|
|
||||||
fp_index.write(id_str + '\n' + content)
|
|
||||||
except OSError as ex:
|
|
||||||
print('WARN: Failed to write index after edit ' +
|
|
||||||
index_filename + ' ' + str(ex))
|
|
||||||
|
|
||||||
|
|
||||||
def populate_replies(base_dir: str, http_prefix: str, domain: str,
|
def populate_replies(base_dir: str, http_prefix: str, domain: str,
|
||||||
|
|
@ -3347,22 +3341,19 @@ def _receive_follow_request(session, session_onion, session_i2p,
|
||||||
is_group_account(base_dir, nickname, domain):
|
is_group_account(base_dir, nickname, domain):
|
||||||
print('Group cannot follow a group')
|
print('Group cannot follow a group')
|
||||||
return True
|
return True
|
||||||
try:
|
|
||||||
with open(followers_filename, 'r+',
|
if not group_account:
|
||||||
encoding='utf-8') as fp_followers:
|
ex_str: str = \
|
||||||
content = fp_followers.read()
|
'EX: Failed to prepend entry to followers file' + \
|
||||||
if approve_handle + '\n' not in content:
|
' [ex]'
|
||||||
fp_followers.seek(0, 0)
|
prepend_string(approve_handle, followers_filename,
|
||||||
if not group_account:
|
ex_str)
|
||||||
fp_followers.write(approve_handle +
|
else:
|
||||||
'\n' + content)
|
ex_str: str = \
|
||||||
else:
|
'EX: Failed to prepend group to followers file' + \
|
||||||
fp_followers.write('!' + approve_handle +
|
' [ex]'
|
||||||
'\n' + content)
|
prepend_string('!' + approve_handle,
|
||||||
except OSError as ex:
|
followers_filename, ex_str)
|
||||||
print('WARN: ' +
|
|
||||||
'Failed to write entry to followers file ' +
|
|
||||||
str(ex))
|
|
||||||
else:
|
else:
|
||||||
save_string(approve_handle + '\n', followers_filename,
|
save_string(approve_handle + '\n', followers_filename,
|
||||||
'EX: _receive_follow_request unable to write ' +
|
'EX: _receive_follow_request unable to write ' +
|
||||||
|
|
|
||||||
|
|
@ -89,6 +89,7 @@ from webapp_hashtagswarm import store_hash_tags
|
||||||
from data import save_string
|
from data import save_string
|
||||||
from data import save_flag_file
|
from data import save_flag_file
|
||||||
from data import append_string
|
from data import append_string
|
||||||
|
from data import prepend_string
|
||||||
from data import load_string
|
from data import load_string
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -112,16 +113,9 @@ def inbox_update_index(boxname: str, base_dir: str, handle: str,
|
||||||
|
|
||||||
written: bool = False
|
written: bool = False
|
||||||
if os.path.isfile(index_filename):
|
if os.path.isfile(index_filename):
|
||||||
try:
|
if prepend_string(destination_filename, index_filename,
|
||||||
with open(index_filename, 'r+', encoding='utf-8') as fp_index:
|
'EX: Failed to prepend entry to index [ex]'):
|
||||||
content = fp_index.read()
|
written = True
|
||||||
if destination_filename + '\n' not in content:
|
|
||||||
fp_index.seek(0, 0)
|
|
||||||
fp_index.write(destination_filename + '\n' + content)
|
|
||||||
written = True
|
|
||||||
return True
|
|
||||||
except OSError as ex:
|
|
||||||
print('EX: Failed to write entry to index ' + str(ex))
|
|
||||||
else:
|
else:
|
||||||
if save_string(destination_filename + '\n',
|
if save_string(destination_filename + '\n',
|
||||||
index_filename,
|
index_filename,
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,7 @@ from session import create_session
|
||||||
from data import save_string
|
from data import save_string
|
||||||
from data import load_string
|
from data import load_string
|
||||||
from data import append_string
|
from data import append_string
|
||||||
|
from data import prepend_string
|
||||||
from data import load_list
|
from data import load_list
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -345,17 +346,10 @@ def manual_approve_follow_request(session, session_onion, session_i2p,
|
||||||
print('Manual follow accept: updating ' + followers_filename)
|
print('Manual follow accept: updating ' + followers_filename)
|
||||||
if os.path.isfile(followers_filename):
|
if os.path.isfile(followers_filename):
|
||||||
if not text_in_file(approve_handle_full, followers_filename):
|
if not text_in_file(approve_handle_full, followers_filename):
|
||||||
try:
|
prepend_string(approve_handle_full, followers_filename,
|
||||||
with open(followers_filename, 'r+',
|
'EX: Manual follow accept. ' +
|
||||||
encoding='utf-8') as fp_followers:
|
'Failed to prepend entry to followers file ' +
|
||||||
content = fp_followers.read()
|
'[ex]')
|
||||||
if approve_handle_full + '\n' not in content:
|
|
||||||
fp_followers.seek(0, 0)
|
|
||||||
fp_followers.write(approve_handle_full + '\n' +
|
|
||||||
content)
|
|
||||||
except OSError as ex:
|
|
||||||
print('WARN: Manual follow accept. ' +
|
|
||||||
'Failed to write entry to followers file ' + str(ex))
|
|
||||||
else:
|
else:
|
||||||
print('WARN: Manual follow accept: ' + approve_handle_full +
|
print('WARN: Manual follow accept: ' + approve_handle_full +
|
||||||
' already exists in ' + followers_filename)
|
' already exists in ' + followers_filename)
|
||||||
|
|
|
||||||
|
|
@ -46,6 +46,7 @@ from data import load_list
|
||||||
from data import load_string
|
from data import load_string
|
||||||
from data import save_string
|
from data import save_string
|
||||||
from data import append_string
|
from data import append_string
|
||||||
|
from data import prepend_string
|
||||||
|
|
||||||
|
|
||||||
def _update_feeds_outbox_index(base_dir: str, domain: str,
|
def _update_feeds_outbox_index(base_dir: str, domain: str,
|
||||||
|
|
@ -57,17 +58,11 @@ def _update_feeds_outbox_index(base_dir: str, domain: str,
|
||||||
|
|
||||||
if os.path.isfile(index_filename):
|
if os.path.isfile(index_filename):
|
||||||
if not text_in_file(post_id, index_filename):
|
if not text_in_file(post_id, index_filename):
|
||||||
try:
|
if prepend_string(post_id, index_filename,
|
||||||
with open(index_filename, 'r+',
|
'EX: ' +
|
||||||
encoding='utf-8') as fp_feeds:
|
'Failed to prepend entry to feeds posts index ' +
|
||||||
content = fp_feeds.read()
|
index_filename + ' [ex]'):
|
||||||
if post_id + '\n' not in content:
|
print('DEBUG: feeds post added to index')
|
||||||
fp_feeds.seek(0, 0)
|
|
||||||
fp_feeds.write(post_id + '\n' + content)
|
|
||||||
print('DEBUG: feeds post added to index')
|
|
||||||
except OSError as ex:
|
|
||||||
print('EX: Failed to write entry to feeds posts index ' +
|
|
||||||
index_filename + ' ' + str(ex))
|
|
||||||
return
|
return
|
||||||
|
|
||||||
save_string(post_id + '\n', index_filename,
|
save_string(post_id + '\n', index_filename,
|
||||||
|
|
|
||||||
32
posts.py
32
posts.py
|
|
@ -149,6 +149,7 @@ from data import load_string
|
||||||
from data import save_string
|
from data import save_string
|
||||||
from data import save_flag_file
|
from data import save_flag_file
|
||||||
from data import append_string
|
from data import append_string
|
||||||
|
from data import prepend_string
|
||||||
|
|
||||||
|
|
||||||
def convert_post_content_to_html(message_json: {}) -> None:
|
def convert_post_content_to_html(message_json: {}) -> None:
|
||||||
|
|
@ -1104,16 +1105,10 @@ def _update_hashtags_index(base_dir: str, tag: {}, new_post_id: str,
|
||||||
days_since_epoch = days_diff.days
|
days_since_epoch = days_diff.days
|
||||||
tag_line = \
|
tag_line = \
|
||||||
str(days_since_epoch) + ' ' + nickname + ' ' + \
|
str(days_since_epoch) + ' ' + nickname + ' ' + \
|
||||||
new_post_id + '\n'
|
new_post_id
|
||||||
try:
|
prepend_string(tag_line, tags_filename,
|
||||||
with open(tags_filename, 'r+', encoding='utf-8') as fp_tags:
|
'EX: Failed to prepend entry to tags file ' +
|
||||||
content = fp_tags.read()
|
tags_filename + ' [ex]')
|
||||||
if tag_line not in content:
|
|
||||||
fp_tags.seek(0, 0)
|
|
||||||
fp_tags.write(tag_line + content)
|
|
||||||
except OSError as ex:
|
|
||||||
print('EX: Failed to write entry to tags file ' +
|
|
||||||
tags_filename + ' ' + str(ex))
|
|
||||||
|
|
||||||
|
|
||||||
def _add_schedule_post(base_dir: str, nickname: str, domain: str,
|
def _add_schedule_post(base_dir: str, nickname: str, domain: str,
|
||||||
|
|
@ -1127,17 +1122,12 @@ def _add_schedule_post(base_dir: str, nickname: str, domain: str,
|
||||||
index_str = event_date_str + ' ' + post_id.replace('/', '#')
|
index_str = event_date_str + ' ' + post_id.replace('/', '#')
|
||||||
if os.path.isfile(schedule_index_filename):
|
if os.path.isfile(schedule_index_filename):
|
||||||
if not text_in_file(index_str, schedule_index_filename):
|
if not text_in_file(index_str, schedule_index_filename):
|
||||||
try:
|
ex_str: str = \
|
||||||
with open(schedule_index_filename, 'r+',
|
'EX: Failed to prepend entry to scheduled posts index ' + \
|
||||||
encoding='utf-8') as fp_schedule:
|
schedule_index_filename + ' [ex]'
|
||||||
content = fp_schedule.read()
|
if prepend_string(index_str, schedule_index_filename,
|
||||||
if index_str + '\n' not in content:
|
ex_str):
|
||||||
fp_schedule.seek(0, 0)
|
print('DEBUG: scheduled post added to index')
|
||||||
fp_schedule.write(index_str + '\n' + content)
|
|
||||||
print('DEBUG: scheduled post added to index')
|
|
||||||
except OSError as ex:
|
|
||||||
print('EX: Failed to write entry to scheduled posts index ' +
|
|
||||||
schedule_index_filename + ' ' + str(ex))
|
|
||||||
return
|
return
|
||||||
|
|
||||||
save_string(index_str + '\n', schedule_index_filename,
|
save_string(index_str + '\n', schedule_index_filename,
|
||||||
|
|
|
||||||
19
reading.py
19
reading.py
|
|
@ -24,6 +24,7 @@ from timeFunctions import date_epoch
|
||||||
from timeFunctions import date_from_string_format
|
from timeFunctions import date_from_string_format
|
||||||
from data import save_string
|
from data import save_string
|
||||||
from data import load_string
|
from data import load_string
|
||||||
|
from data import prepend_string
|
||||||
|
|
||||||
|
|
||||||
def get_book_link_from_content(content: str) -> str:
|
def get_book_link_from_content(content: str) -> str:
|
||||||
|
|
@ -396,18 +397,12 @@ def _update_recent_books_list(base_dir: str, book_id: str,
|
||||||
"""
|
"""
|
||||||
recent_books_filename = data_dir(base_dir) + '/recent_books.txt'
|
recent_books_filename = data_dir(base_dir) + '/recent_books.txt'
|
||||||
if os.path.isfile(recent_books_filename):
|
if os.path.isfile(recent_books_filename):
|
||||||
try:
|
ex_str: str = \
|
||||||
with open(recent_books_filename, 'r+',
|
'EX: Failed to prepend entry to recent books ' + \
|
||||||
encoding='utf-8') as fp_recent:
|
recent_books_filename + ' [ex]'
|
||||||
content = fp_recent.read()
|
if prepend_string(book_id, recent_books_filename, ex_str):
|
||||||
if book_id + '\n' not in content:
|
if debug:
|
||||||
fp_recent.seek(0, 0)
|
print('DEBUG: recent book added')
|
||||||
fp_recent.write(book_id + '\n' + content)
|
|
||||||
if debug:
|
|
||||||
print('DEBUG: recent book added')
|
|
||||||
except OSError as ex:
|
|
||||||
print('WARN: Failed to write entry to recent books ' +
|
|
||||||
recent_books_filename + ' ' + str(ex))
|
|
||||||
else:
|
else:
|
||||||
save_string(book_id + '\n', recent_books_filename,
|
save_string(book_id + '\n', recent_books_filename,
|
||||||
'EX: unable to write recent books ' +
|
'EX: unable to write recent books ' +
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue