diff --git a/daemon.py b/daemon.py index e80ac2b0b..44d3bb0a3 100644 --- a/daemon.py +++ b/daemon.py @@ -108,6 +108,7 @@ from posts import undo_pinned_post from posts import is_moderator from posts import create_question_post from posts import create_public_post +from posts import create_reading_post from posts import create_blog_post from posts import create_report_post from posts import create_unlisted_post @@ -22830,13 +22831,127 @@ class PubServer(BaseHTTPRequestHandler): if not fields.get('readingupdatetype'): print(post_type + ' no readingupdatetype') return -1 + if fields['readingupdatetype'] not in ('readingupdatewant', + 'readingupdateread', + 'readingupdatefinished', + 'readingupdaterating'): + print(post_type + ' not recognised ' + + fields['readingupdatetype']) + return -1 if not fields.get('booktitle'): print(post_type + ' no booktitle') return -1 if not fields.get('bookurl'): print(post_type + ' no bookurl') return -1 + book_rating = 0.0 + if fields.get('bookrating'): + if isinstance(fields['bookrating'], float) or \ + isinstance(fields['bookrating'], int): + book_rating = fields['bookrating'] # TODO reading status + msg_str = fields['readingupdatetype'] + message_json = \ + create_reading_post(self.server.base_dir, + nickname, + self.server.domain, + self.server.port, + self.server.http_prefix, + mentions_str, msg_str, + fields['booktitle'], + fields['bookurl'], + book_rating, + False, False, comments_enabled, + filename, attachment_media_type, + fields['imageDescription'], + video_transcript, + city, None, None, + fields['subject'], + fields['schedulePost'], + fields['eventDate'], + fields['eventTime'], + fields['eventEndTime'], + fields['location'], False, + fields['languagesDropdown'], + conversation_id, + self.server.low_bandwidth, + self.server.content_license_url, + media_license_url, media_creator, + languages_understood, + self.server.translate, buy_url, + chat_url) + if message_json: + if edited_postid: + recent_posts_cache = self.server.recent_posts_cache + allow_local_network_access = \ + self.server.allow_local_network_access + signing_priv_key_pem = \ + self.server.signing_priv_key_pem + twitter_replacement_domain = \ + self.server.twitter_replacement_domain + show_published_date_only = \ + self.server.show_published_date_only + min_images_for_accounts = \ + self.server.min_images_for_accounts + peertube_instances = \ + self.server.peertube_instances + self._update_edited_post(self.server.base_dir, + nickname, self.server.domain, + message_json, + edited_published, + edited_postid, + recent_posts_cache, + 'outbox', + self.server.max_mentions, + self.server.max_emoji, + allow_local_network_access, + self.server.debug, + self.server.system_language, + self.server.http_prefix, + self.server.domain_full, + self.server.person_cache, + signing_priv_key_pem, + self.server.max_recent_posts, + self.server.translate, + curr_session, + self.server.cached_webfingers, + self.server.port, + self.server.allow_deletion, + self.server.yt_replace_domain, + twitter_replacement_domain, + show_published_date_only, + peertube_instances, + self.server.theme_name, + self.server.max_like_count, + self.server.cw_lists, + self.server.dogwhistles, + min_images_for_accounts, + self.server.max_hashtags, + self.server.buy_sites) + print('DEBUG: sending edited reading status post ' + + str(message_json)) + if fields['schedulePost']: + return 1 + if pin_to_profile: + sys_language = self.server.system_language + content_str = \ + get_base_content_from_post(message_json, + sys_language) + pin_post(self.server.base_dir, + nickname, self.server.domain, content_str) + return 1 + if self._post_to_outbox(message_json, + self.server.project_version, + nickname, + curr_session, proxy_type): + populate_replies(self.server.base_dir, + self.server.http_prefix, + self.server.domain_full, + message_json, + self.server.max_replies, + self.server.debug) + return 1 + return -1 elif post_type in ('newshare', 'newwanted'): if not fields.get('itemQty'): print(post_type + ' no itemQty') diff --git a/posts.py b/posts.py index 65be7d4b9..4ee148657 100644 --- a/posts.py +++ b/posts.py @@ -2152,6 +2152,74 @@ def create_public_post(base_dir: str, chat_url) +def create_reading_post(base_dir: str, + nickname: str, domain: str, port: int, + http_prefix: str, + mentions_str: str, reading_update_type: str, + book_title: str, book_url: str, book_rating: float, + save_to_file: bool, + client_to_server: bool, comments_enabled: bool, + attach_image_filename: str, media_type: str, + image_description: str, video_transcript: str, + city: str, in_reply_to: str, + in_reply_to_atom_uri: str, subject: str, + schedule_post: bool, + event_date: str, event_time: str, event_end_time: str, + location: str, is_article: bool, system_language: str, + conversation_id: str, low_bandwidth: bool, + content_license_url: str, + media_license_url: str, media_creator: str, + languages_understood: [], translate: {}, + buy_url: str, chat_url: str) -> {}: + """ TODO reading status post + """ + content = '' + if mentions_str: + if not mentions_str.endswith(' '): + mentions_str += ' ' + if reading_update_type == 'readingupdatewant': + content = mentions_str + translate['wants to read'] + \ + ' ' + book_title + '' + elif reading_update_type == 'readingupdateread': + content = mentions_str + translate['reading'] + \ + ' ' + book_title + '' + elif reading_update_type == 'readingupdatefinished': + content = mentions_str + translate['finished reading'] + \ + ' ' + book_title + '' + elif reading_update_type == 'readingupdaterating' and book_rating > 0: + content = translate['rated'] + ' ' + book_title + '' + if not content: + return None + post_json_object = \ + create_public_post(base_dir, + nickname, domain, port, http_prefix, + content, save_to_file, + client_to_server, comments_enabled, + attach_image_filename, media_type, + image_description, video_transcript, + city, in_reply_to, + in_reply_to_atom_uri, subject, + schedule_post, + event_date, event_time, event_end_time, + location, is_article, system_language, + conversation_id, low_bandwidth, + content_license_url, + media_license_url, media_creator, + languages_understood, translate, + buy_url, chat_url) + if post_json_object: + post_json_object['tag'] = [{ + 'href': book_url, + 'name': book_title, + 'type': 'Edition' + }] + return post_json_object + + def _append_citations_to_blog_post(base_dir: str, nickname: str, domain: str, blog_json: {}) -> None: diff --git a/reading.py b/reading.py index 5128b55b7..701afdc42 100644 --- a/reading.py +++ b/reading.py @@ -473,20 +473,22 @@ def html_profile_book_list(base_dir: str, actor: str, no_of_books: int, book_wanted = True elif event_type == 'finished': book_finished = True - if book_title and book_image_url: + if book_title: book_title = remove_html(book_title) html_str += '
  • \n' html_str += ' \n' html_str += '
    \n' # book image - html_str += ' \n' - html_str += '
    \n' - html_str += ' \n' - html_str += '
    \n' - html_str += '
    \n' + if book_image_url: + html_str += ' \n' + html_str += '
    \n' + html_str += ' \n' + html_str += '
    \n' + html_str += '
    \n' # book details html_str += '
    \n' diff --git a/translations/ar.json b/translations/ar.json index ab7390a76..1113d1619 100644 --- a/translations/ar.json +++ b/translations/ar.json @@ -652,5 +652,6 @@ "am reading": "أنا أقرأ", "Update type": "نوع التحديث", "add a rating": "إضافة تقييم", - "Rating": "تقييم" + "Rating": "تقييم", + "reading": "قراءة" } diff --git a/translations/bn.json b/translations/bn.json index 04eb484d8..432b10b9e 100644 --- a/translations/bn.json +++ b/translations/bn.json @@ -652,5 +652,6 @@ "am reading": "পড়ছি", "Update type": "আপডেটের ধরন", "add a rating": "একটি রেটিং যোগ করুন", - "Rating": "রেটিং" + "Rating": "রেটিং", + "reading": "পড়া" } diff --git a/translations/ca.json b/translations/ca.json index cba179013..d08d50dae 100644 --- a/translations/ca.json +++ b/translations/ca.json @@ -652,5 +652,6 @@ "am reading": "estic llegint", "Update type": "Tipus d'actualització", "add a rating": "afegir una qualificació", - "Rating": "Valoració" + "Rating": "Valoració", + "reading": "lectura" } diff --git a/translations/cy.json b/translations/cy.json index 5d2d5dc96..99103d11c 100644 --- a/translations/cy.json +++ b/translations/cy.json @@ -652,5 +652,6 @@ "am reading": "rwy'n darllen", "Update type": "Math o ddiweddariad", "add a rating": "ychwanegu sgôr", - "Rating": "Graddio" + "Rating": "Graddio", + "reading": "darllen" } diff --git a/translations/de.json b/translations/de.json index f8e2d8223..c563d43e2 100644 --- a/translations/de.json +++ b/translations/de.json @@ -652,5 +652,6 @@ "am reading": "Ich lese", "Update type": "Update-Typ", "add a rating": "Fügen Sie eine Bewertung hinzu", - "Rating": "Bewertung" + "Rating": "Bewertung", + "reading": "lektüre" } diff --git a/translations/el.json b/translations/el.json index 4c851918f..a74b61d9c 100644 --- a/translations/el.json +++ b/translations/el.json @@ -652,5 +652,6 @@ "am reading": "διαβάζω", "Update type": "Τύπος ενημέρωσης", "add a rating": "προσθέστε μια βαθμολογία", - "Rating": "Εκτίμηση" + "Rating": "Εκτίμηση", + "reading": "ΑΝΑΓΝΩΣΗ" } diff --git a/translations/en.json b/translations/en.json index 84b39292c..31f9e6589 100644 --- a/translations/en.json +++ b/translations/en.json @@ -652,5 +652,6 @@ "am reading": "am reading", "Update type": "Update type", "add a rating": "add a rating", - "Rating": "Rating" + "Rating": "Rating", + "reading": "reading" } diff --git a/translations/es.json b/translations/es.json index 1136a37ee..25bbddaf6 100644 --- a/translations/es.json +++ b/translations/es.json @@ -652,5 +652,6 @@ "am reading": "Estoy leyendo", "Update type": "Tipo de actualización", "add a rating": "agregar una calificación", - "Rating": "Clasificación" + "Rating": "Clasificación", + "reading": "lectura" } diff --git a/translations/fa.json b/translations/fa.json index b8034371d..12f610a95 100644 --- a/translations/fa.json +++ b/translations/fa.json @@ -652,5 +652,6 @@ "am reading": "دارم میخونم", "Update type": "نوع به روز رسانی", "add a rating": "امتیاز اضافه کنید", - "Rating": "رتبه بندی" + "Rating": "رتبه بندی", + "reading": "خواندن" } diff --git a/translations/fr.json b/translations/fr.json index 9081a7d5c..695cb98f9 100644 --- a/translations/fr.json +++ b/translations/fr.json @@ -652,5 +652,6 @@ "am reading": "Je suis en train de lire", "Update type": "Type de mise à jour", "add a rating": "ajouter une note", - "Rating": "Notation" + "Rating": "Notation", + "reading": "en lisant" } diff --git a/translations/ga.json b/translations/ga.json index 50fdee1b2..1b654a1f3 100644 --- a/translations/ga.json +++ b/translations/ga.json @@ -652,5 +652,6 @@ "am reading": "táim ag léamh", "Update type": "Cineál nuashonraithe", "add a rating": "cuir rátáil", - "Rating": "Rátáil" + "Rating": "Rátáil", + "reading": "ag léamh" } diff --git a/translations/he.json b/translations/he.json index 666ba8f59..86986a52a 100644 --- a/translations/he.json +++ b/translations/he.json @@ -652,5 +652,6 @@ "am reading": "אני קורא", "Update type": "סוג עדכון", "add a rating": "להוסיף דירוג", - "Rating": "דֵרוּג" + "Rating": "דֵרוּג", + "reading": "קריאה" } diff --git a/translations/hi.json b/translations/hi.json index b459eb6c5..c5e620e20 100644 --- a/translations/hi.json +++ b/translations/hi.json @@ -652,5 +652,6 @@ "am reading": "पढ़ रहा हूं", "Update type": "अद्यतन प्रकार", "add a rating": "एक रेटिंग जोड़ें", - "Rating": "रेटिंग" + "Rating": "रेटिंग", + "reading": "पढ़ना" } diff --git a/translations/it.json b/translations/it.json index c41ced092..cd1ac131c 100644 --- a/translations/it.json +++ b/translations/it.json @@ -652,5 +652,6 @@ "am reading": "sto leggendo", "Update type": "Tipo di aggiornamento", "add a rating": "aggiungi una valutazione", - "Rating": "Valutazione" + "Rating": "Valutazione", + "reading": "lettura" } diff --git a/translations/ja.json b/translations/ja.json index eea5a3246..0bd165771 100644 --- a/translations/ja.json +++ b/translations/ja.json @@ -652,5 +652,6 @@ "am reading": "読んでいます", "Update type": "更新タイプ", "add a rating": "評価を追加する", - "Rating": "評価" + "Rating": "評価", + "reading": "読む" } diff --git a/translations/ko.json b/translations/ko.json index d202fd157..eaf9968f5 100644 --- a/translations/ko.json +++ b/translations/ko.json @@ -652,5 +652,6 @@ "am reading": "읽고 있어요", "Update type": "업데이트 유형", "add a rating": "평점 추가", - "Rating": "평가" + "Rating": "평가", + "reading": "독서" } diff --git a/translations/ku.json b/translations/ku.json index 69d3aa9d6..691df56a0 100644 --- a/translations/ku.json +++ b/translations/ku.json @@ -652,5 +652,6 @@ "am reading": "ez dixwînim", "Update type": "Cureyê nûve bike", "add a rating": "rêjeyek zêde bike", - "Rating": "Rating" + "Rating": "Rating", + "reading": "xwendinî" } diff --git a/translations/nl.json b/translations/nl.json index 9cd2ba2f0..dafd43e8b 100644 --- a/translations/nl.json +++ b/translations/nl.json @@ -652,5 +652,6 @@ "am reading": "aan het lezen", "Update type": "Updatetype", "add a rating": "een beoordeling toevoegen", - "Rating": "Beoordeling" + "Rating": "Beoordeling", + "reading": "lezing" } diff --git a/translations/oc.json b/translations/oc.json index 5d6734936..3df74ea3d 100644 --- a/translations/oc.json +++ b/translations/oc.json @@ -648,5 +648,6 @@ "am reading": "am reading", "Update type": "Update type", "add a rating": "add a rating", - "Rating": "Rating" + "Rating": "Rating", + "reading": "reading" } diff --git a/translations/pl.json b/translations/pl.json index 9ecd9a9e9..8322917ab 100644 --- a/translations/pl.json +++ b/translations/pl.json @@ -652,5 +652,6 @@ "am reading": "czytam", "Update type": "Typ aktualizacji", "add a rating": "dodaj ocenę", - "Rating": "Ocena" + "Rating": "Ocena", + "reading": "czytanie" } diff --git a/translations/pt.json b/translations/pt.json index a5b4162ab..bbbed07c1 100644 --- a/translations/pt.json +++ b/translations/pt.json @@ -652,5 +652,6 @@ "am reading": "estou lendo", "Update type": "Tipo de atualização", "add a rating": "adicionar uma classificação", - "Rating": "Avaliação" + "Rating": "Avaliação", + "reading": "leitura" } diff --git a/translations/ru.json b/translations/ru.json index d7625ed12..035f4c1f1 100644 --- a/translations/ru.json +++ b/translations/ru.json @@ -652,5 +652,6 @@ "am reading": "читаю", "Update type": "Тип обновления", "add a rating": "добавить оценку", - "Rating": "Рейтинг" + "Rating": "Рейтинг", + "reading": "чтение" } diff --git a/translations/sw.json b/translations/sw.json index 84fdb1463..93e97a0fc 100644 --- a/translations/sw.json +++ b/translations/sw.json @@ -652,5 +652,6 @@ "am reading": "ninasoma", "Update type": "Aina ya sasisho", "add a rating": "ongeza ukadiriaji", - "Rating": "Ukadiriaji" + "Rating": "Ukadiriaji", + "reading": "kusoma" } diff --git a/translations/tr.json b/translations/tr.json index 92b5c3cc0..c0005ac60 100644 --- a/translations/tr.json +++ b/translations/tr.json @@ -652,5 +652,6 @@ "am reading": "Okuyorum", "Update type": "Güncelleme türü", "add a rating": "derecelendirme ekle", - "Rating": "Değerlendirme" + "Rating": "Değerlendirme", + "reading": "okuma" } diff --git a/translations/uk.json b/translations/uk.json index b381375b2..01218c31a 100644 --- a/translations/uk.json +++ b/translations/uk.json @@ -652,5 +652,6 @@ "am reading": "я читаю", "Update type": "Тип оновлення", "add a rating": "додати оцінку", - "Rating": "Рейтинг" + "Rating": "Рейтинг", + "reading": "читання" } diff --git a/translations/yi.json b/translations/yi.json index 982a0ae5a..ffef7d56b 100644 --- a/translations/yi.json +++ b/translations/yi.json @@ -652,5 +652,6 @@ "am reading": "בין לייענען", "Update type": "דערהייַנטיקן טיפּ", "add a rating": "לייגן אַ ראַנג", - "Rating": "שאַץ" + "Rating": "שאַץ", + "reading": "לייענען" } diff --git a/translations/zh.json b/translations/zh.json index 549deeb0a..e94e1fbb3 100644 --- a/translations/zh.json +++ b/translations/zh.json @@ -652,5 +652,6 @@ "am reading": "正在阅读", "Update type": "更新类型", "add a rating": "添加评级", - "Rating": "评分" + "Rating": "评分", + "reading": "阅读" } diff --git a/webapp_create_post.py b/webapp_create_post.py index 4d1bc1d60..ed1f07fee 100644 --- a/webapp_create_post.py +++ b/webapp_create_post.py @@ -828,7 +828,7 @@ def html_new_post(edit_post_params: {}, translate['am reading'] + '\n' extra_fields += ' \n' - extra_fields += ' \n' extra_fields += '
    \n'