diff --git a/daemon.py b/daemon.py index 1a53f123a..f9bc25a87 100644 --- a/daemon.py +++ b/daemon.py @@ -15626,7 +15626,12 @@ class PubServer(BaseHTTPRequestHandler): self.server.theme_name, self.server.default_timeline, self.server.text_mode_banner, - self.server.access_keys) + self.server.access_keys, + self.server.session, + self.server.session_onion, + self.server.session_i2p, + self.server.http_prefix, + self.server.debug) if html_str: msg = html_str.encode('utf-8') msglen = len(msg) diff --git a/epicyon-podcast.css b/epicyon-podcast.css index 87c22d227..32dd9d3e5 100644 --- a/epicyon-podcast.css +++ b/epicyon-podcast.css @@ -158,6 +158,10 @@ a:focus { width: 15%; } +.performers { + display: flex; +} + @media screen and (min-width: 400px) { textarea { font-family: Arial, Helvetica, sans-serif; @@ -233,6 +237,12 @@ a:focus { padding: 10px; margin: 20px 30px; } + .performers img { + width: 20%; + } + .chapters img { + width: 10%; + } } @media screen and (max-width: 1000px) { @@ -310,6 +320,12 @@ a:focus { padding: 20px; margin: 30px 40px; } + .performers img { + width: 30%; + } + .chapters img { + width: 15%; + } } @media screen and (max-width: 480px) { @@ -387,4 +403,10 @@ a:focus { padding: 20px; margin: 30px 40px; } + .performers img { + width: 30%; + } + .chapters img { + width: 15%; + } } diff --git a/newswire.py b/newswire.py index f554fe657..db20b0956 100644 --- a/newswire.py +++ b/newswire.py @@ -515,6 +515,7 @@ def xml_podcast_to_dict(base_dir: str, xml_item: str, xml_str: str) -> {}: "transcripts": [], "valueRecipients": [], "trailers": [], + "chapters": [], "discussion": [], "episode": '', "socialInteract": [], diff --git a/translations/ar.json b/translations/ar.json index 316f805cb..159f6dc91 100644 --- a/translations/ar.json +++ b/translations/ar.json @@ -550,5 +550,6 @@ "Common emoji": "الرموز التعبيرية الشائعة", "Copy and paste into your text": "نسخ ولصق في النص الخاص بك", "shrug": "هز كتفيه", - "DM warning": "لا يتم تشفير الرسائل المباشرة من طرف إلى طرف. لا تشارك أي معلومات حساسة للغاية هنا." + "DM warning": "لا يتم تشفير الرسائل المباشرة من طرف إلى طرف. لا تشارك أي معلومات حساسة للغاية هنا.", + "Transcript": "نص" } diff --git a/translations/ca.json b/translations/ca.json index 7c43b1811..d0ccf9cdd 100644 --- a/translations/ca.json +++ b/translations/ca.json @@ -550,5 +550,6 @@ "Common emoji": "Emoji comú", "Copy and paste into your text": "Copia i enganxa al teu text", "shrug": "arronsar les espatlles", - "DM warning": "Els missatges directes no estan xifrats d'extrem a extrem. No compartiu cap informació molt sensible aquí." + "DM warning": "Els missatges directes no estan xifrats d'extrem a extrem. No compartiu cap informació molt sensible aquí.", + "Transcript": "Transcripció" } diff --git a/translations/cy.json b/translations/cy.json index 3edbda29b..28ffaaabe 100644 --- a/translations/cy.json +++ b/translations/cy.json @@ -550,5 +550,6 @@ "Common emoji": "Emoji cyffredin", "Copy and paste into your text": "Copïwch a gludwch i'ch testun", "shrug": "shrug", - "DM warning": "Nid yw negeseuon uniongyrchol wedi'u hamgryptio o'r dechrau i'r diwedd. Peidiwch â rhannu unrhyw wybodaeth hynod sensitif yma." + "DM warning": "Nid yw negeseuon uniongyrchol wedi'u hamgryptio o'r dechrau i'r diwedd. Peidiwch â rhannu unrhyw wybodaeth hynod sensitif yma.", + "Transcript": "Trawsgrifiad" } diff --git a/translations/de.json b/translations/de.json index 72ddd6237..bb948dd02 100644 --- a/translations/de.json +++ b/translations/de.json @@ -550,5 +550,6 @@ "Common emoji": "Gewöhnliches Emoji", "Copy and paste into your text": "Kopieren und in Ihren Text einfügen", "shrug": "zucken", - "DM warning": "Direktnachrichten sind nicht Ende-zu-Ende verschlüsselt. Geben Sie hier keine hochsensiblen Informationen weiter." + "DM warning": "Direktnachrichten sind nicht Ende-zu-Ende verschlüsselt. Geben Sie hier keine hochsensiblen Informationen weiter.", + "Transcript": "Abschrift" } diff --git a/translations/el.json b/translations/el.json index f9403273a..f047d5f48 100644 --- a/translations/el.json +++ b/translations/el.json @@ -550,5 +550,6 @@ "Common emoji": "Κοινά emoji", "Copy and paste into your text": "Αντιγράψτε και επικολλήστε στο κείμενό σας", "shrug": "σήκωμα των ώμων", - "DM warning": "Τα άμεσα μηνύματα δεν είναι κρυπτογραφημένα από άκρο σε άκρο. Μην μοιράζεστε καμία εξαιρετικά ευαίσθητη πληροφορία εδώ." + "DM warning": "Τα άμεσα μηνύματα δεν είναι κρυπτογραφημένα από άκρο σε άκρο. Μην μοιράζεστε καμία εξαιρετικά ευαίσθητη πληροφορία εδώ.", + "Transcript": "Αντίγραφο" } diff --git a/translations/en.json b/translations/en.json index 1c52b2c36..39e83c326 100644 --- a/translations/en.json +++ b/translations/en.json @@ -550,5 +550,6 @@ "Common emoji": "Common emoji", "Copy and paste into your text": "Copy and paste into your text", "shrug": "shrug", - "DM warning": "Direct messages are not end-to-end encrypted. Do not share any highly sensitive information here." + "DM warning": "Direct messages are not end-to-end encrypted. Do not share any highly sensitive information here.", + "Transcript": "Transcript" } diff --git a/translations/es.json b/translations/es.json index badd6643b..1ff495947 100644 --- a/translations/es.json +++ b/translations/es.json @@ -550,5 +550,6 @@ "Common emoji": "Emoticonos comunes", "Copy and paste into your text": "Copia y pega en tu texto", "shrug": "encogimiento de hombros", - "DM warning": "Los mensajes directos no están cifrados de extremo a extremo. No comparta ninguna información altamente confidencial aquí." + "DM warning": "Los mensajes directos no están cifrados de extremo a extremo. No comparta ninguna información altamente confidencial aquí.", + "Transcript": "Transcripción" } diff --git a/translations/fr.json b/translations/fr.json index 3d18080eb..f0b090a63 100644 --- a/translations/fr.json +++ b/translations/fr.json @@ -550,5 +550,6 @@ "Common emoji": "Émoji commun", "Copy and paste into your text": "Copiez et collez dans votre texte", "shrug": "hausser les épaules", - "DM warning": "Les messages directs ne sont pas chiffrés de bout en bout. Ne partagez aucune information hautement sensible ici." + "DM warning": "Les messages directs ne sont pas chiffrés de bout en bout. Ne partagez aucune information hautement sensible ici.", + "Transcript": "Transcription" } diff --git a/translations/ga.json b/translations/ga.json index e2ed6b151..435eb4e37 100644 --- a/translations/ga.json +++ b/translations/ga.json @@ -550,5 +550,6 @@ "Common emoji": "Emoji coitianta", "Copy and paste into your text": "Cóipeáil agus greamaigh isteach i do théacs", "shrug": "shrug", - "DM warning": "Níl teachtaireachtaí díreacha criptithe ó cheann go ceann. Ná roinn aon fhaisnéis an-íogair anseo." + "DM warning": "Níl teachtaireachtaí díreacha criptithe ó cheann go ceann. Ná roinn aon fhaisnéis an-íogair anseo.", + "Transcript": "Athscríbhinn" } diff --git a/translations/hi.json b/translations/hi.json index 6b1f6d516..0d6df3594 100644 --- a/translations/hi.json +++ b/translations/hi.json @@ -550,5 +550,6 @@ "Common emoji": "आम इमोजी", "Copy and paste into your text": "अपने टेक्स्ट में कॉपी और पेस्ट करें", "shrug": "कंधे उचकाने की क्रिया", - "DM warning": "डायरेक्ट मैसेज एंड-टू-एंड एन्क्रिप्टेड नहीं होते हैं। यहां कोई अति संवेदनशील जानकारी साझा न करें।" + "DM warning": "डायरेक्ट मैसेज एंड-टू-एंड एन्क्रिप्टेड नहीं होते हैं। यहां कोई अति संवेदनशील जानकारी साझा न करें।", + "Transcript": "प्रतिलिपि" } diff --git a/translations/it.json b/translations/it.json index 7c39da738..eaaad64ee 100644 --- a/translations/it.json +++ b/translations/it.json @@ -550,5 +550,6 @@ "Common emoji": "Emoji comuni", "Copy and paste into your text": "Copia e incolla nel tuo testo", "shrug": "scrollare le spalle", - "DM warning": "I messaggi diretti non sono crittografati end-to-end. Non condividere qui alcuna informazione altamente sensibile." + "DM warning": "I messaggi diretti non sono crittografati end-to-end. Non condividere qui alcuna informazione altamente sensibile.", + "Transcript": "Trascrizione" } diff --git a/translations/ja.json b/translations/ja.json index 58cd5b309..03cb6f3de 100644 --- a/translations/ja.json +++ b/translations/ja.json @@ -550,5 +550,6 @@ "Common emoji": "一般的な絵文字", "Copy and paste into your text": "コピーしてテキストに貼り付けます", "shrug": "肩をすくめる", - "DM warning": "ダイレクトメッセージはエンドツーエンドで暗号化されません。 ここでは機密性の高い情報を共有しないでください。" + "DM warning": "ダイレクトメッセージはエンドツーエンドで暗号化されません。 ここでは機密性の高い情報を共有しないでください。", + "Transcript": "トランスクリプト" } diff --git a/translations/ko.json b/translations/ko.json index 3ed678894..919e5be73 100644 --- a/translations/ko.json +++ b/translations/ko.json @@ -550,5 +550,6 @@ "Common emoji": "일반적인 이모티콘", "Copy and paste into your text": "텍스트에 복사하여 붙여넣기", "shrug": "어깨를 으쓱하다", - "DM warning": "다이렉트 메시지는 종단 간 암호화되지 않습니다. 여기에 매우 민감한 정보를 공유하지 마십시오." + "DM warning": "다이렉트 메시지는 종단 간 암호화되지 않습니다. 여기에 매우 민감한 정보를 공유하지 마십시오.", + "Transcript": "성적 증명서" } diff --git a/translations/ku.json b/translations/ku.json index b4ea2fe54..04a1764a6 100644 --- a/translations/ku.json +++ b/translations/ku.json @@ -550,5 +550,6 @@ "Common emoji": "Emojiyên hevpar", "Copy and paste into your text": "Di nivîsa xwe de kopî bikin û bixin", "shrug": "şuştin", - "DM warning": "Peyamên rasterast bi dawî-bi-dawî ne şîfrekirî ne. Li vir agahdariya pir hesas parve nekin." + "DM warning": "Peyamên rasterast bi dawî-bi-dawî ne şîfrekirî ne. Li vir agahdariya pir hesas parve nekin.", + "Transcript": "Transcript" } diff --git a/translations/nl.json b/translations/nl.json index dd34449b9..d37b1264b 100644 --- a/translations/nl.json +++ b/translations/nl.json @@ -550,5 +550,6 @@ "Common emoji": "Gemeenschappelijke emoji", "Copy and paste into your text": "Kopieer en plak in je tekst", "shrug": "schouderophalend", - "DM warning": "Directe berichten zijn niet end-to-end versleuteld. Deel hier geen zeer gevoelige informatie." + "DM warning": "Directe berichten zijn niet end-to-end versleuteld. Deel hier geen zeer gevoelige informatie.", + "Transcript": "Vertaling" } diff --git a/translations/oc.json b/translations/oc.json index 80a41d432..cfa7fc302 100644 --- a/translations/oc.json +++ b/translations/oc.json @@ -546,5 +546,6 @@ "Common emoji": "Common emoji", "Copy and paste into your text": "Copy and paste into your text", "shrug": "shrug", - "DM warning": "Direct messages are not end-to-end encrypted. Do not share any highly sensitive information here." + "DM warning": "Direct messages are not end-to-end encrypted. Do not share any highly sensitive information here.", + "Transcript": "Transcript" } diff --git a/translations/pl.json b/translations/pl.json index eea50ea01..9f12c12c3 100644 --- a/translations/pl.json +++ b/translations/pl.json @@ -550,5 +550,6 @@ "Common emoji": "Popularne emotikony", "Copy and paste into your text": "Skopiuj i wklej do swojego tekstu", "shrug": "wzruszać ramionami", - "DM warning": "Wiadomości na czacie nie są szyfrowane metodą end-to-end. Nie udostępniaj tutaj żadnych wysoce wrażliwych informacji." + "DM warning": "Wiadomości na czacie nie są szyfrowane metodą end-to-end. Nie udostępniaj tutaj żadnych wysoce wrażliwych informacji.", + "Transcript": "Transkrypcja" } diff --git a/translations/pt.json b/translations/pt.json index 6bdefd5f7..f0bae683b 100644 --- a/translations/pt.json +++ b/translations/pt.json @@ -550,5 +550,6 @@ "Common emoji": "Emoji comum", "Copy and paste into your text": "Copie e cole no seu texto", "shrug": "dar de ombros", - "DM warning": "As mensagens diretas não são criptografadas de ponta a ponta. Não compartilhe nenhuma informação altamente sensível aqui." + "DM warning": "As mensagens diretas não são criptografadas de ponta a ponta. Não compartilhe nenhuma informação altamente sensível aqui.", + "Transcript": "Transcrição" } diff --git a/translations/ru.json b/translations/ru.json index 2c61af7ce..0110c5ed5 100644 --- a/translations/ru.json +++ b/translations/ru.json @@ -550,5 +550,6 @@ "Common emoji": "Общие смайлики", "Copy and paste into your text": "Скопируйте и вставьте в свой текст", "shrug": "пожимание плечами", - "DM warning": "Прямые сообщения не подвергаются сквозному шифрованию. Не делитесь здесь особо конфиденциальной информацией." + "DM warning": "Прямые сообщения не подвергаются сквозному шифрованию. Не делитесь здесь особо конфиденциальной информацией.", + "Transcript": "Стенограмма" } diff --git a/translations/sw.json b/translations/sw.json index 8c506d04f..648e3d5ad 100644 --- a/translations/sw.json +++ b/translations/sw.json @@ -550,5 +550,6 @@ "Common emoji": "Emoji ya kawaida", "Copy and paste into your text": "Nakili na ubandike kwenye maandishi yako", "shrug": "piga mabega", - "DM warning": "Ujumbe wa moja kwa moja haujasimbwa kutoka mwisho hadi mwisho. Usishiriki maelezo yoyote nyeti sana hapa." + "DM warning": "Ujumbe wa moja kwa moja haujasimbwa kutoka mwisho hadi mwisho. Usishiriki maelezo yoyote nyeti sana hapa.", + "Transcript": "Nakala" } diff --git a/translations/uk.json b/translations/uk.json index e792f13a9..3281dbcf5 100644 --- a/translations/uk.json +++ b/translations/uk.json @@ -550,5 +550,6 @@ "Common emoji": "Звичайні емодзі", "Copy and paste into your text": "Скопіюйте та вставте у свій текст", "shrug": "знизати плечима", - "DM warning": "Прямі повідомлення не наскрізне шифруються. Не публікуйте тут дуже конфіденційну інформацію." + "DM warning": "Прямі повідомлення не наскрізне шифруються. Не публікуйте тут дуже конфіденційну інформацію.", + "Transcript": "Стенограма" } diff --git a/translations/zh.json b/translations/zh.json index 5204eed11..ca7e34498 100644 --- a/translations/zh.json +++ b/translations/zh.json @@ -550,5 +550,6 @@ "Common emoji": "常见表情符号", "Copy and paste into your text": "复制并粘贴到您的文本中", "shrug": "耸耸肩", - "DM warning": "直接消息不是端到端加密的。 不要在这里分享任何高度敏感的信息。" + "DM warning": "直接消息不是端到端加密的。 不要在这里分享任何高度敏感的信息。", + "Transcript": "成绩单" } diff --git a/webapp_podcast.py b/webapp_podcast.py index 8c829ba99..732e252c9 100644 --- a/webapp_podcast.py +++ b/webapp_podcast.py @@ -9,6 +9,7 @@ __module_group__ = "Web Interface Columns" import os import html +import datetime import urllib.parse from shutil import copyfile from utils import get_config_param @@ -19,6 +20,121 @@ from webapp_utils import get_broken_link_substitute from webapp_utils import html_header_with_external_style from webapp_utils import html_footer from webapp_utils import html_keyboard_navigation +from session import get_json + + +def _html_podcast_chapters(link_url: str, + session, session_onion, session_i2p, + http_prefix: str, domain: str, + podcast_properties: {}, translate: {}, + debug: bool) -> str: + """Returns html for chapters of a podcast + """ + if not podcast_properties: + return '' + key = 'chapters' + if not podcast_properties.get(key): + return '' + if not isinstance(podcast_properties[key], dict): + return '' + if podcast_properties[key].get('url'): + chapters_url = podcast_properties[key]['url'] + elif podcast_properties[key].get('uri'): + chapters_url = podcast_properties[key]['uri'] + else: + return '' + html_str = '' + if podcast_properties[key].get('type'): + url_type = podcast_properties[key]['type'] + + curr_session = session + if chapters_url.endswith('.onion'): + curr_session = session_onion + elif chapters_url.endswith('.i2p'): + curr_session = session_i2p + + as_header = { + 'Accept': url_type + } + + if 'json' in url_type: + chapters_json = \ + get_json(None, curr_session, chapters_url, + as_header, None, debug, __version__, + http_prefix, domain) + if not chapters_json: + return '' + if not chapters_json.get('chapters'): + return '' + if not isinstance(chapters_json['chapters'], list): + return '' + chapters_html = '' + for chapter in chapters_json['chapters']: + if not isinstance(chapter, dict): + continue + if not chapter.get('title'): + continue + if not chapter.get('startTime'): + continue + chapter_title = chapter['title'] + chapter_url = '' + if chapter.get('url'): + chapter_url = chapter['url'] + chapter_title = \ + '' + \ + chapter['title'] + '<\a>' + start_sec = chapter['startTime'] + skip_url = link_url + '#t=' + str(start_sec) + start_time_str = \ + '' + \ + str(datetime.timedelta(seconds=start_sec)) + \ + '' + if chapter.get('img'): + chapters_html += \ + '