mirror of https://gitlab.com/bashrc2/epicyon
Merge branch 'main' of gitlab.com:bashrc2/epicyon
commit
79572aaa6c
14
daemon.py
14
daemon.py
|
@ -1080,6 +1080,7 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
# self.send_header('ETag', '"' + etag + '"')
|
||||
if last_modified:
|
||||
self.send_header('last-modified', last_modified)
|
||||
self.send_header('accept-ranges', 'bytes')
|
||||
self.end_headers()
|
||||
|
||||
def _etag_exists(self, media_filename: str) -> bool:
|
||||
|
@ -5063,8 +5064,17 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
if '&submitYes=' in remove_post_confirm_params:
|
||||
remove_post_confirm_params = \
|
||||
urllib.parse.unquote_plus(remove_post_confirm_params)
|
||||
remove_message_id = \
|
||||
remove_post_confirm_params.split('messageId=')[1]
|
||||
if 'messageId=' in remove_post_confirm_params:
|
||||
remove_message_id = \
|
||||
remove_post_confirm_params.split('messageId=')[1]
|
||||
elif 'eventid=' in remove_post_confirm_params:
|
||||
remove_message_id = \
|
||||
remove_post_confirm_params.split('eventid=')[1]
|
||||
else:
|
||||
self.send_response(400)
|
||||
self.end_headers()
|
||||
self.server.postreq_busy = False
|
||||
return
|
||||
if '&' in remove_message_id:
|
||||
remove_message_id = remove_message_id.split('&')[0]
|
||||
print('remove_message_id: ' + remove_message_id)
|
||||
|
|
|
@ -172,13 +172,34 @@ a:focus {
|
|||
font-size: 28px;
|
||||
position: relative;
|
||||
padding: 20px;
|
||||
direction: ltr;
|
||||
}
|
||||
|
||||
.calendar__day__event__rtl {
|
||||
color: var(--event-color);
|
||||
background-color: var(--event-background-private);
|
||||
float: left;
|
||||
font-size: 28px;
|
||||
position: relative;
|
||||
padding: 20px;
|
||||
direction: rtl;
|
||||
}
|
||||
|
||||
.calendar__day__event__public {
|
||||
color: var(--event-public-color);
|
||||
float: left;
|
||||
font-size: 28px;
|
||||
position: relative;
|
||||
padding: 20px;
|
||||
direction: ltr;
|
||||
}
|
||||
.calendar__day__event__public__rtl {
|
||||
color: var(--event-public-color);
|
||||
float: left;
|
||||
font-size: 28px;
|
||||
position: relative;
|
||||
padding: 20px;
|
||||
direction: rtl;
|
||||
}
|
||||
.place {
|
||||
color: var(--place-color);
|
||||
|
|
26
happening.py
26
happening.py
|
@ -273,6 +273,7 @@ def get_todays_events(base_dir: str, nickname: str, domain: str,
|
|||
if not _is_happening_post(post_json_object):
|
||||
continue
|
||||
|
||||
content_language = system_language
|
||||
if post_json_object.get('object'):
|
||||
content = None
|
||||
if post_json_object['object'].get('contentMap'):
|
||||
|
@ -280,6 +281,7 @@ def get_todays_events(base_dir: str, nickname: str, domain: str,
|
|||
if post_json_object['object']['contentMap'].get(sys_lang):
|
||||
content = \
|
||||
post_json_object['object']['contentMap'][sys_lang]
|
||||
content_language = sys_lang
|
||||
if not content:
|
||||
if post_json_object['object'].get('content'):
|
||||
content = post_json_object['object']['content']
|
||||
|
@ -314,6 +316,7 @@ def get_todays_events(base_dir: str, nickname: str, domain: str,
|
|||
tag['sender'] = post_id.split('#statuses#')[0]
|
||||
tag['sender'] = tag['sender'].replace('#', '/')
|
||||
tag['public'] = public_event
|
||||
tag['language'] = content_language
|
||||
post_event.append(tag)
|
||||
else:
|
||||
# tag is a place
|
||||
|
@ -759,17 +762,26 @@ def remove_calendar_event(base_dir: str, nickname: str, domain: str,
|
|||
if '/' in message_id:
|
||||
message_id = message_id.replace('/', '#')
|
||||
if not text_in_file(message_id, calendar_filename):
|
||||
message_id = message_id.replace('#', '/')
|
||||
if not text_in_file(message_id, calendar_filename):
|
||||
return
|
||||
lines_str = ''
|
||||
try:
|
||||
with open(calendar_filename, 'r', encoding='utf-8') as fp_cal:
|
||||
lines_str = fp_cal.read()
|
||||
except OSError:
|
||||
print('EX: unable to read calendar file ' +
|
||||
calendar_filename)
|
||||
if not lines_str:
|
||||
return
|
||||
lines = None
|
||||
with open(calendar_filename, 'r', encoding='utf-8') as fp_cal:
|
||||
lines = fp_cal.readlines()
|
||||
if not lines:
|
||||
return
|
||||
lines = lines_str.split('\n')
|
||||
print('Removing calendar event: ' + message_id)
|
||||
try:
|
||||
with open(calendar_filename, 'w+', encoding='utf-8') as fp_cal:
|
||||
for line in lines:
|
||||
if message_id not in line:
|
||||
fp_cal.write(line)
|
||||
if message_id in line:
|
||||
continue
|
||||
fp_cal.write(line + '\n')
|
||||
except OSError:
|
||||
print('EX: unable to remove calendar event ' +
|
||||
calendar_filename)
|
||||
|
|
|
@ -26,6 +26,7 @@ from happening import get_todays_events
|
|||
from happening import get_calendar_events
|
||||
from happening import get_todays_events_icalendar
|
||||
from happening import get_month_events_icalendar
|
||||
from webapp_utils import language_right_to_left
|
||||
from webapp_utils import get_banner_file
|
||||
from webapp_utils import set_custom_background
|
||||
from webapp_utils import html_header_with_external_style
|
||||
|
@ -84,6 +85,9 @@ def html_calendar_delete_confirm(translate: {}, base_dir: str,
|
|||
str(month_number) + '">\n'
|
||||
delete_post_str += ' <input type="hidden" name="day" value="' + \
|
||||
str(day_number) + '">\n'
|
||||
if post_time:
|
||||
delete_post_str += ' <input type="hidden" name="time" value="' + \
|
||||
post_time + '">\n'
|
||||
delete_post_str += \
|
||||
' <input type="hidden" name="pageNumber" value="1">\n'
|
||||
delete_post_str += \
|
||||
|
@ -108,7 +112,8 @@ def _html_calendar_day(person_cache: {}, translate: {},
|
|||
year: int, month_number: int, day_number: int,
|
||||
nickname: str, domain: str, day_events: [],
|
||||
month_name: str, actor: str,
|
||||
theme: str, access_keys: {}) -> str:
|
||||
theme: str, access_keys: {},
|
||||
system_language: str) -> str:
|
||||
"""Show a day within the calendar
|
||||
"""
|
||||
account_dir = acct_dir(base_dir, nickname, domain)
|
||||
|
@ -170,6 +175,7 @@ def _html_calendar_day(person_cache: {}, translate: {},
|
|||
start_time_str = ''
|
||||
end_time_str = ''
|
||||
event_description = None
|
||||
event_language = system_language
|
||||
event_place = None
|
||||
post_id = None
|
||||
sender_name = ''
|
||||
|
@ -177,6 +183,10 @@ def _html_calendar_day(person_cache: {}, translate: {},
|
|||
event_is_public = False
|
||||
# get the time place and description
|
||||
for evnt in event_post:
|
||||
event_language = system_language
|
||||
if evnt.get('language'):
|
||||
event_language = evnt['language']
|
||||
|
||||
if evnt['type'] == 'Event':
|
||||
if evnt.get('post_id'):
|
||||
post_id = evnt['post_id']
|
||||
|
@ -250,10 +260,16 @@ def _html_calendar_day(person_cache: {}, translate: {},
|
|||
translate['Delete this event'] + '" src="/' + \
|
||||
'icons/delete.png" /></a></td>\n'
|
||||
|
||||
is_rtl = language_right_to_left(event_language)
|
||||
|
||||
event_class = 'calendar__day__event'
|
||||
if is_rtl:
|
||||
event_class = 'calendar__day__event__rtl'
|
||||
cal_item_class = 'calItem'
|
||||
if event_is_public:
|
||||
event_class = 'calendar__day__event__public'
|
||||
if is_rtl:
|
||||
event_class = 'calendar__day__event__public__rtl'
|
||||
cal_item_class = 'calItemPublic'
|
||||
if event_time:
|
||||
if event_end_time:
|
||||
|
@ -401,7 +417,8 @@ def html_calendar(person_cache: {}, translate: {},
|
|||
year, month_number, day_number,
|
||||
nickname, domain, day_events,
|
||||
month_name, actor,
|
||||
theme, access_keys)
|
||||
theme, access_keys,
|
||||
system_language)
|
||||
|
||||
if icalendar:
|
||||
return get_month_events_icalendar(base_dir, nickname, domain,
|
||||
|
|
Loading…
Reference in New Issue