diff --git a/desktop_client.py b/desktop_client.py index f78305bd5..5efee20a4 100644 --- a/desktop_client.py +++ b/desktop_client.py @@ -182,7 +182,7 @@ def _mark_post_as_read(actor: str, post_id: str, post_category: str) -> None: if post_id not in content: read_file.seek(0, 0) read_file.write(post_id + content) - except Exception as ex: + except OSError as ex: print('EX: Failed to mark post as read' + str(ex)) else: with open(read_posts_filename, 'w+', encoding='utf-8') as read_file: diff --git a/epicyon-profile.css b/epicyon-profile.css index c77389a20..65adaa37e 100644 --- a/epicyon-profile.css +++ b/epicyon-profile.css @@ -758,6 +758,15 @@ a:focus { vertical-align: middle; } +.container img.postScopeIcon { + float: none; + width: 30px; + margin: 0 0; + padding: 0 0; + border-radius: 0; + vertical-align: -6px; +} + .container.darker { background-color: var(--main-bg-color-reply); } diff --git a/manual/manual.epub b/manual/manual.epub index 001e69782..04eef1412 100644 Binary files a/manual/manual.epub and b/manual/manual.epub differ diff --git a/manual/manual.html b/manual/manual.html index 5f197850a..3050cb24b 100644 --- a/manual/manual.html +++ b/manual/manual.html @@ -48,7 +48,8 @@ beginning. The ActivityPub protocol was initially called creation. Fediverse servers are typically referred to as “instances”, but they are really just websites which can speak with each other using the vocabulary of ActivityPub. Choosing an instance is the same as -choosing a website that you trust to handle your data.

+choosing a website that you trust to handle your data. This is the +social web.

Servers such as Mastodon are well known, but these are aimed at large scale deployments on powerful hardware @@ -622,6 +623,9 @@ shortcuts link at the bottom of the left column.

Calendar

+

“There is nothing in this world that does not have a decisive +moment”

+

– Henri Cartier-Bresson

The calendar is not yet a standardized feature of the fediverse as a whole, but has existed in Friendica and Zot instances for a long time. Being able to attach a date and time to a post and then have it appear diff --git a/manual/manual.md b/manual/manual.md index d38d9fccf..6428bab13 100644 --- a/manual/manual.md +++ b/manual/manual.md @@ -465,6 +465,10 @@ At the bottom of the timeline there will usually be an arrow icon to go to the n ![Keyboard shortcuts screen](manual-shortcuts.png) # Calendar +*"There is nothing in this world that does not have a decisive moment"* + +-- Henri Cartier-Bresson + The calendar is not yet a standardized feature of the fediverse as a whole, but has existed in Friendica and Zot instances for a long time. Being able to attach a date and time to a post and then have it appear on your calendar and perhaps also the calendars of your followers is quite useful for organizing things with minimum effort. Until such time as federated calendar functionality becomes more standardized this may only work between Epicyon instances. Calendar events are really just ordinary posts with a date, time and perhaps also a location attached to them. Posts with *Public* scope which have a date and time will appear on the calendars of your followers, unless they have opted out of receiving calendar events from you. diff --git a/manualapprove.py b/manualapprove.py index 227da4590..82042b7c8 100644 --- a/manualapprove.py +++ b/manualapprove.py @@ -293,7 +293,7 @@ def manual_approve_follow_request(session, session_onion, session_i2p, followers_file.seek(0, 0) followers_file.write(approve_handle_full + '\n' + content) - except Exception as ex: + except OSError as ex: print('WARN: Manual follow accept. ' + 'Failed to write entry to followers file ' + str(ex)) else: diff --git a/theme/blue/icons/license_cc.png b/theme/blue/icons/license_cc.png index 8066c9628..06cd8e079 100644 Binary files a/theme/blue/icons/license_cc.png and b/theme/blue/icons/license_cc.png differ diff --git a/theme/blue/icons/license_cc0.png b/theme/blue/icons/license_cc0.png index f38297211..0572828c4 100644 Binary files a/theme/blue/icons/license_cc0.png and b/theme/blue/icons/license_cc0.png differ diff --git a/theme/blue/icons/license_fdl.png b/theme/blue/icons/license_fdl.png index b650dffa2..cdb876d68 100644 Binary files a/theme/blue/icons/license_fdl.png and b/theme/blue/icons/license_fdl.png differ diff --git a/theme/blue/icons/license_un.png b/theme/blue/icons/license_un.png index 01d37cee8..16e3e15dd 100644 Binary files a/theme/blue/icons/license_un.png and b/theme/blue/icons/license_un.png differ diff --git a/theme/blue/icons/license_wtf.png b/theme/blue/icons/license_wtf.png index 4ccb998e1..9fb7b85f3 100644 Binary files a/theme/blue/icons/license_wtf.png and b/theme/blue/icons/license_wtf.png differ diff --git a/theme/debian/icons/license_cc.png b/theme/debian/icons/license_cc.png index 8066c9628..06cd8e079 100644 Binary files a/theme/debian/icons/license_cc.png and b/theme/debian/icons/license_cc.png differ diff --git a/theme/debian/icons/license_cc0.png b/theme/debian/icons/license_cc0.png index f38297211..0572828c4 100644 Binary files a/theme/debian/icons/license_cc0.png and b/theme/debian/icons/license_cc0.png differ diff --git a/theme/debian/icons/license_fdl.png b/theme/debian/icons/license_fdl.png index b650dffa2..cdb876d68 100644 Binary files a/theme/debian/icons/license_fdl.png and b/theme/debian/icons/license_fdl.png differ diff --git a/theme/debian/icons/license_un.png b/theme/debian/icons/license_un.png index 01d37cee8..16e3e15dd 100644 Binary files a/theme/debian/icons/license_un.png and b/theme/debian/icons/license_un.png differ diff --git a/theme/debian/icons/license_wtf.png b/theme/debian/icons/license_wtf.png index 4ccb998e1..9fb7b85f3 100644 Binary files a/theme/debian/icons/license_wtf.png and b/theme/debian/icons/license_wtf.png differ diff --git a/theme/default/icons/license_cc.png b/theme/default/icons/license_cc.png index 8066c9628..06cd8e079 100644 Binary files a/theme/default/icons/license_cc.png and b/theme/default/icons/license_cc.png differ diff --git a/theme/default/icons/license_cc0.png b/theme/default/icons/license_cc0.png index f38297211..0572828c4 100644 Binary files a/theme/default/icons/license_cc0.png and b/theme/default/icons/license_cc0.png differ diff --git a/theme/default/icons/license_fdl.png b/theme/default/icons/license_fdl.png index b650dffa2..cdb876d68 100644 Binary files a/theme/default/icons/license_fdl.png and b/theme/default/icons/license_fdl.png differ diff --git a/theme/default/icons/license_un.png b/theme/default/icons/license_un.png index 01d37cee8..16e3e15dd 100644 Binary files a/theme/default/icons/license_un.png and b/theme/default/icons/license_un.png differ diff --git a/theme/default/icons/license_wtf.png b/theme/default/icons/license_wtf.png index 4ccb998e1..9fb7b85f3 100644 Binary files a/theme/default/icons/license_wtf.png and b/theme/default/icons/license_wtf.png differ diff --git a/theme/hacker/icons/license_cc.png b/theme/hacker/icons/license_cc.png index 8066c9628..b0247d491 100644 Binary files a/theme/hacker/icons/license_cc.png and b/theme/hacker/icons/license_cc.png differ diff --git a/theme/hacker/icons/license_cc0.png b/theme/hacker/icons/license_cc0.png index f38297211..81906a53a 100644 Binary files a/theme/hacker/icons/license_cc0.png and b/theme/hacker/icons/license_cc0.png differ diff --git a/theme/hacker/icons/license_fdl.png b/theme/hacker/icons/license_fdl.png index b650dffa2..f65bed714 100644 Binary files a/theme/hacker/icons/license_fdl.png and b/theme/hacker/icons/license_fdl.png differ diff --git a/theme/hacker/icons/license_un.png b/theme/hacker/icons/license_un.png index 01d37cee8..08daf8bfc 100644 Binary files a/theme/hacker/icons/license_un.png and b/theme/hacker/icons/license_un.png differ diff --git a/theme/hacker/icons/license_wtf.png b/theme/hacker/icons/license_wtf.png index 4ccb998e1..312f8b1d7 100644 Binary files a/theme/hacker/icons/license_wtf.png and b/theme/hacker/icons/license_wtf.png differ diff --git a/theme/indymediaclassic/icons/license_cc.png b/theme/indymediaclassic/icons/license_cc.png index 8066c9628..3f1f7c02c 100644 Binary files a/theme/indymediaclassic/icons/license_cc.png and b/theme/indymediaclassic/icons/license_cc.png differ diff --git a/theme/indymediaclassic/icons/license_cc0.png b/theme/indymediaclassic/icons/license_cc0.png index f38297211..ecd3ddaa5 100644 Binary files a/theme/indymediaclassic/icons/license_cc0.png and b/theme/indymediaclassic/icons/license_cc0.png differ diff --git a/theme/indymediaclassic/icons/license_fdl.png b/theme/indymediaclassic/icons/license_fdl.png index b650dffa2..c2feeb052 100644 Binary files a/theme/indymediaclassic/icons/license_fdl.png and b/theme/indymediaclassic/icons/license_fdl.png differ diff --git a/theme/indymediaclassic/icons/license_un.png b/theme/indymediaclassic/icons/license_un.png index 01d37cee8..0b3f1cd6b 100644 Binary files a/theme/indymediaclassic/icons/license_un.png and b/theme/indymediaclassic/icons/license_un.png differ diff --git a/theme/indymediaclassic/icons/license_wtf.png b/theme/indymediaclassic/icons/license_wtf.png index 4ccb998e1..93caf48c6 100644 Binary files a/theme/indymediaclassic/icons/license_wtf.png and b/theme/indymediaclassic/icons/license_wtf.png differ diff --git a/theme/indymediamodern/icons/license_cc.png b/theme/indymediamodern/icons/license_cc.png index 8066c9628..6a9fb47aa 100644 Binary files a/theme/indymediamodern/icons/license_cc.png and b/theme/indymediamodern/icons/license_cc.png differ diff --git a/theme/indymediamodern/icons/license_cc0.png b/theme/indymediamodern/icons/license_cc0.png index f38297211..b52420e1b 100644 Binary files a/theme/indymediamodern/icons/license_cc0.png and b/theme/indymediamodern/icons/license_cc0.png differ diff --git a/theme/indymediamodern/icons/license_fdl.png b/theme/indymediamodern/icons/license_fdl.png index b650dffa2..75517c249 100644 Binary files a/theme/indymediamodern/icons/license_fdl.png and b/theme/indymediamodern/icons/license_fdl.png differ diff --git a/theme/indymediamodern/icons/license_un.png b/theme/indymediamodern/icons/license_un.png index 01d37cee8..69cec783e 100644 Binary files a/theme/indymediamodern/icons/license_un.png and b/theme/indymediamodern/icons/license_un.png differ diff --git a/theme/indymediamodern/icons/license_wtf.png b/theme/indymediamodern/icons/license_wtf.png index 4ccb998e1..5700e2748 100644 Binary files a/theme/indymediamodern/icons/license_wtf.png and b/theme/indymediamodern/icons/license_wtf.png differ diff --git a/theme/light/icons/license_cc.png b/theme/light/icons/license_cc.png index 8066c9628..6a9fb47aa 100644 Binary files a/theme/light/icons/license_cc.png and b/theme/light/icons/license_cc.png differ diff --git a/theme/light/icons/license_cc0.png b/theme/light/icons/license_cc0.png index f38297211..b52420e1b 100644 Binary files a/theme/light/icons/license_cc0.png and b/theme/light/icons/license_cc0.png differ diff --git a/theme/light/icons/license_fdl.png b/theme/light/icons/license_fdl.png index b650dffa2..75517c249 100644 Binary files a/theme/light/icons/license_fdl.png and b/theme/light/icons/license_fdl.png differ diff --git a/theme/light/icons/license_un.png b/theme/light/icons/license_un.png index 01d37cee8..69cec783e 100644 Binary files a/theme/light/icons/license_un.png and b/theme/light/icons/license_un.png differ diff --git a/theme/light/icons/license_wtf.png b/theme/light/icons/license_wtf.png index 4ccb998e1..5700e2748 100644 Binary files a/theme/light/icons/license_wtf.png and b/theme/light/icons/license_wtf.png differ diff --git a/theme/night/icons/license_cc.png b/theme/night/icons/license_cc.png index 8066c9628..06cd8e079 100644 Binary files a/theme/night/icons/license_cc.png and b/theme/night/icons/license_cc.png differ diff --git a/theme/night/icons/license_cc0.png b/theme/night/icons/license_cc0.png index f38297211..0572828c4 100644 Binary files a/theme/night/icons/license_cc0.png and b/theme/night/icons/license_cc0.png differ diff --git a/theme/night/icons/license_fdl.png b/theme/night/icons/license_fdl.png index b650dffa2..cdb876d68 100644 Binary files a/theme/night/icons/license_fdl.png and b/theme/night/icons/license_fdl.png differ diff --git a/theme/night/icons/license_un.png b/theme/night/icons/license_un.png index 01d37cee8..16e3e15dd 100644 Binary files a/theme/night/icons/license_un.png and b/theme/night/icons/license_un.png differ diff --git a/theme/night/icons/license_wtf.png b/theme/night/icons/license_wtf.png index 4ccb998e1..9fb7b85f3 100644 Binary files a/theme/night/icons/license_wtf.png and b/theme/night/icons/license_wtf.png differ diff --git a/theme/purple/icons/license_cc.png b/theme/purple/icons/license_cc.png index 8066c9628..36ee284b0 100644 Binary files a/theme/purple/icons/license_cc.png and b/theme/purple/icons/license_cc.png differ diff --git a/theme/purple/icons/license_cc0.png b/theme/purple/icons/license_cc0.png index f38297211..a2176f9f7 100644 Binary files a/theme/purple/icons/license_cc0.png and b/theme/purple/icons/license_cc0.png differ diff --git a/theme/purple/icons/license_fdl.png b/theme/purple/icons/license_fdl.png index b650dffa2..d94a8591b 100644 Binary files a/theme/purple/icons/license_fdl.png and b/theme/purple/icons/license_fdl.png differ diff --git a/theme/purple/icons/license_un.png b/theme/purple/icons/license_un.png index 01d37cee8..6680dca70 100644 Binary files a/theme/purple/icons/license_un.png and b/theme/purple/icons/license_un.png differ diff --git a/theme/purple/icons/license_wtf.png b/theme/purple/icons/license_wtf.png index 4ccb998e1..5ac7bb03f 100644 Binary files a/theme/purple/icons/license_wtf.png and b/theme/purple/icons/license_wtf.png differ diff --git a/theme/starlight/icons/license_cc.png b/theme/starlight/icons/license_cc.png index 8066c9628..d7a420625 100644 Binary files a/theme/starlight/icons/license_cc.png and b/theme/starlight/icons/license_cc.png differ diff --git a/theme/starlight/icons/license_cc0.png b/theme/starlight/icons/license_cc0.png index f38297211..b5ddafae9 100644 Binary files a/theme/starlight/icons/license_cc0.png and b/theme/starlight/icons/license_cc0.png differ diff --git a/theme/starlight/icons/license_fdl.png b/theme/starlight/icons/license_fdl.png index b650dffa2..7ff1e07b6 100644 Binary files a/theme/starlight/icons/license_fdl.png and b/theme/starlight/icons/license_fdl.png differ diff --git a/theme/starlight/icons/license_un.png b/theme/starlight/icons/license_un.png index 01d37cee8..668305f00 100644 Binary files a/theme/starlight/icons/license_un.png and b/theme/starlight/icons/license_un.png differ diff --git a/theme/starlight/icons/license_wtf.png b/theme/starlight/icons/license_wtf.png index 4ccb998e1..47798ed25 100644 Binary files a/theme/starlight/icons/license_wtf.png and b/theme/starlight/icons/license_wtf.png differ diff --git a/translations/ar.json b/translations/ar.json index 570d9b293..b81b52f08 100644 --- a/translations/ar.json +++ b/translations/ar.json @@ -194,6 +194,9 @@ "Ask a question": "طرح سؤال", "Possible answers": "إجابات ممكنة", "replying to": "الرد على", + "publicly replying to": "الرد علنًا على", + "replying to followers": "الرد على المتابعين", + "replying unlisted": "الرد غير مدرج", "replying to themselves": "الرد على أنفسهم", "announces": "يعلن", "Previous month": "الشهر الماضى", diff --git a/translations/bn.json b/translations/bn.json index a57409ba2..c5032d6cc 100644 --- a/translations/bn.json +++ b/translations/bn.json @@ -194,6 +194,9 @@ "Ask a question": "প্রশ্ন জিজ্ঞাসা কর", "Possible answers": "সম্ভাব্য উত্তর", "replying to": "এর জবাব", + "publicly replying to": "প্রকাশ্যে উত্তর দিচ্ছেন", + "replying to followers": "অনুগামীদের উত্তর", + "replying unlisted": "অতালিকাভুক্ত উত্তর", "replying to themselves": "নিজেদের জবাব দিচ্ছে", "announces": "ঘোষণা করে", "Previous month": "পূর্ববর্তী মাস", diff --git a/translations/ca.json b/translations/ca.json index df18f6d9b..ad5ed9676 100644 --- a/translations/ca.json +++ b/translations/ca.json @@ -194,6 +194,9 @@ "Ask a question": "Fer una pregunta", "Possible answers": "Respostes possibles", "replying to": "responent", + "publicly replying to": "responent públicament", + "replying to followers": "responent als seguidors", + "replying unlisted": "responent sense llistar", "replying to themselves": "responent-se", "announces": "anuncia", "Previous month": "Mes anterior", diff --git a/translations/cy.json b/translations/cy.json index 956057202..8446a0fc9 100644 --- a/translations/cy.json +++ b/translations/cy.json @@ -194,6 +194,9 @@ "Ask a question": "Gofyn cwestiwn", "Possible answers": "Atebion posib", "replying to": "ateb i", + "publicly replying to": "yn ateb yn gyhoeddus", + "replying to followers": "ateb i ddilynwyr", + "replying unlisted": "ateb heb ei restru", "replying to themselves": "ateb iddynt eu hunain", "announces": "yn cyhoeddi", "Previous month": "Y mis blaenorol", diff --git a/translations/de.json b/translations/de.json index 17f2c2578..e8c010de1 100644 --- a/translations/de.json +++ b/translations/de.json @@ -194,6 +194,9 @@ "Ask a question": "Stelle eine Frage", "Possible answers": "Mögliche Antworten", "replying to": "antworten auf", + "publicly replying to": "öffentlich antworten", + "replying to followers": "followern antworten", + "replying unlisted": "antworten nicht aufgeführt", "replying to themselves": "sich selbst antworten", "announces": "kündigt an", "Previous month": "Vorheriger Monat", diff --git a/translations/el.json b/translations/el.json index b75a9fa98..af95a1f9a 100644 --- a/translations/el.json +++ b/translations/el.json @@ -194,6 +194,9 @@ "Ask a question": "Κάνε μια ερώτηση", "Possible answers": "Πιθανές απαντήσεις", "replying to": "απαντώντας σε", + "publicly replying to": "απαντώντας δημόσια σε", + "replying to followers": "απαντώντας στους ακόλουθους", + "replying unlisted": "απαντώντας εκτός λίστας", "replying to themselves": "απαντώντας στον εαυτό τους", "announces": "ανακοινώνει", "Previous month": "Προηγούμενος μήνας", diff --git a/translations/en.json b/translations/en.json index 32d3ab839..278db6e9f 100644 --- a/translations/en.json +++ b/translations/en.json @@ -194,6 +194,9 @@ "Ask a question": "Ask a question", "Possible answers": "Possible answers", "replying to": "replying to", + "publicly replying to": "publicly replying to", + "replying to followers": "replying to followers", + "replying unlisted": "replying to unlisted", "replying to themselves": "replying to themselves", "announces": "announces", "Previous month": "Previous month", diff --git a/translations/es.json b/translations/es.json index 94141790e..6e8a14a62 100644 --- a/translations/es.json +++ b/translations/es.json @@ -194,6 +194,9 @@ "Ask a question": "Haz una pregunta", "Possible answers": "Respuestas posibles", "replying to": "respondiendo a", + "publicly replying to": "respondiendo públicamente a", + "replying to followers": "en respuesta a las seguidoras", + "replying unlisted": "respondiendo no listada", "replying to themselves": "respondiéndose a sí mismo", "announces": "anuncia", "Previous month": "Mes anterior", diff --git a/translations/fa.json b/translations/fa.json index faf8dd892..f4895eb61 100644 --- a/translations/fa.json +++ b/translations/fa.json @@ -194,6 +194,9 @@ "Ask a question": "یه سوال بپرس", "Possible answers": "پاسخ های ممکن", "replying to": "در حال پاسخ دادن به", + "publicly replying to": "علنی پاسخ دادن به", + "replying to followers": "پاسخ به دنبال کنندگان", + "replying unlisted": "در حال پاسخ به فهرست نشده", "replying to themselves": "به خودشان پاسخ می دهند", "announces": "اعلام می کند", "Previous month": "ماه گذشته", diff --git a/translations/fr.json b/translations/fr.json index 20839a64e..4f84280c8 100644 --- a/translations/fr.json +++ b/translations/fr.json @@ -194,6 +194,9 @@ "Ask a question": "Poser une question", "Possible answers": "Des réponses possibles", "replying to": "répondre à", + "publicly replying to": "répondre publiquement à", + "replying to followers": "répondre aux abonnés", + "replying unlisted": "réponse non répertoriée", "replying to themselves": "se répondre à eux-mêmes", "announces": "annonce", "Previous month": "Le mois précédent", diff --git a/translations/ga.json b/translations/ga.json index 04afa73e7..0e7e7d460 100644 --- a/translations/ga.json +++ b/translations/ga.json @@ -194,6 +194,9 @@ "Ask a question": "Ceist a chur", "Possible answers": "Freagraí féideartha", "replying to": "ag freagairt", + "publicly replying to": "ag freagairt go poiblí ar", + "replying to followers": "ag freagairt do leantóirí", + "replying unlisted": "freagra neamhliostaithe", "replying to themselves": "ag freagairt dóibh féin", "announces": "fógraíonn", "Previous month": "An mhí roimhe seo", diff --git a/translations/hi.json b/translations/hi.json index 9af4f702e..5b2992dcc 100644 --- a/translations/hi.json +++ b/translations/hi.json @@ -194,6 +194,9 @@ "Ask a question": "प्रश्न पूछें", "Possible answers": "संभावित उत्तर", "replying to": "करने के लिए जवाब दे", + "publicly replying to": "सार्वजनिक रूप से जवाब दे रहा है", + "replying to followers": "अनुयायियों को जवाब देना", + "replying unlisted": "असूचीबद्ध उत्तर दे रहा है", "replying to themselves": "खुद को जवाब दे", "announces": "की घोषणा", "Previous month": "पिछ्ला महिना", diff --git a/translations/it.json b/translations/it.json index 22e062f91..ab986d350 100644 --- a/translations/it.json +++ b/translations/it.json @@ -194,6 +194,9 @@ "Ask a question": "Fai una domanda", "Possible answers": "Possibili risposte", "replying to": "rispondendo a", + "publicly replying to": "rispondendo pubblicamente a", + "replying to followers": "rispondere ai follower", + "replying unlisted": "rispondendo non in elenco", "replying to themselves": "rispondendo a se stessi", "announces": "annuncia", "Previous month": "Il mese scorso", diff --git a/translations/ja.json b/translations/ja.json index 4054e0884..0c2cb9a78 100644 --- a/translations/ja.json +++ b/translations/ja.json @@ -194,6 +194,9 @@ "Ask a question": "質問する", "Possible answers": "可能な答え", "replying to": "に返信する", + "publicly replying to": "公に返信する", + "replying to followers": "フォロワーへの返信", + "replying unlisted": "リストにない返信", "replying to themselves": "自分に返信する", "announces": "発表する", "Previous month": "前月", diff --git a/translations/ko.json b/translations/ko.json index 5fdf0ed48..dc6d6f577 100644 --- a/translations/ko.json +++ b/translations/ko.json @@ -194,6 +194,9 @@ "Ask a question": "질문하기", "Possible answers": "가능한 답변", "replying to": "답장", + "publicly replying to": "공개적으로 답장", + "replying to followers": "팔로워에게 회신", + "replying unlisted": "목록에 없는 회신", "replying to themselves": "스스로에게 답장", "announces": "발표하다", "Previous month": "지난달", diff --git a/translations/ku.json b/translations/ku.json index 5c00f8f7f..385541118 100644 --- a/translations/ku.json +++ b/translations/ku.json @@ -194,6 +194,9 @@ "Ask a question": "Pirsek bipirsin", "Possible answers": "Bersivên gengaz", "replying to": "bersivandin", + "publicly replying to": "bi raya giştî re bersiv dide", + "replying to followers": "bersiva şagirtan dide", + "replying unlisted": "bersivê nelîste", "replying to themselves": "bersiva xwe didin", "announces": "îlan dike", "Previous month": "Meha berê", diff --git a/translations/nl.json b/translations/nl.json index 874a65237..7c53151d7 100644 --- a/translations/nl.json +++ b/translations/nl.json @@ -194,6 +194,9 @@ "Ask a question": "Een vraag stellen", "Possible answers": "Mogelijke antwoorden", "replying to": "reageren op", + "publicly replying to": "openbaar beantwoorden", + "replying to followers": "reageren op volgers", + "replying unlisted": "niet vermeld reageren", "replying to themselves": "zichzelf beantwoorden", "announces": "kondigt aan", "Previous month": "Vorige maand", diff --git a/translations/oc.json b/translations/oc.json index 0d074e655..45e2bb7de 100644 --- a/translations/oc.json +++ b/translations/oc.json @@ -190,6 +190,9 @@ "Ask a question": "Ask a question", "Possible answers": "Possible answers", "replying to": "replying to", + "publicly replying to": "publicly replying to", + "replying to followers": "replying to followers", + "replying unlisted": "replying unlisted", "replying to themselves": "replying to themselves", "announces": "announces", "Previous month": "Previous month", diff --git a/translations/pl.json b/translations/pl.json index f8a83eb3e..3858f49fa 100644 --- a/translations/pl.json +++ b/translations/pl.json @@ -194,6 +194,9 @@ "Ask a question": "Zadać pytanie", "Possible answers": "Możliwe odpowiedzi", "replying to": "odpowiadając na", + "publicly replying to": "publicznie odpowiadac na", + "replying to followers": "odpowiadanie obserwującym", + "replying unlisted": "odpowiadanie niepubliczne", "replying to themselves": "odpowiadając sobie", "announces": "ogłasza", "Previous month": "Poprzedni miesiac", diff --git a/translations/pt.json b/translations/pt.json index 7ecb23cf8..6c11a0d59 100644 --- a/translations/pt.json +++ b/translations/pt.json @@ -194,6 +194,9 @@ "Ask a question": "Faça uma pergunta", "Possible answers": "Possíveis respostas", "replying to": "respondendo a", + "publicly replying to": "respondendo publicamente a", + "replying to followers": "respondendo aos seguidores", + "replying unlisted": "respondendo não listado", "replying to themselves": "respondendo a si mesmos", "announces": "anuncia", "Previous month": "Mês anterior", diff --git a/translations/ru.json b/translations/ru.json index f7f18fe56..f859e1d58 100644 --- a/translations/ru.json +++ b/translations/ru.json @@ -194,6 +194,9 @@ "Ask a question": "Задайте вопрос", "Possible answers": "Возможные ответы", "replying to": "отвечая на", + "publicly replying to": "публично отвечая на", + "replying to followers": "отвечаю подписчикам", + "replying unlisted": "ответ не в списке", "replying to themselves": "отвечая на себя", "announces": "анонсов", "Previous month": "Предыдущий месяц", diff --git a/translations/sw.json b/translations/sw.json index a758cc03d..f4f04873f 100644 --- a/translations/sw.json +++ b/translations/sw.json @@ -194,6 +194,9 @@ "Ask a question": "Uliza Swali", "Possible answers": "Majibu yawezekana", "replying to": "kujibu kwa", + "publicly replying to": "kujibu hadharani", + "replying to followers": "kujibu wafuasi", + "replying unlisted": "kujibu bila kuorodheshwa", "replying to themselves": "kujibu wenyewe", "announces": "inatangaza", "Previous month": "Mwezi uliopita", diff --git a/translations/tr.json b/translations/tr.json index fb182a42d..b6a480bde 100644 --- a/translations/tr.json +++ b/translations/tr.json @@ -194,6 +194,9 @@ "Ask a question": "Bir soru sor", "Possible answers": "Olası cevaplar", "replying to": "yanıtlamak", + "publicly replying to": "herkese açık olarak yanıtlama", + "replying to followers": "takipçilere cevap verme", + "replying unlisted": "liste dışı yanıtlama", "replying to themselves": "kendilerine cevap vermek", "announces": "duyurur", "Previous month": "Geçtiğimiz ay", diff --git a/translations/uk.json b/translations/uk.json index 248b59826..bbecd07ac 100644 --- a/translations/uk.json +++ b/translations/uk.json @@ -194,6 +194,9 @@ "Ask a question": "Задайте питання", "Possible answers": "Можливі відповіді", "replying to": "відповідаючи на", + "publicly replying to": "публічно відповідаючи на", + "replying to followers": "відповідаючи підписникам", + "replying unlisted": "відповідати не в списку", "replying to themselves": "відповідаючи собі", "announces": "оголошує", "Previous month": "Попередній місяць", diff --git a/translations/yi.json b/translations/yi.json index 44571dab9..acf8981ba 100644 --- a/translations/yi.json +++ b/translations/yi.json @@ -194,6 +194,9 @@ "Ask a question": "פרעגן אַ קשיא", "Possible answers": "מעגלעך ענטפֿערס", "replying to": "ענטפערן צו", + "publicly replying to": "עפנטלעך ענטפער צו", + "replying to followers": "ענטפער צו אנהענגערס", + "replying unlisted": "ענטפערן אַנליסטיד", "replying to themselves": "ענטפערן צו זיך", "announces": "אַנאַונסיז", "Previous month": "פֿריִערדיקע חודש", diff --git a/translations/zh.json b/translations/zh.json index 8a2cc9f86..9a88921a4 100644 --- a/translations/zh.json +++ b/translations/zh.json @@ -194,6 +194,9 @@ "Ask a question": "问一个问题", "Possible answers": "可能的答案", "replying to": "回覆", + "publicly replying to": "公开回复", + "replying to followers": "回复关注者", + "replying unlisted": "回复不公开", "replying to themselves": "回覆自己", "announces": "宣布", "Previous month": "前一个月", diff --git a/webapp_post.py b/webapp_post.py index a589e78e6..2488d6555 100644 --- a/webapp_post.py +++ b/webapp_post.py @@ -353,6 +353,8 @@ def _save_individual_post_as_html_to_cache(base_dir: str, get_cached_post_directory(base_dir, nickname, domain) cached_post_filename = \ get_cached_post_filename(base_dir, nickname, domain, post_json_object) + if not cached_post_filename: + return False # create the cache directory if needed if not os.path.isdir(html_post_cache_dir): @@ -1381,14 +1383,27 @@ def _reply_to_yourself_html(translate: {}) -> str: return title_str +def _replying_to_with_scope(post_json_object: {}, translate: {}) -> str: + """Returns the replying to string + """ + replying_to_str = 'replying to' + if is_followers_post(post_json_object): + replying_to_str = 'replying to followers' + elif is_public_post(post_json_object): + replying_to_str = 'publicly replying to' + elif is_unlisted_post(post_json_object): + replying_to_str = 'replying unlisted' + if translate.get(replying_to_str): + replying_to_str = translate[replying_to_str] + return replying_to_str + + def _reply_to_unknown_html(translate: {}, post_json_object: {}, nickname: str) -> str: """Returns the html title for a reply to an unknown handle """ - replying_to_str = 'replying to' - if translate.get(replying_to_str): - replying_to_str = translate[replying_to_str] + replying_to_str = _replying_to_with_scope(post_json_object, translate) post_id = post_json_object['object']['inReplyTo'] post_link = '/users/' + nickname + '?convthread=' + \ post_id.replace('/', '--') @@ -1418,9 +1433,7 @@ def _reply_with_unknown_path_html(translate: {}, """Returns html title for a reply with an unknown path eg. does not contain /statuses/ """ - replying_to_str = 'replying to' - if translate.get(replying_to_str): - replying_to_str = translate[replying_to_str] + replying_to_str = _replying_to_with_scope(post_json_object, translate) post_id = post_json_object['object']['inReplyTo'] post_link = '/users/' + nickname + '?convthread=' + \ post_id.replace('/', '--') @@ -1436,12 +1449,11 @@ def _reply_with_unknown_path_html(translate: {}, def _get_reply_html(translate: {}, in_reply_to: str, reply_display_name: str, - nickname: str) -> str: + nickname: str, + post_json_object: {}) -> str: """Returns html title for a reply """ - replying_to_str = 'replying to' - if translate.get(replying_to_str): - replying_to_str = translate[replying_to_str] + replying_to_str = _replying_to_with_scope(post_json_object, translate) post_link = '/users/' + nickname + '?convthread=' + \ in_reply_to.replace('/', '--') return ' ' + \ @@ -1549,7 +1561,8 @@ def _get_post_title_reply_html(base_dir: str, _log_post_timing(enable_timing_log, post_start_time, '13.6') title_str += \ - _get_reply_html(translate, in_reply_to, reply_display_name, nickname) + _get_reply_html(translate, in_reply_to, reply_display_name, + nickname, post_json_object) if mitm: title_str += _mitm_warning_html(translate) @@ -2171,6 +2184,26 @@ def individual_post_as_html(signing_priv_key_pem: str, actor_nickname = 'dev' actor_domain, _ = get_domain_from_actor(post_actor) + # scope icon before display name + if is_followers_post(post_json_object): + title_str += \ + ' ' + \
+            translate['Only to followers'] + ':\n' + elif is_unlisted_post(post_json_object): + title_str += \ + ' ' + \
+            translate['Not on public timeline'] + ':\n' + elif is_reminder(post_json_object): + title_str += \ + ' ' + \
+            translate['Scheduled note to yourself'] + ':\n' + display_name = get_display_name(base_dir, post_actor, person_cache) if display_name: if len(display_name) < 2 or \ diff --git a/webapp_profile.py b/webapp_profile.py index b2da860e7..aee6c8bb3 100644 --- a/webapp_profile.py +++ b/webapp_profile.py @@ -705,7 +705,7 @@ def html_profile(signing_priv_key_pem: str, display_name = \ add_emoji_to_display_name(session, base_dir, http_prefix, nickname, domain, - display_name, True, translate) + display_name, False, translate) domain_full = get_full_domain(domain, port) profile_description = profile_json['summary'] profile_description = \ diff --git a/webapp_utils.py b/webapp_utils.py index d79e90d9a..22465ec7d 100644 --- a/webapp_utils.py +++ b/webapp_utils.py @@ -1062,7 +1062,7 @@ def load_individual_post_as_html_from_cache(base_dir: str, with open(cached_post_filename, 'r', encoding='utf-8') as file: post_html = file.read() break - except Exception as ex: + except OSError as ex: print('ERROR: load_individual_post_as_html_from_cache ' + str(tries) + ' ' + str(ex)) # no sleep