Merge branch 'main' of gitlab.com:bashrc2/epicyon

merge-requests/30/head
Bob Mottram 2022-12-17 18:06:18 +00:00
commit 79572aaa6c
4 changed files with 71 additions and 11 deletions

View File

@ -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)

View File

@ -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);

View File

@ -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)

View File

@ -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,