From 543fd3816665bbe4e2d2ee49171903883077aa65 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Fri, 26 Feb 2021 10:29:50 +0000 Subject: [PATCH 01/40] Function to show help text when initial timeline has no posts in it --- webapp_timeline.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/webapp_timeline.py b/webapp_timeline.py index 1c3cf7f63..99025d82c 100644 --- a/webapp_timeline.py +++ b/webapp_timeline.py @@ -8,12 +8,15 @@ __status__ = "Production" import os import time +from shutil import copyfile +from utils import removeHtml from utils import getConfigParam from utils import getFullDomain from utils import isEditor from utils import removeIdEnding from follow import followerApprovalActive from person import isPersonSnoozed +from webapp_utils import markdownToHtml from webapp_utils import htmlKeyboardNavigation from webapp_utils import htmlHideFromScreenReader from webapp_utils import htmlPostSeparator @@ -42,6 +45,36 @@ def _logTimelineTiming(enableTimingLog: bool, timelineStartTime, boxName + ' ' + debugId + ' = ' + str(timeDiff)) +def _getHelpForTimeline(baseDir: str, boxName: str) -> str: + """Shows help text for the given timeline + """ + # get the filename for help for this timeline + helpFilename = baseDir + '/accounts/help_' + boxName + '.md' + if not os.path.isfile(helpFilename): + language = \ + getConfigParam(baseDir, 'language') + defaultFilename = \ + baseDir + '/defaultwelcome/' + \ + 'help_' + boxName + '_' + language + '.md' + if not os.path.isfile(defaultFilename): + defaultFilename = \ + baseDir + '/defaultwelcome/help_' + boxName + '_en.md' + if os.path.isfile(defaultFilename): + copyfile(defaultFilename, helpFilename) + + # show help text + if os.path.isfile(helpFilename): + instanceTitle = \ + getConfigParam(baseDir, 'instanceTitle') + if not instanceTitle: + instanceTitle = 'Epicyon' + with open(helpFilename, 'r') as helpFile: + helpText = helpFile.read() + helpText = helpText.replace('INSTANCE', instanceTitle) + return markdownToHtml(removeHtml(helpText)) + return '' + + def htmlTimeline(cssCache: {}, defaultTimeline: str, recentPostsCache: {}, maxRecentPosts: int, translate: {}, pageNumber: int, @@ -698,6 +731,8 @@ def htmlTimeline(cssCache: {}, defaultTimeline: str, translate['Page down'] + '">\n' + \ ' \n' tlStr += textModeSeparator + elif itemCtr == 0: + tlStr += _getHelpForTimeline(baseDir, boxName) # end of timeline-posts tlStr += ' \n' From 23da356baf08d9f1811b32252c7ed0c2c3d1e9f4 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Fri, 26 Feb 2021 11:15:43 +0000 Subject: [PATCH 02/40] Inbox help text --- defaultwelcome/help_inbox_en.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 defaultwelcome/help_inbox_en.md diff --git a/defaultwelcome/help_inbox_en.md b/defaultwelcome/help_inbox_en.md new file mode 100644 index 000000000..31d75c21a --- /dev/null +++ b/defaultwelcome/help_inbox_en.md @@ -0,0 +1,20 @@ +### Middle column +Incoming posts will appear here, as a chronological timeline. + +### 🡱 The top banner 🡱 +At the top of the screen you can select the **banner** to switch to your profile, and edit it or log out. + +### 🡱 Timeline buttons and icons 🡱 +The **buttons** below the top banner allow you to select different timelines. There are also **icons** on the right to **search**, view your **calendar** or create **new posts**. + +The **show/hide** icon allows more timeline buttons to be shown, along with moderator controls. + +### 🡰 Left column 🡰 +Here you can add **useful links**. This only appears on desktop displays or devices with larger screens. It is similar to a *blogroll*. You can only add or edit links if you have an **administrator** or **editor** role. + +If you are on mobile then user the **links icon** at the top to read news. + +### 🡲 Right column 🡲 +RSS feeds can be added in the right column, known as the *newswire*. This only appears on desktop displays or devices with larger screens. You can only add or edit feeds if you have an **administrator** or **editor** role, and incoming feed items can also be moderated. + +If you are on mobile then user the **newswire icon** at the top to read news. From 8ec20ab79c888ea08aa270871e17d0bffca5b037 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Fri, 26 Feb 2021 11:29:57 +0000 Subject: [PATCH 03/40] Direct message help text --- defaultwelcome/help_dm_en.md | 1 + defaultwelcome/help_inbox_en.md | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 defaultwelcome/help_dm_en.md diff --git a/defaultwelcome/help_dm_en.md b/defaultwelcome/help_dm_en.md new file mode 100644 index 000000000..1846dab1e --- /dev/null +++ b/defaultwelcome/help_dm_en.md @@ -0,0 +1 @@ +Direct messages will appear here, as a chronological timeline. diff --git a/defaultwelcome/help_inbox_en.md b/defaultwelcome/help_inbox_en.md index 31d75c21a..d864646f8 100644 --- a/defaultwelcome/help_inbox_en.md +++ b/defaultwelcome/help_inbox_en.md @@ -1,5 +1,5 @@ ### Middle column -Incoming posts will appear here, as a chronological timeline. +Incoming posts will appear here, as a chronological timeline. If you send any posts they will also appear here. ### 🡱 The top banner 🡱 At the top of the screen you can select the **banner** to switch to your profile, and edit it or log out. @@ -15,6 +15,6 @@ Here you can add **useful links**. This only appears on desktop displays or devi If you are on mobile then user the **links icon** at the top to read news. ### 🡲 Right column 🡲 -RSS feeds can be added in the right column, known as the *newswire*. This only appears on desktop displays or devices with larger screens. You can only add or edit feeds if you have an **administrator** or **editor** role, and incoming feed items can also be moderated. +**RSS feeds** can be added in the right column, known as the *newswire*. This only appears on desktop displays or devices with larger screens. You can only add or edit feeds if you have an **administrator** or **editor** role, and incoming feed items can also be moderated. If you are on mobile then user the **newswire icon** at the top to read news. From 52a9e7d0bbd2610c31d7fcf989337c27f1b50ae7 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Fri, 26 Feb 2021 11:32:15 +0000 Subject: [PATCH 04/40] Outbox help text --- defaultwelcome/help_outbox_en.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 defaultwelcome/help_outbox_en.md diff --git a/defaultwelcome/help_outbox_en.md b/defaultwelcome/help_outbox_en.md new file mode 100644 index 000000000..7651570d6 --- /dev/null +++ b/defaultwelcome/help_outbox_en.md @@ -0,0 +1 @@ +Your sent posts will appear here, as a cronological timeline. From 6265da8661494fb1fb74e5f9ed5d212ca664b359 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Fri, 26 Feb 2021 11:34:34 +0000 Subject: [PATCH 05/40] Media timeline help text --- defaultwelcome/help_tlmedia_en.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 defaultwelcome/help_tlmedia_en.md diff --git a/defaultwelcome/help_tlmedia_en.md b/defaultwelcome/help_tlmedia_en.md new file mode 100644 index 000000000..b5daee390 --- /dev/null +++ b/defaultwelcome/help_tlmedia_en.md @@ -0,0 +1 @@ +Any incoming posts which contain **images**, **video** or **audio** files will appear here, together with their descriptions. From 8b2d2db8d1a598f716472fda3b9f0bd6cfcff4a8 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Fri, 26 Feb 2021 11:58:58 +0000 Subject: [PATCH 06/40] Shares timeline help text --- defaultwelcome/help_tlshares_en.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 defaultwelcome/help_tlshares_en.md diff --git a/defaultwelcome/help_tlshares_en.md b/defaultwelcome/help_tlshares_en.md new file mode 100644 index 000000000..75f2364e8 --- /dev/null +++ b/defaultwelcome/help_tlshares_en.md @@ -0,0 +1,4 @@ +## Shared items +Shared items are typically physical objects or local services, exchanged or given away without use of money. + +For example, you may want to share **equipment** between members of a sports team on the same instance, share any surplus **clothing**, share **gadgets** which you are no longer using, or share plants and gardening **tools** between people using the same growing space. From 3eca92d4512c7e8b04c12e0e4cba034adbdd14f7 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Fri, 26 Feb 2021 12:04:01 +0000 Subject: [PATCH 07/40] Shared items --- defaultwelcome/help_tlshares_en.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/defaultwelcome/help_tlshares_en.md b/defaultwelcome/help_tlshares_en.md index 75f2364e8..840af66da 100644 --- a/defaultwelcome/help_tlshares_en.md +++ b/defaultwelcome/help_tlshares_en.md @@ -2,3 +2,5 @@ Shared items are typically physical objects or local services, exchanged or given away without use of money. For example, you may want to share **equipment** between members of a sports team on the same instance, share any surplus **clothing**, share **gadgets** which you are no longer using, or share plants and gardening **tools** between people using the same growing space. + +In order to avoid spam, shared items are not federated via ActivityPub and are local to members on the same instance. From f0d6218beafd0eadad2c23825b3a4ed6a1ac1db4 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Fri, 26 Feb 2021 12:04:58 +0000 Subject: [PATCH 08/40] Help text for bookmarks --- defaultwelcome/help_tlbookmarks_en.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 defaultwelcome/help_tlbookmarks_en.md diff --git a/defaultwelcome/help_tlbookmarks_en.md b/defaultwelcome/help_tlbookmarks_en.md new file mode 100644 index 000000000..829c860dc --- /dev/null +++ b/defaultwelcome/help_tlbookmarks_en.md @@ -0,0 +1 @@ +Any bookmarked posts appear here. From 78fd05a5d6324bc9aef947b236ad2e7df62421de Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Fri, 26 Feb 2021 12:05:27 +0000 Subject: [PATCH 09/40] More concise --- defaultwelcome/help_tlshares_en.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/defaultwelcome/help_tlshares_en.md b/defaultwelcome/help_tlshares_en.md index 840af66da..d3b7bed72 100644 --- a/defaultwelcome/help_tlshares_en.md +++ b/defaultwelcome/help_tlshares_en.md @@ -3,4 +3,4 @@ Shared items are typically physical objects or local services, exchanged or give For example, you may want to share **equipment** between members of a sports team on the same instance, share any surplus **clothing**, share **gadgets** which you are no longer using, or share plants and gardening **tools** between people using the same growing space. -In order to avoid spam, shared items are not federated via ActivityPub and are local to members on the same instance. +To avoid spam, shared items are not federated via ActivityPub and are local to members on the same instance. From 8e8e9f8a452149674799cda843c2a47feee07d13 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Fri, 26 Feb 2021 12:06:20 +0000 Subject: [PATCH 10/40] Header style --- defaultwelcome/help_tlshares_en.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/defaultwelcome/help_tlshares_en.md b/defaultwelcome/help_tlshares_en.md index d3b7bed72..af9975e05 100644 --- a/defaultwelcome/help_tlshares_en.md +++ b/defaultwelcome/help_tlshares_en.md @@ -1,4 +1,4 @@ -## Shared items +### Shared items Shared items are typically physical objects or local services, exchanged or given away without use of money. For example, you may want to share **equipment** between members of a sports team on the same instance, share any surplus **clothing**, share **gadgets** which you are no longer using, or share plants and gardening **tools** between people using the same growing space. From 47d5ff89dc45f71c1271842ac08838efc7a0b378 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Fri, 26 Feb 2021 12:06:50 +0000 Subject: [PATCH 11/40] More concise --- defaultwelcome/help_tlshares_en.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/defaultwelcome/help_tlshares_en.md b/defaultwelcome/help_tlshares_en.md index af9975e05..e984d407c 100644 --- a/defaultwelcome/help_tlshares_en.md +++ b/defaultwelcome/help_tlshares_en.md @@ -1,5 +1,5 @@ ### Shared items -Shared items are typically physical objects or local services, exchanged or given away without use of money. +These are typically physical objects or local services, exchanged or given away without use of money. For example, you may want to share **equipment** between members of a sports team on the same instance, share any surplus **clothing**, share **gadgets** which you are no longer using, or share plants and gardening **tools** between people using the same growing space. From f3d035a6daed57a808991166380c4213bd4119dc Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Fri, 26 Feb 2021 12:24:55 +0000 Subject: [PATCH 12/40] Default language --- webapp_timeline.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/webapp_timeline.py b/webapp_timeline.py index 99025d82c..ccf5a7a85 100644 --- a/webapp_timeline.py +++ b/webapp_timeline.py @@ -53,6 +53,8 @@ def _getHelpForTimeline(baseDir: str, boxName: str) -> str: if not os.path.isfile(helpFilename): language = \ getConfigParam(baseDir, 'language') + if not language: + language = 'en' defaultFilename = \ baseDir + '/defaultwelcome/' + \ 'help_' + boxName + '_' + language + '.md' From 39ca550503916de460cdc36218dd8223dd3cd111 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Fri, 26 Feb 2021 12:29:42 +0000 Subject: [PATCH 13/40] Container for help text --- defaultwelcome/help_inbox_en.md | 2 +- webapp_timeline.py | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/defaultwelcome/help_inbox_en.md b/defaultwelcome/help_inbox_en.md index d864646f8..d7ca2e813 100644 --- a/defaultwelcome/help_inbox_en.md +++ b/defaultwelcome/help_inbox_en.md @@ -15,6 +15,6 @@ Here you can add **useful links**. This only appears on desktop displays or devi If you are on mobile then user the **links icon** at the top to read news. ### 🡲 Right column 🡲 -**RSS feeds** can be added in the right column, known as the *newswire*. This only appears on desktop displays or devices with larger screens. You can only add or edit feeds if you have an **administrator** or **editor** role, and incoming feed items can also be moderated. +RSS feeds can be added in the right column, known as the *newswire*. This only appears on desktop displays or devices with larger screens. You can only add or edit feeds if you have an **administrator** or **editor** role, and incoming feed items can also be moderated. If you are on mobile then user the **newswire icon** at the top to read news. diff --git a/webapp_timeline.py b/webapp_timeline.py index ccf5a7a85..b6b9bacd8 100644 --- a/webapp_timeline.py +++ b/webapp_timeline.py @@ -73,7 +73,9 @@ def _getHelpForTimeline(baseDir: str, boxName: str) -> str: with open(helpFilename, 'r') as helpFile: helpText = helpFile.read() helpText = helpText.replace('INSTANCE', instanceTitle) - return markdownToHtml(removeHtml(helpText)) + return '
\n' + \ + markdownToHtml(removeHtml(helpText)) + \ + '<\div>\n' return '' From 9caf332e51099f3783c639fe3c757b1fda5aa3b5 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Fri, 26 Feb 2021 12:37:02 +0000 Subject: [PATCH 14/40] Section endings --- webapp_timeline.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/webapp_timeline.py b/webapp_timeline.py index b6b9bacd8..2b44add0c 100644 --- a/webapp_timeline.py +++ b/webapp_timeline.py @@ -738,11 +738,12 @@ def htmlTimeline(cssCache: {}, defaultTimeline: str, elif itemCtr == 0: tlStr += _getHelpForTimeline(baseDir, boxName) - # end of timeline-posts - tlStr += '
\n' + if itemCtr > 0: + # end of timeline-posts + tlStr += ' \n' - # end of column-center - tlStr += ' \n' + # end of column-center + tlStr += ' \n' # right column rightColumnStr = getRightColumnContent(baseDir, nickname, domainFull, From ee9a8cad48b7abaa4b8d5c3b5c5282e16b687e04 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Fri, 26 Feb 2021 12:38:13 +0000 Subject: [PATCH 15/40] Section endings --- webapp_timeline.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/webapp_timeline.py b/webapp_timeline.py index 2b44add0c..ab6043912 100644 --- a/webapp_timeline.py +++ b/webapp_timeline.py @@ -738,10 +738,10 @@ def htmlTimeline(cssCache: {}, defaultTimeline: str, elif itemCtr == 0: tlStr += _getHelpForTimeline(baseDir, boxName) - if itemCtr > 0: - # end of timeline-posts - tlStr += ' \n' + # end of timeline-posts + tlStr += ' \n' + if itemCtr > 0: # end of column-center tlStr += ' \n' From e541a03a591ae82eed0851b9bab1fac9cbd1751e Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Fri, 26 Feb 2021 12:41:09 +0000 Subject: [PATCH 16/40] Newline --- webapp_timeline.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/webapp_timeline.py b/webapp_timeline.py index ab6043912..e1f1fd322 100644 --- a/webapp_timeline.py +++ b/webapp_timeline.py @@ -74,7 +74,7 @@ def _getHelpForTimeline(baseDir: str, boxName: str) -> str: helpText = helpFile.read() helpText = helpText.replace('INSTANCE', instanceTitle) return '
\n' + \ - markdownToHtml(removeHtml(helpText)) + \ + markdownToHtml(removeHtml(helpText)) + '\n' + \ '<\div>\n' return '' @@ -741,9 +741,8 @@ def htmlTimeline(cssCache: {}, defaultTimeline: str, # end of timeline-posts tlStr += '
\n' - if itemCtr > 0: - # end of column-center - tlStr += ' \n' + # end of column-center + tlStr += ' \n' # right column rightColumnStr = getRightColumnContent(baseDir, nickname, domainFull, From 993ae3141e39f54c9344234df53500e43183dc5e Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Fri, 26 Feb 2021 12:42:29 +0000 Subject: [PATCH 17/40] Slash --- webapp_timeline.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webapp_timeline.py b/webapp_timeline.py index e1f1fd322..4022382c6 100644 --- a/webapp_timeline.py +++ b/webapp_timeline.py @@ -75,7 +75,7 @@ def _getHelpForTimeline(baseDir: str, boxName: str) -> str: helpText = helpText.replace('INSTANCE', instanceTitle) return '
\n' + \ markdownToHtml(removeHtml(helpText)) + '\n' + \ - '<\div>\n' + '
\n' return '' From a85e6cb2236bfac2b4dff030a586173f68e06fb2 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Fri, 26 Feb 2021 12:44:37 +0000 Subject: [PATCH 18/40] Don't use unicode emoji in help text --- defaultwelcome/help_inbox_en.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/defaultwelcome/help_inbox_en.md b/defaultwelcome/help_inbox_en.md index d7ca2e813..2ae21843f 100644 --- a/defaultwelcome/help_inbox_en.md +++ b/defaultwelcome/help_inbox_en.md @@ -1,20 +1,20 @@ ### Middle column Incoming posts will appear here, as a chronological timeline. If you send any posts they will also appear here. -### 🡱 The top banner 🡱 +### The top banner At the top of the screen you can select the **banner** to switch to your profile, and edit it or log out. -### 🡱 Timeline buttons and icons 🡱 +### Timeline buttons and icons The **buttons** below the top banner allow you to select different timelines. There are also **icons** on the right to **search**, view your **calendar** or create **new posts**. The **show/hide** icon allows more timeline buttons to be shown, along with moderator controls. -### 🡰 Left column 🡰 +### <- Left column Here you can add **useful links**. This only appears on desktop displays or devices with larger screens. It is similar to a *blogroll*. You can only add or edit links if you have an **administrator** or **editor** role. If you are on mobile then user the **links icon** at the top to read news. -### 🡲 Right column 🡲 +### Right column -> RSS feeds can be added in the right column, known as the *newswire*. This only appears on desktop displays or devices with larger screens. You can only add or edit feeds if you have an **administrator** or **editor** role, and incoming feed items can also be moderated. If you are on mobile then user the **newswire icon** at the top to read news. From 2335ef30d4d701b3abc6df8c10d3be9bfd741bc4 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Fri, 26 Feb 2021 12:46:06 +0000 Subject: [PATCH 19/40] No html-like characters --- defaultwelcome/help_inbox_en.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/defaultwelcome/help_inbox_en.md b/defaultwelcome/help_inbox_en.md index 2ae21843f..64eedba69 100644 --- a/defaultwelcome/help_inbox_en.md +++ b/defaultwelcome/help_inbox_en.md @@ -9,12 +9,12 @@ The **buttons** below the top banner allow you to select different timelines. Th The **show/hide** icon allows more timeline buttons to be shown, along with moderator controls. -### <- Left column +### Left column Here you can add **useful links**. This only appears on desktop displays or devices with larger screens. It is similar to a *blogroll*. You can only add or edit links if you have an **administrator** or **editor** role. If you are on mobile then user the **links icon** at the top to read news. -### Right column -> +### Right column RSS feeds can be added in the right column, known as the *newswire*. This only appears on desktop displays or devices with larger screens. You can only add or edit feeds if you have an **administrator** or **editor** role, and incoming feed items can also be moderated. If you are on mobile then user the **newswire icon** at the top to read news. From 2bb116ceed9716f1e7a1983935906fe2d4e9e72a Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Fri, 26 Feb 2021 12:48:20 +0000 Subject: [PATCH 20/40] No initial title --- defaultwelcome/help_inbox_en.md | 1 - 1 file changed, 1 deletion(-) diff --git a/defaultwelcome/help_inbox_en.md b/defaultwelcome/help_inbox_en.md index 64eedba69..23555331f 100644 --- a/defaultwelcome/help_inbox_en.md +++ b/defaultwelcome/help_inbox_en.md @@ -1,4 +1,3 @@ -### Middle column Incoming posts will appear here, as a chronological timeline. If you send any posts they will also appear here. ### The top banner From 51ff0fb438a77d45c87e6a7ae632676930fc41fa Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Fri, 26 Feb 2021 12:58:29 +0000 Subject: [PATCH 21/40] Don't remove html, but check for dangerous markup --- webapp_timeline.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/webapp_timeline.py b/webapp_timeline.py index 4022382c6..a1f4e2fb0 100644 --- a/webapp_timeline.py +++ b/webapp_timeline.py @@ -9,7 +9,7 @@ __status__ = "Production" import os import time from shutil import copyfile -from utils import removeHtml +from utils import dangerousMarkup from utils import getConfigParam from utils import getFullDomain from utils import isEditor @@ -72,9 +72,11 @@ def _getHelpForTimeline(baseDir: str, boxName: str) -> str: instanceTitle = 'Epicyon' with open(helpFilename, 'r') as helpFile: helpText = helpFile.read() + if dangerousMarkup(helpText, False): + return '' helpText = helpText.replace('INSTANCE', instanceTitle) return '
\n' + \ - markdownToHtml(removeHtml(helpText)) + '\n' + \ + markdownToHtml(helpText) + '\n' + \ '
\n' return '' From 4b3c5792659a19e3da49c32e1f69967d2634afd2 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Fri, 26 Feb 2021 13:11:11 +0000 Subject: [PATCH 22/40] Use --- defaultwelcome/help_inbox_en.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/defaultwelcome/help_inbox_en.md b/defaultwelcome/help_inbox_en.md index 23555331f..82b95bb05 100644 --- a/defaultwelcome/help_inbox_en.md +++ b/defaultwelcome/help_inbox_en.md @@ -11,9 +11,9 @@ The **show/hide** icon allows more timeline buttons to be shown, along with mode ### Left column Here you can add **useful links**. This only appears on desktop displays or devices with larger screens. It is similar to a *blogroll*. You can only add or edit links if you have an **administrator** or **editor** role. -If you are on mobile then user the **links icon** at the top to read news. +If you are on mobile then use the **links icon** at the top to read news. ### Right column RSS feeds can be added in the right column, known as the *newswire*. This only appears on desktop displays or devices with larger screens. You can only add or edit feeds if you have an **administrator** or **editor** role, and incoming feed items can also be moderated. -If you are on mobile then user the **newswire icon** at the top to read news. +If you are on mobile then use the **newswire icon** at the top to read news. From 94f0e48072f6d1b780b3de0ce9ea7c4b484bee62 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Fri, 26 Feb 2021 13:31:31 +0000 Subject: [PATCH 23/40] Show help on shares timeline --- webapp_timeline.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/webapp_timeline.py b/webapp_timeline.py index a1f4e2fb0..cf0e17719 100644 --- a/webapp_timeline.py +++ b/webapp_timeline.py @@ -829,6 +829,7 @@ def _htmlSharesTimeline(translate: {}, pageNumber: int, itemsPerPage: int, ' \n' separatorStr = htmlPostSeparator(baseDir, None) + ctr = 0 for published, item in sharesJson.items(): showContactButton = False if item['actor'] != actor: @@ -840,6 +841,10 @@ def _htmlSharesTimeline(translate: {}, pageNumber: int, itemsPerPage: int, htmlIndividualShare(actor, item, translate, showContactButton, showRemoveButton) timelineStr += separatorStr + ctr += 1 + + if ctr == 0: + timelineStr += _getHelpForTimeline(baseDir, 'tlshares') if not lastPage: timelineStr += \ From 19908a73c45dce80cebac07a10becd9c1bb52753 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Fri, 26 Feb 2021 13:38:55 +0000 Subject: [PATCH 24/40] Mention dm policy --- defaultwelcome/help_dm_en.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/defaultwelcome/help_dm_en.md b/defaultwelcome/help_dm_en.md index 1846dab1e..2f58489bf 100644 --- a/defaultwelcome/help_dm_en.md +++ b/defaultwelcome/help_dm_en.md @@ -1 +1,3 @@ Direct messages will appear here, as a chronological timeline. + +To avoid spam and improve security, by default you will only be able to receive direct messages *from people that you're following*. You can turn this off within your profile settings if you need to, by selecting the top **banner** and then the **edit** icon. From 786a3f79e35bfb53ac051cf1f9fc4cce48f7b643 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Fri, 26 Feb 2021 14:01:42 +0000 Subject: [PATCH 25/40] Ensure that default settings are preserved during the welcome screen sequence --- daemon.py | 70 ++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 43 insertions(+), 27 deletions(-) diff --git a/daemon.py b/daemon.py index 3008469f4..81820505b 100644 --- a/daemon.py +++ b/daemon.py @@ -4717,15 +4717,20 @@ class PubServer(BaseHTTPRequestHandler): nickname, domain) # approve followers - approveFollowers = False - if fields.get('approveFollowers'): - if fields['approveFollowers'] == 'on': - approveFollowers = True - if approveFollowers != \ - actorJson['manuallyApprovesFollowers']: - actorJson['manuallyApprovesFollowers'] = \ - approveFollowers + if checkNameAndBio: + # Default setting created via the welcome screen + actorJson['manuallyApprovesFollowers'] = True actorChanged = True + else: + approveFollowers = False + if fields.get('approveFollowers'): + if fields['approveFollowers'] == 'on': + approveFollowers = True + if approveFollowers != \ + actorJson['manuallyApprovesFollowers']: + actorJson['manuallyApprovesFollowers'] = \ + approveFollowers + actorChanged = True # remove a custom font if fields.get('removeCustomFont'): @@ -4773,15 +4778,21 @@ class PubServer(BaseHTTPRequestHandler): baseDir + '/accounts/' + \ nickname + '@' + domain + \ '/.followDMs' - followDMsActive = False - if fields.get('followDMs'): - if fields['followDMs'] == 'on': - followDMsActive = True - with open(followDMsFilename, 'w+') as fFile: - fFile.write('\n') - if not followDMsActive: - if os.path.isfile(followDMsFilename): - os.remove(followDMsFilename) + if checkNameAndBio: + # initial default setting created via + # the welcome screen + with open(followDMsFilename, 'w+') as fFile: + fFile.write('\n') + else: + followDMsActive = False + if fields.get('followDMs'): + if fields['followDMs'] == 'on': + followDMsActive = True + with open(followDMsFilename, 'w+') as fFile: + fFile.write('\n') + if not followDMsActive: + if os.path.isfile(followDMsFilename): + os.remove(followDMsFilename) # remove Twitter retweets removeTwitterFilename = \ @@ -4822,16 +4833,21 @@ class PubServer(BaseHTTPRequestHandler): os.remove(hideLikeButtonFile) # notify about new Likes - notifyLikesActive = False - if fields.get('notifyLikes'): - if fields['notifyLikes'] == 'on' and \ - not hideLikeButtonActive: - notifyLikesActive = True - with open(notifyLikesFilename, 'w+') as rFile: - rFile.write('\n') - if not notifyLikesActive: - if os.path.isfile(notifyLikesFilename): - os.remove(notifyLikesFilename) + if checkNameAndBio: + # default setting from welcome screen + with open(notifyLikesFilename, 'w+') as rFile: + rFile.write('\n') + else: + notifyLikesActive = False + if fields.get('notifyLikes'): + if fields['notifyLikes'] == 'on' and \ + not hideLikeButtonActive: + notifyLikesActive = True + with open(notifyLikesFilename, 'w+') as rFile: + rFile.write('\n') + if not notifyLikesActive: + if os.path.isfile(notifyLikesFilename): + os.remove(notifyLikesFilename) # this account is a bot if fields.get('isBot'): From 43e3a70d1ec916cbe75be261a26e17d6c5298b01 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Fri, 26 Feb 2021 14:09:51 +0000 Subject: [PATCH 26/40] Preserve default after welcome screen --- daemon.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/daemon.py b/daemon.py index 81820505b..729b7eafd 100644 --- a/daemon.py +++ b/daemon.py @@ -4050,6 +4050,7 @@ class PubServer(BaseHTTPRequestHandler): postBytesStr = postBytes.decode('utf-8') redirectPath = '' checkNameAndBio = False + onFinalWelcomeScreen = False if 'name="previewAvatar"' in postBytesStr: redirectPath = '/welcome_profile' elif 'name="initialWelcomeScreen"' in postBytesStr: @@ -4061,6 +4062,7 @@ class PubServer(BaseHTTPRequestHandler): redirectPath = '/' + self.server.defaultTimeline welcomeScreenIsComplete(self.server.baseDir, nickname, self.server.domain) + onFinalWelcomeScreen = True # extract all of the text fields into a dict fields = \ @@ -4717,7 +4719,7 @@ class PubServer(BaseHTTPRequestHandler): nickname, domain) # approve followers - if checkNameAndBio: + if onFinalWelcomeScreen: # Default setting created via the welcome screen actorJson['manuallyApprovesFollowers'] = True actorChanged = True @@ -4778,11 +4780,12 @@ class PubServer(BaseHTTPRequestHandler): baseDir + '/accounts/' + \ nickname + '@' + domain + \ '/.followDMs' - if checkNameAndBio: + if onFinalWelcomeScreen: # initial default setting created via # the welcome screen with open(followDMsFilename, 'w+') as fFile: fFile.write('\n') + actorChanged = True else: followDMsActive = False if fields.get('followDMs'): @@ -4833,10 +4836,11 @@ class PubServer(BaseHTTPRequestHandler): os.remove(hideLikeButtonFile) # notify about new Likes - if checkNameAndBio: + if onFinalWelcomeScreen: # default setting from welcome screen with open(notifyLikesFilename, 'w+') as rFile: rFile.write('\n') + actorChanged = True else: notifyLikesActive = False if fields.get('notifyLikes'): From 7dbaaa267acf51a1fbae79bfd30973053c3b7c0a Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Fri, 26 Feb 2021 15:20:43 +0000 Subject: [PATCH 27/40] Support for markdown images --- tests.py | 6 ++++-- webapp_utils.py | 44 +++++++++++++++++++++++++++++++------------- 2 files changed, 35 insertions(+), 15 deletions(-) diff --git a/tests.py b/tests.py index ddab940d4..9fee74c7d 100644 --- a/tests.py +++ b/tests.py @@ -3306,14 +3306,16 @@ def testMarkdownToHtml(): markdown = \ 'This is [a link](https://something.somewhere) to something.\n' + \ - 'And [something else](https://cat.pic).' + 'And [something else](https://cat.pic).\n' + \ + 'Or ![pounce](/cat.jpg).' assert markdownToHtml(markdown) == \ 'This is ' + \ 'a link to something.
' + \ 'And ' + \ - 'something else.' + 'something else.
' + \ + 'Or pounce.' def runAllTests(): diff --git a/webapp_utils.py b/webapp_utils.py index 5c3983bc2..b8519bb90 100644 --- a/webapp_utils.py +++ b/webapp_utils.py @@ -66,31 +66,49 @@ def _markdownEmphasisHtml(markdown: str) -> str: return markdown -def markdownToHtml(markdown: str) -> str: - """Converts markdown formatted text to html +def _markdownReplaceLinks(markdown: str, images=False) -> str: + """Replaces markdown links with html """ - markdown = _markdownEmphasisHtml(markdown) - # replace markdown style links with html links replaceLinks = {} text = markdown - while '[' in text: + startChars = '[' + if images: + startChars = '![' + while startChars in text: if ')' not in text: break - text = text.split('[', 1)[1] - markdownLink = '[' + text.split(')')[0] + ')' + text = text.split(startChars, 1)[1] + markdownLink = startChars + text.split(')')[0] + ')' if ']' not in markdownLink or \ '(' not in markdownLink: text = text.split(')', 1)[1] continue - replaceLinks[markdownLink] = \ - '' + \ - markdownLink.split('[')[1].split(']')[0] + \ - '' + if not images: + replaceLinks[markdownLink] = \ + '' + \ + markdownLink.split(startChars)[1].split(']')[0] + \ + '' + else: + replaceLinks[markdownLink] = \ + '' + \
+                markdownLink.split(startChars)[1].split(']')[0] + \
+                '' text = text.split(')', 1)[1] for mdLink, htmlLink in replaceLinks.items(): markdown = markdown.replace(mdLink, htmlLink) + return markdown + + +def markdownToHtml(markdown: str) -> str: + """Converts markdown formatted text to html + """ + markdown = _markdownEmphasisHtml(markdown) + markdown = _markdownReplaceLinks(markdown, True) + markdown = _markdownReplaceLinks(markdown) # replace headers linesList = markdown.split('\n') From e751eecf1eaef98a28e59eedeafba56deea77221 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Fri, 26 Feb 2021 16:02:31 +0000 Subject: [PATCH 28/40] Less indentation --- daemon.py | 109 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 56 insertions(+), 53 deletions(-) diff --git a/daemon.py b/daemon.py index 729b7eafd..ad9626272 100644 --- a/daemon.py +++ b/daemon.py @@ -9776,59 +9776,62 @@ class PubServer(BaseHTTPRequestHandler): GETstartTime, GETtimings: {}) -> bool: """Shows an avatar or banner or profile background image """ - if '/users/' in path: - if self._pathIsImage(path): - avatarStr = path.split('/users/')[1] - if '/' in avatarStr and '.temp.' not in path: - avatarNickname = avatarStr.split('/')[0] - avatarFile = avatarStr.split('/')[1] - avatarFileExt = avatarFile.split('.')[-1] - # remove any numbers, eg. avatar123.png becomes avatar.png - if avatarFile.startswith('avatar'): - avatarFile = 'avatar.' + avatarFileExt - elif avatarFile.startswith('banner'): - avatarFile = 'banner.' + avatarFileExt - elif avatarFile.startswith('search_banner'): - avatarFile = 'search_banner.' + avatarFileExt - elif avatarFile.startswith('image'): - avatarFile = 'image.' + avatarFileExt - elif avatarFile.startswith('left_col_image'): - avatarFile = 'left_col_image.' + avatarFileExt - elif avatarFile.startswith('right_col_image'): - avatarFile = 'right_col_image.' + avatarFileExt - avatarFilename = \ - baseDir + '/accounts/' + \ - avatarNickname + '@' + domain + '/' + avatarFile - if os.path.isfile(avatarFilename): - if self._etag_exists(avatarFilename): - # The file has not changed - self._304() - return True - mediaImageType = 'png' - if avatarFile.endswith('.png'): - mediaImageType = 'png' - elif avatarFile.endswith('.jpg'): - mediaImageType = 'jpeg' - elif avatarFile.endswith('.gif'): - mediaImageType = 'gif' - elif avatarFile.endswith('.avif'): - mediaImageType = 'avif' - elif avatarFile.endswith('.svg'): - mediaImageType = 'svg+xml' - else: - mediaImageType = 'webp' - with open(avatarFilename, 'rb') as avFile: - mediaBinary = avFile.read() - self._set_headers_etag(avatarFilename, - 'image/' + mediaImageType, - mediaBinary, None, - self.server.domainFull) - self._write(mediaBinary) - self._benchmarkGETtimings(GETstartTime, GETtimings, - 'icon shown done', - 'avatar background shown') - return True - return False + if '/users/' not in path: + return False + if not self._pathIsImage(path): + return False + avatarStr = path.split('/users/')[1] + if not ('/' in avatarStr and '.temp.' not in path): + return False + avatarNickname = avatarStr.split('/')[0] + avatarFile = avatarStr.split('/')[1] + avatarFileExt = avatarFile.split('.')[-1] + # remove any numbers, eg. avatar123.png becomes avatar.png + if avatarFile.startswith('avatar'): + avatarFile = 'avatar.' + avatarFileExt + elif avatarFile.startswith('banner'): + avatarFile = 'banner.' + avatarFileExt + elif avatarFile.startswith('search_banner'): + avatarFile = 'search_banner.' + avatarFileExt + elif avatarFile.startswith('image'): + avatarFile = 'image.' + avatarFileExt + elif avatarFile.startswith('left_col_image'): + avatarFile = 'left_col_image.' + avatarFileExt + elif avatarFile.startswith('right_col_image'): + avatarFile = 'right_col_image.' + avatarFileExt + avatarFilename = \ + baseDir + '/accounts/' + \ + avatarNickname + '@' + domain + '/' + avatarFile + if not os.path.isfile(avatarFilename): + return False + if self._etag_exists(avatarFilename): + # The file has not changed + self._304() + return True + mediaImageType = 'png' + if avatarFile.endswith('.png'): + mediaImageType = 'png' + elif avatarFile.endswith('.jpg'): + mediaImageType = 'jpeg' + elif avatarFile.endswith('.gif'): + mediaImageType = 'gif' + elif avatarFile.endswith('.avif'): + mediaImageType = 'avif' + elif avatarFile.endswith('.svg'): + mediaImageType = 'svg+xml' + else: + mediaImageType = 'webp' + with open(avatarFilename, 'rb') as avFile: + mediaBinary = avFile.read() + self._set_headers_etag(avatarFilename, + 'image/' + mediaImageType, + mediaBinary, None, + self.server.domainFull) + self._write(mediaBinary) + self._benchmarkGETtimings(GETstartTime, GETtimings, + 'icon shown done', + 'avatar background shown') + return True def _confirmDeleteEvent(self, callingDomain: str, path: str, baseDir: str, httpPrefix: str, cookie: str, From f393e78b14e5260ac08942a57f3e3373255e881d Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Fri, 26 Feb 2021 16:06:25 +0000 Subject: [PATCH 29/40] Less indentation --- daemon.py | 72 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 38 insertions(+), 34 deletions(-) diff --git a/daemon.py b/daemon.py index ad9626272..8f961b01a 100644 --- a/daemon.py +++ b/daemon.py @@ -9734,41 +9734,45 @@ class PubServer(BaseHTTPRequestHandler): GETstartTime, GETtimings: {}) -> bool: """Show a shared item image """ - if self._pathIsImage(path): - mediaStr = path.split('/sharefiles/')[1] - mediaFilename = \ - baseDir + '/sharefiles/' + mediaStr - if os.path.isfile(mediaFilename): - if self._etag_exists(mediaFilename): - # The file has not changed - self._304() - return True + if not self._pathIsImage(path): + self._404() + return True - mediaFileType = 'png' - if mediaFilename.endswith('.png'): - mediaFileType = 'png' - elif mediaFilename.endswith('.jpg'): - mediaFileType = 'jpeg' - elif mediaFilename.endswith('.webp'): - mediaFileType = 'webp' - elif mediaFilename.endswith('.avif'): - mediaFileType = 'avif' - elif mediaFilename.endswith('.svg'): - mediaFileType = 'svg+xml' - else: - mediaFileType = 'gif' - with open(mediaFilename, 'rb') as avFile: - mediaBinary = avFile.read() - self._set_headers_etag(mediaFilename, - 'image/' + mediaFileType, - mediaBinary, None, - self.server.domainFull) - self._write(mediaBinary) - self._benchmarkGETtimings(GETstartTime, GETtimings, - 'show media done', - 'share files shown') - return True - self._404() + mediaStr = path.split('/sharefiles/')[1] + mediaFilename = \ + baseDir + '/sharefiles/' + mediaStr + if not os.path.isfile(mediaFilename): + self._404() + return True + + if self._etag_exists(mediaFilename): + # The file has not changed + self._304() + return True + + mediaFileType = 'png' + if mediaFilename.endswith('.png'): + mediaFileType = 'png' + elif mediaFilename.endswith('.jpg'): + mediaFileType = 'jpeg' + elif mediaFilename.endswith('.webp'): + mediaFileType = 'webp' + elif mediaFilename.endswith('.avif'): + mediaFileType = 'avif' + elif mediaFilename.endswith('.svg'): + mediaFileType = 'svg+xml' + else: + mediaFileType = 'gif' + with open(mediaFilename, 'rb') as avFile: + mediaBinary = avFile.read() + self._set_headers_etag(mediaFilename, + 'image/' + mediaFileType, + mediaBinary, None, + self.server.domainFull) + self._write(mediaBinary) + self._benchmarkGETtimings(GETstartTime, GETtimings, + 'show media done', + 'share files shown') return True def _showAvatarOrBanner(self, callingDomain: str, path: str, From f75ca8fcaf62ce6ea2f777ad5b95dd0128ab5c41 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Fri, 26 Feb 2021 16:07:18 +0000 Subject: [PATCH 30/40] Welcome screen background --- daemon.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daemon.py b/daemon.py index 8f961b01a..68b87e7eb 100644 --- a/daemon.py +++ b/daemon.py @@ -9689,7 +9689,7 @@ class PubServer(BaseHTTPRequestHandler): """ imageExtensions = getImageExtensions() for ext in imageExtensions: - for bg in ('follow', 'options', 'login'): + for bg in ('follow', 'options', 'login', 'welcome'): # follow screen background image if path.endswith('/' + bg + '-background.' + ext): bgFilename = \ From f2824118a8ed572ff7227276a0c80ec2e58a0f54 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Fri, 26 Feb 2021 16:59:38 +0000 Subject: [PATCH 31/40] Function to display help images --- daemon.py | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ utils.py | 2 +- 2 files changed, 51 insertions(+), 1 deletion(-) diff --git a/daemon.py b/daemon.py index 68b87e7eb..33a83a923 100644 --- a/daemon.py +++ b/daemon.py @@ -5771,6 +5771,48 @@ class PubServer(BaseHTTPRequestHandler): return self._404() + def _showHelpScreenImage(self, callingDomain: str, path: str, + baseDir: str, + GETstartTime, GETtimings: {}) -> None: + """Shows a help screen image + """ + if not path.endswith('.jpg') and \ + not path.endswith('.png') and \ + not path.endswith('.webp') and \ + not path.endswith('.avif') and \ + not path.endswith('.gif'): + return + mediaStr = path.split('/helpimages/')[1] + if '/' not in mediaStr: + if not self.server.themeName: + theme = 'default' + else: + theme = self.server.themeName + iconFilename = mediaStr + else: + theme = mediaStr.split('/')[0] + iconFilename = mediaStr.split('/')[1] + mediaFilename = \ + baseDir + '/theme/' + theme + '/helpimages/' + iconFilename + if self._etag_exists(mediaFilename): + # The file has not changed + self._304() + return + if os.path.isfile(mediaFilename): + with open(mediaFilename, 'rb') as avFile: + mediaBinary = avFile.read() + mimeType = mediaFileMimeType(mediaFilename) + self._set_headers_etag(mediaFilename, + mimeType, + mediaBinary, None, + self.server.domainFull) + self._write(mediaBinary) + self._benchmarkGETtimings(GETstartTime, GETtimings, + 'show files done', + 'help image shown') + return + self._404() + def _showCachedAvatar(self, callingDomain: str, path: str, baseDir: str, GETstartTime, GETtimings: {}) -> None: @@ -11069,6 +11111,14 @@ class PubServer(BaseHTTPRequestHandler): GETstartTime, GETtimings) return + # help screen images + # Note that this comes before the busy flag to avoid conflicts + if self.path.startswith('/helpimages/'): + self._showHelpScreenImage(callingDomain, self.path, + self.server.baseDir, + GETstartTime, GETtimings) + return + self._benchmarkGETtimings(GETstartTime, GETtimings, 'show files done', 'icon shown done') diff --git a/utils.py b/utils.py index 25499145e..b0594c7ae 100644 --- a/utils.py +++ b/utils.py @@ -1274,7 +1274,7 @@ def _isReservedName(nickname: str) -> bool: 'accounts', 'channels', 'profile', 'u', 'updates', 'repeat', 'announce', 'shares', 'fonts', 'icons', 'avatars', - 'welcome') + 'welcome', 'helpimages') if nickname in reservedNames: return True return False From ce4b415023c7c2dd488385cc71c1d3a13d4ca645 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Fri, 26 Feb 2021 17:01:32 +0000 Subject: [PATCH 32/40] if there is no theme-specific help image then use the default one --- daemon.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/daemon.py b/daemon.py index 33a83a923..f131949a5 100644 --- a/daemon.py +++ b/daemon.py @@ -5794,6 +5794,10 @@ class PubServer(BaseHTTPRequestHandler): iconFilename = mediaStr.split('/')[1] mediaFilename = \ baseDir + '/theme/' + theme + '/helpimages/' + iconFilename + # if there is no theme-specific help image then use the default one + if not os.path.isfile(mediaFilename): + mediaFilename = \ + baseDir + '/theme/default/helpimages/' + iconFilename if self._etag_exists(mediaFilename): # The file has not changed self._304() From 4f0b73969479e454ccc6503b3dc2b5082e95b9c7 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Fri, 26 Feb 2021 17:19:16 +0000 Subject: [PATCH 33/40] Welcome header image --- defaultwelcome/welcome_en.md | 1 + epicyon-profile.css | 4 ++++ theme/default/helpimages/welcome.jpg | Bin 0 -> 30044 bytes 3 files changed, 5 insertions(+) create mode 100644 theme/default/helpimages/welcome.jpg diff --git a/defaultwelcome/welcome_en.md b/defaultwelcome/welcome_en.md index 5d942a9a5..1d1e8935f 100644 --- a/defaultwelcome/welcome_en.md +++ b/defaultwelcome/welcome_en.md @@ -1,3 +1,4 @@ +![Welcome image](/helpimages/welcome.jpg) ### Welcome to INSTANCE This is an ActivityPub server designed for easy self-hosting of a few people on low power systems, such as single board computers or old laptops. diff --git a/epicyon-profile.css b/epicyon-profile.css index 384c60893..7a8e15501 100644 --- a/epicyon-profile.css +++ b/epicyon-profile.css @@ -190,6 +190,10 @@ body, html { color: var(--cw-color); } +.markdownImage { + width: 100%; +} + .leftColIcons { width: 100%; background-color: var(--column-left-color); diff --git a/theme/default/helpimages/welcome.jpg b/theme/default/helpimages/welcome.jpg new file mode 100644 index 0000000000000000000000000000000000000000..77e97a3a60f19ab36840ef51420cfd87c9944fe4 GIT binary patch literal 30044 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 literal 0 HcmV?d00001 From 2ad10b07004d6bfa319a3e1f370faa436f26f97b Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Fri, 26 Feb 2021 17:38:25 +0000 Subject: [PATCH 34/40] Markdown image style --- epicyon-profile.css | 4 ---- epicyon-welcome.css | 8 ++++++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/epicyon-profile.css b/epicyon-profile.css index 7a8e15501..384c60893 100644 --- a/epicyon-profile.css +++ b/epicyon-profile.css @@ -190,10 +190,6 @@ body, html { color: var(--cw-color); } -.markdownImage { - width: 100%; -} - .leftColIcons { width: 100%; background-color: var(--column-left-color); diff --git a/epicyon-welcome.css b/epicyon-welcome.css index 21a2ec8a1..89ccadb2c 100644 --- a/epicyon-welcome.css +++ b/epicyon-welcome.css @@ -149,6 +149,10 @@ img.avatar { width: var(--welcome-avatar-width); } +.container img.markdownImage { + width: 100%; +} + .container.next { float: right; } @@ -192,7 +196,7 @@ span.psw { margin: 8px 0; border: none; cursor: pointer; - width: var(--welcome-button-width); + width: var(--welcome-button-width); font-size: var(--welcome-font-size); font-family: Arial, Helvetica, sans-serif; } @@ -232,7 +236,7 @@ span.psw { margin: 8px 0; border: none; cursor: pointer; - width: var(--welcome-button-width); + width: var(--welcome-button-width); font-size: var(--welcome-font-size-mobile); font-family: Arial, Helvetica, sans-serif; } From 41b8ed8a4db2c45ab6aa452f7473ef8fa4e54e02 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Fri, 26 Feb 2021 17:39:20 +0000 Subject: [PATCH 35/40] Markdown image style --- epicyon-profile.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/epicyon-profile.css b/epicyon-profile.css index 384c60893..6ef938ec7 100644 --- a/epicyon-profile.css +++ b/epicyon-profile.css @@ -426,6 +426,10 @@ a:focus { background-color: var(--timeline-posts-background-color); } +.container img.markdownImage { + width: 100%; +} + .container img.timelineicon:hover { filter: brightness(var(--icon-brightness-change)); } From c10fcc4f40557f2de6ecceb1448e055f5caf9d7f Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Fri, 26 Feb 2021 20:30:51 +0000 Subject: [PATCH 36/40] Welcome screen header images --- defaultwelcome/welcome_ar.md | 1 + defaultwelcome/welcome_ca.md | 1 + defaultwelcome/welcome_cy.md | 1 + defaultwelcome/welcome_de.md | 1 + defaultwelcome/welcome_es.md | 1 + defaultwelcome/welcome_fr.md | 1 + defaultwelcome/welcome_ga.md | 1 + defaultwelcome/welcome_hi.md | 1 + defaultwelcome/welcome_it.md | 1 + defaultwelcome/welcome_ja.md | 1 + defaultwelcome/welcome_oc.md | 3 ++- defaultwelcome/welcome_pt.md | 3 ++- defaultwelcome/welcome_ru.md | 1 + defaultwelcome/welcome_zh.md | 1 + theme/debian/helpimages/welcome.jpg | Bin 0 -> 11593 bytes theme/hacker/helpimages/welcome.jpg | Bin 0 -> 15338 bytes theme/henge/helpimages/welcome.jpg | Bin 0 -> 23376 bytes theme/light/helpimages/welcome.jpg | Bin 0 -> 9607 bytes theme/night/helpimages/welcome.jpg | Bin 0 -> 14025 bytes theme/purple/helpimages/welcome.jpg | Bin 0 -> 36979 bytes theme/solidaric/helpimages/welcome.jpg | Bin 0 -> 8453 bytes theme/starlight/helpimages/welcome.jpg | Bin 0 -> 7885 bytes theme/zen/helpimages/welcome.jpg | Bin 0 -> 31738 bytes 23 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 theme/debian/helpimages/welcome.jpg create mode 100644 theme/hacker/helpimages/welcome.jpg create mode 100644 theme/henge/helpimages/welcome.jpg create mode 100644 theme/light/helpimages/welcome.jpg create mode 100644 theme/night/helpimages/welcome.jpg create mode 100644 theme/purple/helpimages/welcome.jpg create mode 100644 theme/solidaric/helpimages/welcome.jpg create mode 100644 theme/starlight/helpimages/welcome.jpg create mode 100644 theme/zen/helpimages/welcome.jpg diff --git a/defaultwelcome/welcome_ar.md b/defaultwelcome/welcome_ar.md index 8e88deb0a..8d7170c4e 100644 --- a/defaultwelcome/welcome_ar.md +++ b/defaultwelcome/welcome_ar.md @@ -1,3 +1,4 @@ +![مرحبا الصورة](/helpimages/welcome.jpg) ### مرحبًا بكم في INSTANCE هذا خادم ActivityPub مصمم للاستضافة الذاتية السهلة لعدد قليل من الأشخاص على أنظمة منخفضة الطاقة ، مثل أجهزة الكمبيوتر ذات اللوحة الواحدة أو أجهزة الكمبيوتر المحمولة القديمة. diff --git a/defaultwelcome/welcome_ca.md b/defaultwelcome/welcome_ca.md index 0721e7e14..ada6129ed 100644 --- a/defaultwelcome/welcome_ca.md +++ b/defaultwelcome/welcome_ca.md @@ -1,3 +1,4 @@ +![Imatge de benvinguda](/helpimages/welcome.jpg) ### Benvingut a INSTANCE Es tracta d’un servidor ActivityPub dissenyat per allotjar fàcilment algunes persones en sistemes de poca potència, com ara ordinadors de placa única o portàtils antics. diff --git a/defaultwelcome/welcome_cy.md b/defaultwelcome/welcome_cy.md index 7596a7927..cb4530faa 100644 --- a/defaultwelcome/welcome_cy.md +++ b/defaultwelcome/welcome_cy.md @@ -1,3 +1,4 @@ +![Delwedd groeso](/helpimages/welcome.jpg) ### Croeso i INSTANCE Gweinydd ActivityPub yw hwn sydd wedi'i gynllunio ar gyfer hunan-letya ychydig o bobl ar systemau pŵer isel yn hawdd, fel cyfrifiaduron bwrdd sengl neu hen gliniaduron. diff --git a/defaultwelcome/welcome_de.md b/defaultwelcome/welcome_de.md index f1dedb95b..c6f8e1ac7 100644 --- a/defaultwelcome/welcome_de.md +++ b/defaultwelcome/welcome_de.md @@ -1,3 +1,4 @@ +![Willkommensbild](/helpimages/welcome.jpg) ### Willkommen bei INSTANCE Dies ist ein ActivityPub-Server, der für das einfache Selbsthosting einiger weniger Personen auf Systemen mit geringem Stromverbrauch wie Single-Board-Computern oder alten Laptops entwickelt wurde. diff --git a/defaultwelcome/welcome_es.md b/defaultwelcome/welcome_es.md index f9ba98454..0c1474dc1 100644 --- a/defaultwelcome/welcome_es.md +++ b/defaultwelcome/welcome_es.md @@ -1,3 +1,4 @@ +![Imagen de bienvenida](/helpimages/welcome.jpg) ### Bienvenido a INSTANCE Este es un servidor ActivityPub diseñado para el autohospedaje sencillo de algunas personas en sistemas de bajo consumo de energía, como computadoras de placa única o laptops antiguas. diff --git a/defaultwelcome/welcome_fr.md b/defaultwelcome/welcome_fr.md index 9fd72437e..7f6610630 100644 --- a/defaultwelcome/welcome_fr.md +++ b/defaultwelcome/welcome_fr.md @@ -1,3 +1,4 @@ +![Image de bienvenue](/helpimages/welcome.jpg) ### Bienvenue à INSTANCE Il s'agit d'un serveur ActivityPub conçu pour l'auto-hébergement facile de quelques personnes sur des systèmes à faible consommation d'énergie, tels que des ordinateurs monocarte ou d'anciens ordinateurs portables. diff --git a/defaultwelcome/welcome_ga.md b/defaultwelcome/welcome_ga.md index c9a11c680..91dc36d64 100644 --- a/defaultwelcome/welcome_ga.md +++ b/defaultwelcome/welcome_ga.md @@ -1,3 +1,4 @@ +![Íomhá fáilte](/helpimages/welcome.jpg) ### Fáilte go INSTANCE Is freastalaí ActivityPub é seo atá deartha chun féin-óstáil éasca a dhéanamh ar chúpla duine ar chórais ísealchumhachta, mar ríomhairí boird aonair nó sean ríomhairí glúine. diff --git a/defaultwelcome/welcome_hi.md b/defaultwelcome/welcome_hi.md index 13923d095..fcffdfabd 100644 --- a/defaultwelcome/welcome_hi.md +++ b/defaultwelcome/welcome_hi.md @@ -1,3 +1,4 @@ +![स्वागत है छवि](/helpimages/welcome.jpg) ### INSTANCE पर आपका स्वागत है यह एक एक्टिविटीपब सर्वर है जो कम पावर सिस्टम पर सिंगल बोर्ड कंप्यूटर या पुराने लैपटॉप जैसे कुछ लोगों की आसान सेल्फ-होस्टिंग के लिए बनाया गया है। diff --git a/defaultwelcome/welcome_it.md b/defaultwelcome/welcome_it.md index 498caf115..b74a1e053 100644 --- a/defaultwelcome/welcome_it.md +++ b/defaultwelcome/welcome_it.md @@ -1,3 +1,4 @@ +![Immagine di benvenuto](/helpimages/welcome.jpg) ### Benvenuto in INSTANCE Questo è un server ActivityPub progettato per un facile self-hosting di poche persone su sistemi a basso consumo, come computer a scheda singola o vecchi laptop. diff --git a/defaultwelcome/welcome_ja.md b/defaultwelcome/welcome_ja.md index 7e21a1821..dd26aa2ba 100644 --- a/defaultwelcome/welcome_ja.md +++ b/defaultwelcome/welcome_ja.md @@ -1,3 +1,4 @@ +![ウェルカムイメージ](/helpimages/welcome.jpg) ### INSTANCEへようこそ これは、シングルボードコンピューターや古いラップトップなどの低電力システムで数人を簡単にセルフホスティングするために設計されたActivityPubサーバーです。 diff --git a/defaultwelcome/welcome_oc.md b/defaultwelcome/welcome_oc.md index 2a90b3a52..520d07387 100644 --- a/defaultwelcome/welcome_oc.md +++ b/defaultwelcome/welcome_oc.md @@ -1,4 +1,5 @@ -# Welcome +![Welcome image](/helpimages/welcome.jpg) +### Welcome Epicyon is an ActivityPub server designed for easy self-hosting of a few people on low power systems, such as single board computers or old laptops. Run your own social network presence the way you want to, and say goodbye to Big Tech. diff --git a/defaultwelcome/welcome_pt.md b/defaultwelcome/welcome_pt.md index f302f5aec..e0193f6a2 100644 --- a/defaultwelcome/welcome_pt.md +++ b/defaultwelcome/welcome_pt.md @@ -1,4 +1,5 @@ -# Bem-vindo a INSTANCE +![Imagem de boas-vindas](/helpimages/welcome.jpg) +### Bem-vindo a INSTANCE Este é um servidor ActivityPub projetado para fácil auto-hospedagem de algumas pessoas em sistemas de baixo consumo de energia, como computadores de placa única ou laptops antigos. Administre sua própria presença na rede social do jeito que você quiser e diga adeus à Big Tech. diff --git a/defaultwelcome/welcome_ru.md b/defaultwelcome/welcome_ru.md index 65c82400d..857581ef4 100644 --- a/defaultwelcome/welcome_ru.md +++ b/defaultwelcome/welcome_ru.md @@ -1,3 +1,4 @@ +![Приветственное изображение](/helpimages/welcome.jpg) ### Добро пожаловать в INSTANCE Это сервер ActivityPub, предназначенный для простого самостоятельного размещения нескольких человек в системах с низким энергопотреблением, таких как одноплатные компьютеры или старые ноутбуки. diff --git a/defaultwelcome/welcome_zh.md b/defaultwelcome/welcome_zh.md index 978734e94..1f9a62db6 100644 --- a/defaultwelcome/welcome_zh.md +++ b/defaultwelcome/welcome_zh.md @@ -1,3 +1,4 @@ +![欢迎图片](/helpimages/welcome.jpg) ### 欢迎来到INSTANCE 这是一个ActivityPub服务器,设计用于在低功耗系统(例如单板计算机或旧笔记本电脑)上轻松实现一些人的自我托管。 diff --git a/theme/debian/helpimages/welcome.jpg b/theme/debian/helpimages/welcome.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2dca20d97c6fbccac09a6cff4d8885106d0687a6 GIT binary patch literal 11593 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 literal 0 HcmV?d00001 diff --git a/theme/hacker/helpimages/welcome.jpg b/theme/hacker/helpimages/welcome.jpg new file mode 100644 index 0000000000000000000000000000000000000000..688320ac4564f68272dec04f966e1759d4875699 GIT binary patch literal 15338 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

2VE{X+9Zv|N8W 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 m7r(jcI8NT-y5bjzW^;M?fE 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 literal 0 HcmV?d00001 diff --git a/theme/purple/helpimages/welcome.jpg b/theme/purple/helpimages/welcome.jpg new file mode 100644 index 0000000000000000000000000000000000000000..328cfa37eb9c00405ee2444952d9ee4ae782c9b5 GIT binary patch literal 36979 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 RqE|4O5Bykrimku-|Jh}QSSA1f literal 0 HcmV?d00001 diff --git a/theme/solidaric/helpimages/welcome.jpg b/theme/solidaric/helpimages/welcome.jpg new file mode 100644 index 0000000000000000000000000000000000000000..02e4eb00601b631c346fd2f37abade576b9d25dc GIT binary patch literal 8453 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 literal 0 HcmV?d00001 diff --git a/theme/starlight/helpimages/welcome.jpg b/theme/starlight/helpimages/welcome.jpg new file mode 100644 index 0000000000000000000000000000000000000000..970e080d314a40b5801a5705771d78bf4edc8fb2 GIT binary patch literal 7885 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�S1I}iSLE%{+uu7GlXi1x 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 literal 0 HcmV?d00001 From 8f3bd705ad8e252fae11107714bb350cc0609bbd Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Fri, 26 Feb 2021 20:50:50 +0000 Subject: [PATCH 37/40] Welcome screen header images --- theme/pixel/helpimages/welcome.jpg | Bin 0 -> 22930 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 theme/pixel/helpimages/welcome.jpg diff --git a/theme/pixel/helpimages/welcome.jpg b/theme/pixel/helpimages/welcome.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0a5c37cfc153e5a6d416e16ce0c62f130bb6d285 GIT binary patch literal 22930 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 literal 0 HcmV?d00001 From fc4e2fc70219ea0f7ca2e0c0ed7afa3b47ac249d Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Fri, 26 Feb 2021 23:00:06 +0000 Subject: [PATCH 38/40] Support quotes in markdown --- daemon.py | 2 +- tests.py | 5 +++++ webapp_utils.py | 26 ++++++++++++++++++++++++++ 3 files changed, 32 insertions(+), 1 deletion(-) diff --git a/daemon.py b/daemon.py index f131949a5..cb1c75e2d 100644 --- a/daemon.py +++ b/daemon.py @@ -5797,7 +5797,7 @@ class PubServer(BaseHTTPRequestHandler): # if there is no theme-specific help image then use the default one if not os.path.isfile(mediaFilename): mediaFilename = \ - baseDir + '/theme/default/helpimages/' + iconFilename + baseDir + '/theme/default/helpimages/' + iconFilename if self._etag_exists(mediaFilename): # The file has not changed self._304() diff --git a/tests.py b/tests.py index 9fee74c7d..db321f23c 100644 --- a/tests.py +++ b/tests.py @@ -3288,6 +3288,11 @@ def testMarkdownToHtml(): markdown = 'This is just plain text' assert markdownToHtml(markdown) == markdown + markdown = 'This is a quotation:\n' + \ + '> Some quote or other' + assert markdownToHtml(markdown) == 'This is a quotation:
' + \ + '

Some quote or other
' + markdown = 'This is **bold**' assert markdownToHtml(markdown) == 'This is bold' diff --git a/webapp_utils.py b/webapp_utils.py index b8519bb90..29c965100 100644 --- a/webapp_utils.py +++ b/webapp_utils.py @@ -66,8 +66,33 @@ def _markdownEmphasisHtml(markdown: str) -> str: return markdown +def _markdownReplaceQuotes(markdown: str) -> str: + """Replaces > quotes with html blockquote + """ + if '> ' not in markdown: + return markdown + lines = markdown.split('\n') + result = '' + for line in lines: + if '> ' not in line: + result += line + '\n' + continue + lineStr = line.strip() + if not lineStr.startswith('> '): + result += line + '\n' + continue + lineStr = lineStr.replace('> ', '', 1).strip() + result += '
' + lineStr + '
\n' + + if result.endswith('\n') and \ + not markdown.endswith('\n'): + result = result[:len(result) -1] + return result + + def _markdownReplaceLinks(markdown: str, images=False) -> str: """Replaces markdown links with html + Optionally replace image links """ replaceLinks = {} text = markdown @@ -106,6 +131,7 @@ def _markdownReplaceLinks(markdown: str, images=False) -> str: def markdownToHtml(markdown: str) -> str: """Converts markdown formatted text to html """ + markdown = _markdownReplaceQuotes(markdown) markdown = _markdownEmphasisHtml(markdown) markdown = _markdownReplaceLinks(markdown, True) markdown = _markdownReplaceLinks(markdown) From b07bc917f4ebbaae900a80490df36a0c60f0a6a2 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Fri, 26 Feb 2021 23:13:33 +0000 Subject: [PATCH 39/40] Handle multi-line markdown quotes --- tests.py | 7 +++++++ webapp_utils.py | 12 +++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/tests.py b/tests.py index db321f23c..e4dace257 100644 --- a/tests.py +++ b/tests.py @@ -3293,6 +3293,13 @@ def testMarkdownToHtml(): assert markdownToHtml(markdown) == 'This is a quotation:
' + \ '
Some quote or other
' + markdown = 'This is a multi-line quotation:\n' + \ + '> The first line\n' + \ + '> The second line' + assert markdownToHtml(markdown) == \ + 'This is a multi-line quotation:
' + \ + '
The first line The second line
' + markdown = 'This is **bold**' assert markdownToHtml(markdown) == 'This is bold' diff --git a/webapp_utils.py b/webapp_utils.py index 29c965100..7a3fe6b1d 100644 --- a/webapp_utils.py +++ b/webapp_utils.py @@ -73,16 +73,26 @@ def _markdownReplaceQuotes(markdown: str) -> str: return markdown lines = markdown.split('\n') result = '' + prevQuoteLine = None for line in lines: if '> ' not in line: result += line + '\n' + prevQuoteLine = None continue lineStr = line.strip() if not lineStr.startswith('> '): result += line + '\n' + prevQuoteLine = None continue lineStr = lineStr.replace('> ', '', 1).strip() - result += '
' + lineStr + '
\n' + if prevQuoteLine: + newPrevLine = prevQuoteLine.replace('
\n', '') + result = result.replace(prevQuoteLine, newPrevLine) + ' ' + lineStr += '\n' + else: + lineStr = '
' + lineStr + '
\n' + result += lineStr + prevQuoteLine = lineStr if result.endswith('\n') and \ not markdown.endswith('\n'): From 1181ad5858a06eed1addcd613b32e968575d3678 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Fri, 26 Feb 2021 23:28:19 +0000 Subject: [PATCH 40/40] Remove trailing newline from blockquote --- webapp_utils.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/webapp_utils.py b/webapp_utils.py index 7a3fe6b1d..a0f7d0076 100644 --- a/webapp_utils.py +++ b/webapp_utils.py @@ -94,9 +94,12 @@ def _markdownReplaceQuotes(markdown: str) -> str: result += lineStr prevQuoteLine = lineStr + if '\n' in result: + result = result.replace('\n', '') + if result.endswith('\n') and \ not markdown.endswith('\n'): - result = result[:len(result) -1] + result = result[:len(result) - 1] return result