mirror of https://gitlab.com/bashrc2/epicyon
Set default posting language
parent
4a906f143f
commit
ae0e6e4919
29
daemon.py
29
daemon.py
|
@ -264,6 +264,8 @@ from shares import shares_catalog_account_endpoint
|
|||
from shares import shares_catalog_csv_endpoint
|
||||
from categories import set_hashtag_category
|
||||
from categories import update_hashtag_categories
|
||||
from languages import load_default_post_languages
|
||||
from languages import set_default_post_language
|
||||
from languages import get_actor_languages
|
||||
from languages import set_actor_languages
|
||||
from languages import get_understood_languages
|
||||
|
@ -3492,6 +3494,10 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
self.server.domain_full,
|
||||
self.server.person_cache)
|
||||
|
||||
default_post_language = self.server.system_language
|
||||
if self.server.default_post_language.get(nickname):
|
||||
default_post_language = \
|
||||
self.server.default_post_language[nickname]
|
||||
msg = \
|
||||
html_new_post({}, False, self.server.translate,
|
||||
base_dir,
|
||||
|
@ -3532,7 +3538,7 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
bold_reading,
|
||||
self.server.dogwhistles,
|
||||
self.server.min_images_for_accounts,
|
||||
None, None)
|
||||
None, None, default_post_language)
|
||||
if msg:
|
||||
msg = msg.encode('utf-8')
|
||||
msglen = len(msg)
|
||||
|
@ -3648,6 +3654,10 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
self.server.domain_full,
|
||||
self.server.person_cache)
|
||||
|
||||
default_post_language = self.server.system_language
|
||||
if self.server.default_post_language.get(nickname):
|
||||
default_post_language = \
|
||||
self.server.default_post_language[nickname]
|
||||
msg = \
|
||||
html_new_post({}, False, self.server.translate,
|
||||
base_dir,
|
||||
|
@ -3687,7 +3697,7 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
bold_reading,
|
||||
self.server.dogwhistles,
|
||||
self.server.min_images_for_accounts,
|
||||
None, None)
|
||||
None, None, default_post_language)
|
||||
if msg:
|
||||
msg = msg.encode('utf-8')
|
||||
msglen = len(msg)
|
||||
|
@ -15780,6 +15790,10 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
self.server.domain_full,
|
||||
self.server.person_cache)
|
||||
|
||||
default_post_language = self.server.system_language
|
||||
if self.server.default_post_language.get(nickname):
|
||||
default_post_language = \
|
||||
self.server.default_post_language[nickname]
|
||||
msg = \
|
||||
html_new_post(edit_post_params, media_instance,
|
||||
translate,
|
||||
|
@ -15822,7 +15836,8 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
bold_reading,
|
||||
self.server.dogwhistles,
|
||||
self.server.min_images_for_accounts,
|
||||
new_post_month, new_post_year)
|
||||
new_post_month, new_post_year,
|
||||
default_post_language)
|
||||
if not msg:
|
||||
print('Error replying to ' + in_reply_to_url)
|
||||
self._404()
|
||||
|
@ -20065,6 +20080,11 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
fields['location'] = None
|
||||
if not fields.get('languagesDropdown'):
|
||||
fields['languagesDropdown'] = self.server.system_language
|
||||
set_default_post_language(self.server.base_dir, nickname,
|
||||
self.server.domain,
|
||||
fields['languagesDropdown'])
|
||||
self.server.default_post_language[nickname] = \
|
||||
fields['languagesDropdown']
|
||||
|
||||
if not citations_button_press:
|
||||
# Store a file which contains the time in seconds
|
||||
|
@ -22344,6 +22364,9 @@ def run_daemon(max_hashtags: int,
|
|||
# which accounts should minimize all attached images by default
|
||||
httpd.min_images_for_accounts = load_min_images_for_accounts(base_dir)
|
||||
|
||||
# default language for each account when creating a new post
|
||||
httpd.default_post_language = load_default_post_languages(base_dir)
|
||||
|
||||
# caches css files
|
||||
httpd.css_cache = {}
|
||||
|
||||
|
|
43
languages.py
43
languages.py
|
@ -8,7 +8,10 @@ __status__ = "Production"
|
|||
__module_group__ = "Core"
|
||||
|
||||
import json
|
||||
import os
|
||||
from urllib import request, parse
|
||||
from utils import is_account_dir
|
||||
from utils import acct_dir
|
||||
from utils import get_actor_languages_list
|
||||
from utils import remove_html
|
||||
from utils import has_object_dict
|
||||
|
@ -326,3 +329,43 @@ def auto_translate_post(base_dir: str, post_json_object: {},
|
|||
translated_text
|
||||
return translated_text
|
||||
return ''
|
||||
|
||||
|
||||
def set_default_post_language(base_dir: str, nickname: str, domain: str,
|
||||
language: str) -> None:
|
||||
"""Sets the default language for new posts
|
||||
"""
|
||||
default_post_language_filename = \
|
||||
acct_dir(base_dir, nickname, domain) + '/.new_post_language'
|
||||
try:
|
||||
with open(default_post_language_filename, 'w+',
|
||||
encoding='utf-8') as fp_lang:
|
||||
fp_lang.write(language)
|
||||
except OSError:
|
||||
print('EX: Unable to write default post language ' +
|
||||
default_post_language_filename)
|
||||
|
||||
|
||||
def load_default_post_languages(base_dir: str) -> {}:
|
||||
"""Returns a dictionary containing the default languages
|
||||
for new posts for each account
|
||||
"""
|
||||
result = {}
|
||||
for _, dirs, _ in os.walk(base_dir + '/accounts'):
|
||||
for handle in dirs:
|
||||
if not is_account_dir(handle):
|
||||
continue
|
||||
nickname = handle.split('@')[0]
|
||||
domain = handle.split('@')[1]
|
||||
default_post_language_filename = \
|
||||
acct_dir(base_dir, nickname, domain) + '/.new_post_language'
|
||||
if not os.path.isfile(default_post_language_filename):
|
||||
continue
|
||||
try:
|
||||
with open(default_post_language_filename, 'r',
|
||||
encoding='utf-8') as fp_lang:
|
||||
result[nickname] = fp_lang.read()
|
||||
except OSError:
|
||||
print('EX: Unable to read default post language ' +
|
||||
default_post_language_filename)
|
||||
return result
|
||||
|
|
|
@ -279,7 +279,8 @@ def html_new_post(edit_post_params: {},
|
|||
reply_is_chat: bool, bold_reading: bool,
|
||||
dogwhistles: {},
|
||||
min_images_for_accounts: [],
|
||||
default_month: int, default_year) -> str:
|
||||
default_month: int, default_year: int,
|
||||
default_post_language: str) -> str:
|
||||
"""New post screen
|
||||
"""
|
||||
# get the json if this is an edited post
|
||||
|
@ -796,9 +797,9 @@ def html_new_post(edit_post_params: {},
|
|||
languages_dropdown += ' </select><br>'
|
||||
languages_dropdown = \
|
||||
languages_dropdown.replace('<option value="' +
|
||||
system_language + '">',
|
||||
default_post_language + '">',
|
||||
'<option value="' +
|
||||
system_language +
|
||||
default_post_language +
|
||||
'" selected>')
|
||||
replies_section += \
|
||||
' <label class="labels">' + \
|
||||
|
|
Loading…
Reference in New Issue