mirror of https://gitlab.com/bashrc2/epicyon
Replace file operations with functions
parent
8f83a31588
commit
799e3deeeb
116
content.py
116
content.py
|
|
@ -51,6 +51,9 @@ from utils import is_yggdrasil_address
|
|||
from formats import get_image_extensions
|
||||
from petnames import get_pet_name
|
||||
from session import download_image
|
||||
from data import load_string
|
||||
from data import save_string
|
||||
from data import append_string
|
||||
|
||||
MUSIC_SITES = ('soundcloud.com', 'bandcamp.com', 'resonate.coop')
|
||||
|
||||
|
|
@ -276,12 +279,11 @@ def dangerous_css(filename: str, allow_local_network_access: bool) -> bool:
|
|||
if not os.path.isfile(filename):
|
||||
return False
|
||||
|
||||
content = None
|
||||
try:
|
||||
with open(filename, 'r', encoding='utf-8') as fp_css:
|
||||
content = fp_css.read().lower()
|
||||
except OSError:
|
||||
print('EX: unable to read css file ' + filename)
|
||||
content = load_string(filename,
|
||||
'EX: unable to read css file ' + filename)
|
||||
if content is None:
|
||||
content = ''
|
||||
content = content.lower()
|
||||
|
||||
if not content:
|
||||
return False
|
||||
|
|
@ -330,12 +332,11 @@ def switch_words(base_dir: str, nickname: str, domain: str, content: str,
|
|||
acct_dir(base_dir, nickname, domain) + '/replacewords.txt'
|
||||
if not os.path.isfile(switch_words_filename):
|
||||
return content
|
||||
try:
|
||||
with open(switch_words_filename, 'r',
|
||||
encoding='utf-8') as fp_words:
|
||||
rules = fp_words.readlines()
|
||||
except OSError:
|
||||
print('EX: unable to read switches ' + switch_words_filename)
|
||||
rules_str = load_string(switch_words_filename,
|
||||
'EX: unable to read switches ' +
|
||||
switch_words_filename)
|
||||
if rules_str:
|
||||
rules = rules_str.split('\n')
|
||||
|
||||
for line in rules:
|
||||
replace_str = remove_eol(line)
|
||||
|
|
@ -426,12 +427,10 @@ def _update_common_emoji(base_dir: str, emoji_content: str) -> None:
|
|||
common_emoji_filename = data_dir(base_dir) + '/common_emoji.txt'
|
||||
common_emoji = None
|
||||
if os.path.isfile(common_emoji_filename):
|
||||
try:
|
||||
with open(common_emoji_filename, 'r',
|
||||
encoding='utf-8') as fp_emoji:
|
||||
common_emoji = fp_emoji.readlines()
|
||||
except OSError:
|
||||
print('EX: unable to load common emoji file')
|
||||
common_emoji_str = load_string(common_emoji_filename,
|
||||
'EX: unable to load common emoji file')
|
||||
if common_emoji_str:
|
||||
common_emoji = common_emoji_str.split('\n')
|
||||
if common_emoji:
|
||||
new_common_emoji: list[str] = []
|
||||
emoji_found = False
|
||||
|
|
@ -452,22 +451,17 @@ def _update_common_emoji(base_dir: str, emoji_content: str) -> None:
|
|||
if not emoji_found:
|
||||
new_common_emoji.append(str(1).zfill(16) + ' ' + emoji_content)
|
||||
new_common_emoji.sort(reverse=True)
|
||||
try:
|
||||
with open(common_emoji_filename, 'w+',
|
||||
encoding='utf-8') as fp_emoji:
|
||||
for line in new_common_emoji:
|
||||
fp_emoji.write(line + '\n')
|
||||
except OSError:
|
||||
print('EX: error writing common emoji 1')
|
||||
|
||||
text = ''
|
||||
for line in new_common_emoji:
|
||||
text += line + '\n'
|
||||
if not save_string(text, common_emoji_filename,
|
||||
'EX: error writing common emoji 1'):
|
||||
return
|
||||
else:
|
||||
line = str(1).zfill(16) + ' ' + emoji_content + '\n'
|
||||
try:
|
||||
with open(common_emoji_filename, 'w+',
|
||||
encoding='utf-8') as fp_emoji:
|
||||
fp_emoji.write(line)
|
||||
except OSError:
|
||||
print('EX: error writing common emoji 2')
|
||||
if not save_string(line, common_emoji_filename,
|
||||
'EX: error writing common emoji 2'):
|
||||
return
|
||||
|
||||
|
||||
|
|
@ -1274,11 +1268,10 @@ def _load_auto_tags(base_dir: str, nickname: str, domain: str) -> []:
|
|||
filename = acct_dir(base_dir, nickname, domain) + '/autotags.txt'
|
||||
if not os.path.isfile(filename):
|
||||
return []
|
||||
try:
|
||||
with open(filename, 'r', encoding='utf-8') as fp_tags:
|
||||
return fp_tags.readlines()
|
||||
except OSError:
|
||||
print('EX: unable to read auto tags ' + filename)
|
||||
fp_tags_str = load_string(filename,
|
||||
'EX: unable to read auto tags ' + filename)
|
||||
if fp_tags_str:
|
||||
return fp_tags_str.split('\n')
|
||||
return []
|
||||
|
||||
|
||||
|
|
@ -1419,12 +1412,13 @@ def load_dogwhistles(filename: str) -> {}:
|
|||
if not os.path.isfile(filename):
|
||||
return {}
|
||||
dogwhistle_lines: list[str] = []
|
||||
try:
|
||||
with open(filename, 'r', encoding='utf-8') as fp_dogwhistles:
|
||||
dogwhistle_lines = fp_dogwhistles.readlines()
|
||||
except OSError:
|
||||
print('EX: unable to load dogwhistles from ' + filename)
|
||||
dogwhistle_lines_str = \
|
||||
load_string(filename,
|
||||
'EX: unable to load dogwhistles from ' + filename)
|
||||
if dogwhistle_lines_str is None:
|
||||
return {}
|
||||
if dogwhistle_lines_str:
|
||||
dogwhistle_lines = dogwhistle_lines_str.split('\n')
|
||||
separators = ('->', '=>', ',', ';', '|', '=')
|
||||
dogwhistles = {}
|
||||
for line in dogwhistle_lines:
|
||||
|
|
@ -1502,13 +1496,11 @@ def add_html_tags(base_dir: str, http_prefix: str,
|
|||
if '@' in words:
|
||||
if os.path.isfile(following_filename):
|
||||
following: list[str] = []
|
||||
try:
|
||||
with open(following_filename, 'r',
|
||||
encoding='utf-8') as fp_foll:
|
||||
following = fp_foll.readlines()
|
||||
except OSError:
|
||||
print('EX: add_html_tags unable to read ' +
|
||||
following_filename)
|
||||
following_str = load_string(following_filename,
|
||||
'EX: add_html_tags unable to read ' +
|
||||
following_filename)
|
||||
if following_str:
|
||||
following = following_str.split('\n')
|
||||
for handle in following:
|
||||
pet = get_pet_name(base_dir, nickname, domain, handle)
|
||||
if pet:
|
||||
|
|
@ -2145,8 +2137,10 @@ def import_emoji(base_dir: str, import_filename: str, session) -> None:
|
|||
return
|
||||
emoji_dict = load_json(base_dir + '/emoji/default_emoji.json')
|
||||
added = 0
|
||||
with open(import_filename, "r", encoding='utf-8') as fp_emoji:
|
||||
lines = fp_emoji.readlines()
|
||||
lines_str = load_string(import_filename,
|
||||
'EX: import_emoji failed ' + import_filename)
|
||||
if lines_str:
|
||||
lines = lines_str.split('\n')
|
||||
for line in lines:
|
||||
if ', ' not in line:
|
||||
continue
|
||||
|
|
@ -2290,12 +2284,12 @@ def remove_script(content: str, log_filename: str,
|
|||
write_type: str = 'a+'
|
||||
if os.path.isfile(log_filename):
|
||||
write_type = 'w+'
|
||||
try:
|
||||
with open(log_filename, write_type,
|
||||
encoding='utf-8') as fp_log:
|
||||
fp_log.write(log_str)
|
||||
except OSError:
|
||||
print('EX: cannot append to svg script log')
|
||||
if write_type == 'a+':
|
||||
append_string(log_str, log_filename,
|
||||
'EX: cannot append to svg script log')
|
||||
else:
|
||||
save_string(log_str, log_filename,
|
||||
'EX: cannot save to svg script log')
|
||||
content = content.replace(text, '')
|
||||
return content
|
||||
|
||||
|
|
@ -2448,11 +2442,11 @@ def _load_auto_cw(base_dir: str, nickname: str, domain: str) -> []:
|
|||
auto_cw_filename = acct_dir(base_dir, nickname, domain) + '/autocw.txt'
|
||||
if not os.path.isfile(auto_cw_filename):
|
||||
return []
|
||||
try:
|
||||
with open(auto_cw_filename, 'r', encoding='utf-8') as fp_auto:
|
||||
return fp_auto.read().split('\n')
|
||||
except OSError:
|
||||
print('EX: unable to load auto cw file ' + auto_cw_filename)
|
||||
fp_auto_str = load_string(auto_cw_filename,
|
||||
'EX: unable to load auto cw file ' +
|
||||
auto_cw_filename)
|
||||
if fp_auto_str:
|
||||
return fp_auto_str.split('\n')
|
||||
return []
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue