Followers become Fans on premium accounts

merge-requests/30/head
Bob Mottram 2024-03-21 18:30:12 +00:00
parent ec719a8e4e
commit 87da00254e
29 changed files with 103 additions and 34 deletions

View File

@ -661,5 +661,7 @@
"Payment required": "الدفع مطلوب", "Payment required": "الدفع مطلوب",
"It's time to splash that cash": "لقد حان الوقت لصرف هذه الأموال", "It's time to splash that cash": "لقد حان الوقت لصرف هذه الأموال",
"Premium account": "حساب الأقساط", "Premium account": "حساب الأقساط",
"Premium account subscription link": "رابط الاشتراك في الحساب المميز" "Premium account subscription link": "رابط الاشتراك في الحساب المميز",
"Fans": "المشجعين",
"Only to fans": "فقط للجماهير"
} }

View File

@ -661,5 +661,7 @@
"Payment required": "অর্থপ্রদান আবশ্যক", "Payment required": "অর্থপ্রদান আবশ্যক",
"It's time to splash that cash": "এটা যে নগদ স্প্ল্যাশ সময়", "It's time to splash that cash": "এটা যে নগদ স্প্ল্যাশ সময়",
"Premium account": "প্রিমিয়াম অ্যাকাউন্ট", "Premium account": "প্রিমিয়াম অ্যাকাউন্ট",
"Premium account subscription link": "প্রিমিয়াম অ্যাকাউন্ট সাবস্ক্রিপশন লিঙ্ক" "Premium account subscription link": "প্রিমিয়াম অ্যাকাউন্ট সাবস্ক্রিপশন লিঙ্ক",
"Fans": "ভক্ত",
"Only to fans": "শুধুমাত্র ভক্তদের জন্য"
} }

View File

@ -661,5 +661,7 @@
"Payment required": "Cal pagar", "Payment required": "Cal pagar",
"It's time to splash that cash": "És hora d'esquitxar aquests diners en efectiu", "It's time to splash that cash": "És hora d'esquitxar aquests diners en efectiu",
"Premium account": "Compte Premium", "Premium account": "Compte Premium",
"Premium account subscription link": "Enllaç de subscripció al compte Premium" "Premium account subscription link": "Enllaç de subscripció al compte Premium",
"Fans": "Ventiladors",
"Only to fans": "Només als aficionats"
} }

View File

@ -661,5 +661,7 @@
"Payment required": "Angen taliad", "Payment required": "Angen taliad",
"It's time to splash that cash": "Mae'n bryd tasgu'r arian hwnnw", "It's time to splash that cash": "Mae'n bryd tasgu'r arian hwnnw",
"Premium account": "Cyfrif premiwm", "Premium account": "Cyfrif premiwm",
"Premium account subscription link": "Dolen tanysgrifiad cyfrif premiwm" "Premium account subscription link": "Dolen tanysgrifiad cyfrif premiwm",
"Fans": "Cefnogwyr",
"Only to fans": "Dim ond i gefnogwyr"
} }

View File

@ -661,5 +661,7 @@
"Payment required": "Bezahlung erforderlich", "Payment required": "Bezahlung erforderlich",
"It's time to splash that cash": "Es ist Zeit, das Geld auszugeben", "It's time to splash that cash": "Es ist Zeit, das Geld auszugeben",
"Premium account": "Premiumaccount", "Premium account": "Premiumaccount",
"Premium account subscription link": "Link zum Abonnement eines Premium-Kontos" "Premium account subscription link": "Link zum Abonnement eines Premium-Kontos",
"Fans": "Fans",
"Only to fans": "Nur für Fans"
} }

View File

@ -661,5 +661,7 @@
"Payment required": "Απαιτείται πληρωμή", "Payment required": "Απαιτείται πληρωμή",
"It's time to splash that cash": "Ήρθε η ώρα να ρίξετε αυτά τα μετρητά", "It's time to splash that cash": "Ήρθε η ώρα να ρίξετε αυτά τα μετρητά",
"Premium account": "Λογαριασμός Premium", "Premium account": "Λογαριασμός Premium",
"Premium account subscription link": "Σύνδεσμος εγγραφής λογαριασμού Premium" "Premium account subscription link": "Σύνδεσμος εγγραφής λογαριασμού Premium",
"Fans": "Θαυμαστές",
"Only to fans": "Μόνο στους οπαδούς"
} }

View File

@ -661,5 +661,7 @@
"Payment required": "Payment required", "Payment required": "Payment required",
"It's time to splash that cash": "It's time to splash that cash", "It's time to splash that cash": "It's time to splash that cash",
"Premium account": "Premium account", "Premium account": "Premium account",
"Premium account subscription link": "Premium account subscription link" "Premium account subscription link": "Premium account subscription link",
"Fans": "Fans",
"Only to fans": "Only to fans"
} }

View File

@ -661,5 +661,7 @@
"Payment required": "Pago requerido", "Payment required": "Pago requerido",
"It's time to splash that cash": "Es hora de gastar ese dinero", "It's time to splash that cash": "Es hora de gastar ese dinero",
"Premium account": "Cuenta privilegiada", "Premium account": "Cuenta privilegiada",
"Premium account subscription link": "Enlace de suscripción a cuenta premium" "Premium account subscription link": "Enlace de suscripción a cuenta premium",
"Fans": "Aficionadas",
"Only to fans": "Solo para las fans"
} }

View File

@ -661,5 +661,7 @@
"Payment required": "مستلزم پرداخت", "Payment required": "مستلزم پرداخت",
"It's time to splash that cash": "وقت آن است که آن پول نقد را بپاشیم", "It's time to splash that cash": "وقت آن است که آن پول نقد را بپاشیم",
"Premium account": "حساب ویژه", "Premium account": "حساب ویژه",
"Premium account subscription link": "لینک اشتراک حساب پریمیوم" "Premium account subscription link": "لینک اشتراک حساب پریمیوم",
"Fans": "طرفداران",
"Only to fans": "فقط به طرفداران"
} }

View File

@ -661,5 +661,7 @@
"Payment required": "Paiement Requis", "Payment required": "Paiement Requis",
"It's time to splash that cash": "Il est temps de dépenser cet argent", "It's time to splash that cash": "Il est temps de dépenser cet argent",
"Premium account": "Compte Premium", "Premium account": "Compte Premium",
"Premium account subscription link": "Lien d'abonnement au compte Premium" "Premium account subscription link": "Lien d'abonnement au compte Premium",
"Fans": "Ventilateurs",
"Only to fans": "Uniquement aux fans"
} }

View File

@ -661,5 +661,7 @@
"Payment required": "Íocaíocht ag teastáil", "Payment required": "Íocaíocht ag teastáil",
"It's time to splash that cash": "Tá sé in am an t-airgead sin a splancadh", "It's time to splash that cash": "Tá sé in am an t-airgead sin a splancadh",
"Premium account": "Cuntas préimhe", "Premium account": "Cuntas préimhe",
"Premium account subscription link": "Nasc síntiús cuntas préimhe" "Premium account subscription link": "Nasc síntiús cuntas préimhe",
"Fans": "Lucht leanúna",
"Only to fans": "A lucht leanúna amháin"
} }

View File

@ -661,5 +661,7 @@
"Payment required": "נדרש תשלום", "Payment required": "נדרש תשלום",
"It's time to splash that cash": "הגיע הזמן להתיז את המזומנים האלה", "It's time to splash that cash": "הגיע הזמן להתיז את המזומנים האלה",
"Premium account": "חשבון פרימיום", "Premium account": "חשבון פרימיום",
"Premium account subscription link": "קישור מנוי לחשבון פרימיום" "Premium account subscription link": "קישור מנוי לחשבון פרימיום",
"Fans": "מעריצים",
"Only to fans": "רק למעריצים"
} }

View File

@ -661,5 +661,7 @@
"Payment required": "भुगतान की आवश्यकता है", "Payment required": "भुगतान की आवश्यकता है",
"It's time to splash that cash": "अब उस नकदी को बिखेरने का समय आ गया है", "It's time to splash that cash": "अब उस नकदी को बिखेरने का समय आ गया है",
"Premium account": "प्रीमियम खाता", "Premium account": "प्रीमियम खाता",
"Premium account subscription link": "प्रीमियम खाता सदस्यता लिंक" "Premium account subscription link": "प्रीमियम खाता सदस्यता लिंक",
"Fans": "प्रशंसक",
"Only to fans": "केवल प्रशंसकों के लिए"
} }

View File

@ -661,5 +661,7 @@
"Payment required": "Pagamento richiesto", "Payment required": "Pagamento richiesto",
"It's time to splash that cash": "È ora di spendere quei soldi", "It's time to splash that cash": "È ora di spendere quei soldi",
"Premium account": "Account premium", "Premium account": "Account premium",
"Premium account subscription link": "Collegamento per l'abbonamento all'account Premium" "Premium account subscription link": "Collegamento per l'abbonamento all'account Premium",
"Fans": "Tifosi",
"Only to fans": "Solo ai tifosi"
} }

View File

@ -661,5 +661,7 @@
"Payment required": "支払いが必要", "Payment required": "支払いが必要",
"It's time to splash that cash": "お金を投じる時が来ました", "It's time to splash that cash": "お金を投じる時が来ました",
"Premium account": "プレミアムアカウント", "Premium account": "プレミアムアカウント",
"Premium account subscription link": "プレミアムアカウントのサブスクリプションリンク" "Premium account subscription link": "プレミアムアカウントのサブスクリプションリンク",
"Fans": "ファン",
"Only to fans": "ファンだけに"
} }

View File

@ -661,5 +661,7 @@
"Payment required": "결제 필요", "Payment required": "결제 필요",
"It's time to splash that cash": "이제 그 현금을 쏟아부을 시간이다", "It's time to splash that cash": "이제 그 현금을 쏟아부을 시간이다",
"Premium account": "프리미엄 계정", "Premium account": "프리미엄 계정",
"Premium account subscription link": "프리미엄 계정 구독 링크" "Premium account subscription link": "프리미엄 계정 구독 링크",
"Fans": "팬",
"Only to fans": "팬들에게만"
} }

View File

@ -661,5 +661,7 @@
"Payment required": "Payment pêwîst", "Payment required": "Payment pêwîst",
"It's time to splash that cash": "Wext e ku meriv wê drav birijîne", "It's time to splash that cash": "Wext e ku meriv wê drav birijîne",
"Premium account": "Hesabê Premium", "Premium account": "Hesabê Premium",
"Premium account subscription link": "Zencîreya abonetiya hesabê Premium" "Premium account subscription link": "Zencîreya abonetiya hesabê Premium",
"Fans": "Fans",
"Only to fans": "Tenê ji temaşevanan re"
} }

View File

@ -661,5 +661,7 @@
"Payment required": "Betaling Vereist", "Payment required": "Betaling Vereist",
"It's time to splash that cash": "Het is tijd om met dat geld te spetteren", "It's time to splash that cash": "Het is tijd om met dat geld te spetteren",
"Premium account": "Premium account", "Premium account": "Premium account",
"Premium account subscription link": "Abonnementlink voor premiumaccount" "Premium account subscription link": "Abonnementlink voor premiumaccount",
"Fans": "Fans",
"Only to fans": "Alleen voor fans"
} }

View File

@ -657,5 +657,7 @@
"Payment required": "Payment required", "Payment required": "Payment required",
"It's time to splash that cash": "It's time to splash that cash", "It's time to splash that cash": "It's time to splash that cash",
"Premium account": "Premium account", "Premium account": "Premium account",
"Premium account subscription link": "Premium account subscription link" "Premium account subscription link": "Premium account subscription link",
"Fans": "Fans",
"Only to fans": "Only to fans"
} }

View File

@ -661,5 +661,7 @@
"Payment required": "Płatność wymagana", "Payment required": "Płatność wymagana",
"It's time to splash that cash": "Czas przelać tę kasę", "It's time to splash that cash": "Czas przelać tę kasę",
"Premium account": "Konto premium", "Premium account": "Konto premium",
"Premium account subscription link": "Link do subskrypcji konta premium" "Premium account subscription link": "Link do subskrypcji konta premium",
"Fans": "Fani",
"Only to fans": "Tylko dla fanów"
} }

View File

@ -661,5 +661,7 @@
"Payment required": "Pagamento Requerido", "Payment required": "Pagamento Requerido",
"It's time to splash that cash": "É hora de gastar esse dinheiro", "It's time to splash that cash": "É hora de gastar esse dinheiro",
"Premium account": "Conta Premium", "Premium account": "Conta Premium",
"Premium account subscription link": "Link de assinatura da conta premium" "Premium account subscription link": "Link de assinatura da conta premium",
"Fans": "Fãs",
"Only to fans": "Somente para fãs"
} }

View File

@ -661,5 +661,7 @@
"Payment required": "Требуется оплата", "Payment required": "Требуется оплата",
"It's time to splash that cash": "Пришло время выплеснуть эти деньги", "It's time to splash that cash": "Пришло время выплеснуть эти деньги",
"Premium account": "Премиум аккаунт", "Premium account": "Премиум аккаунт",
"Premium account subscription link": "Ссылка на подписку на премиум-аккаунт" "Premium account subscription link": "Ссылка на подписку на премиум-аккаунт",
"Fans": "Поклонники",
"Only to fans": "Только фанатам"
} }

View File

@ -661,5 +661,7 @@
"Payment required": "Malipo yanahitajika", "Payment required": "Malipo yanahitajika",
"It's time to splash that cash": "Ni wakati wa kunyunyiza pesa hizo", "It's time to splash that cash": "Ni wakati wa kunyunyiza pesa hizo",
"Premium account": "Akaunti ya malipo", "Premium account": "Akaunti ya malipo",
"Premium account subscription link": "Kiungo cha usajili wa akaunti ya Premium" "Premium account subscription link": "Kiungo cha usajili wa akaunti ya Premium",
"Fans": "Mashabiki",
"Only to fans": "Kwa mashabiki pekee"
} }

View File

@ -661,5 +661,7 @@
"Payment required": "Ödeme gerekli", "Payment required": "Ödeme gerekli",
"It's time to splash that cash": "O parayı sıçratmanın zamanı geldi", "It's time to splash that cash": "O parayı sıçratmanın zamanı geldi",
"Premium account": "Özel hesap", "Premium account": "Özel hesap",
"Premium account subscription link": "Premium hesap abonelik bağlantısı" "Premium account subscription link": "Premium hesap abonelik bağlantısı",
"Fans": "Hayranlar",
"Only to fans": "Sadece hayranlara"
} }

View File

@ -661,5 +661,7 @@
"Payment required": "Потрібна оплата", "Payment required": "Потрібна оплата",
"It's time to splash that cash": "Настав час виплеснути ці гроші", "It's time to splash that cash": "Настав час виплеснути ці гроші",
"Premium account": "Преміум акаунт", "Premium account": "Преміум акаунт",
"Premium account subscription link": "Посилання на підписку на преміум-акаунт" "Premium account subscription link": "Посилання на підписку на преміум-акаунт",
"Fans": "вболівальники",
"Only to fans": "Тільки фанатам"
} }

View File

@ -661,5 +661,7 @@
"Payment required": "צאָלונג פארלאנגט", "Payment required": "צאָלונג פארלאנגט",
"It's time to splash that cash": "עס איז צייט צו שפּריצן די געלט", "It's time to splash that cash": "עס איז צייט צו שפּריצן די געלט",
"Premium account": "פּרעמיום חשבון", "Premium account": "פּרעמיום חשבון",
"Premium account subscription link": "פּרעמיום חשבון אַבאָנעמענט לינק" "Premium account subscription link": "פּרעמיום חשבון אַבאָנעמענט לינק",
"Fans": "פאַנס",
"Only to fans": "נאָר צו פאַנס"
} }

View File

@ -661,5 +661,7 @@
"Payment required": "需要付款", "Payment required": "需要付款",
"It's time to splash that cash": "是时候挥霍现金了", "It's time to splash that cash": "是时候挥霍现金了",
"Premium account": "至尊帐号", "Premium account": "至尊帐号",
"Premium account subscription link": "高级帐户订阅链接" "Premium account subscription link": "高级帐户订阅链接",
"Fans": "粉丝",
"Only to fans": "只给粉丝"
} }

View File

@ -8,6 +8,7 @@ __status__ = "Production"
__module_group__ = "Web Interface" __module_group__ = "Web Interface"
import os import os
from utils import is_premium_account
from utils import dangerous_markup from utils import dangerous_markup
from utils import remove_html from utils import remove_html
from utils import get_content_from_post from utils import get_content_from_post
@ -62,7 +63,8 @@ def _html_new_post_drop_down(scope_icon: str, scope_description: str,
dropdown_report_suffix: str, dropdown_report_suffix: str,
no_drop_down: bool, no_drop_down: bool,
access_keys: {}, access_keys: {},
account_dir: str) -> str: account_dir: str,
premium: bool) -> str:
"""Returns the html for a drop down list of new post types """Returns the html for a drop down list of new post types
""" """
drop_down_content = '<nav><div class="newPostDropdown">\n' drop_down_content = '<nav><div class="newPostDropdown">\n'
@ -112,13 +114,18 @@ def _html_new_post_drop_down(scope_icon: str, scope_description: str,
'icons/scope_unlisted.png"/><b>' + \ 'icons/scope_unlisted.png"/><b>' + \
translate['Unlisted'] + '</b><br>' + \ translate['Unlisted'] + '</b><br>' + \
translate['Not on public timeline'] + '</a></li>\n' translate['Not on public timeline'] + '</a></li>\n'
followers_str = translate['Followers']
followers_desc_str = translate['Only to followers']
if premium:
followers_str = translate['Fans']
followers_desc_str = translate['Only to fans']
drop_down_content += \ drop_down_content += \
'<li><a href="' + path_base + dropdown_followers_suffix + \ '<li><a href="' + path_base + dropdown_followers_suffix + \
'" accesskey="' + access_keys['menuFollowers'] + '">' + \ '" accesskey="' + access_keys['menuFollowers'] + '">' + \
'<img loading="lazy" decoding="async" alt="" title="" src="/' + \ '<img loading="lazy" decoding="async" alt="" title="" src="/' + \
'icons/scope_followers.png"/><b>' + \ 'icons/scope_followers.png"/><b>' + \
translate['Followers'] + '</b><br>' + \ followers_str + '</b><br>' + \
translate['Only to followers'] + '</a></li>\n' followers_desc_str + '</a></li>\n'
drop_down_content += \ drop_down_content += \
'<li><a href="' + path_base + dropdown_dm_suffix + \ '<li><a href="' + path_base + dropdown_dm_suffix + \
'" accesskey="' + access_keys['menuDM'] + '">' + \ '" accesskey="' + access_keys['menuDM'] + '">' + \
@ -625,6 +632,7 @@ def html_new_post(edit_post_params: {},
'and time when you wish to stay' 'and time when you wish to stay'
placeholder_message = translate[idx] placeholder_message = translate[idx]
extra_fields = '' extra_fields = ''
premium = is_premium_account(base_dir, nickname, domain)
endpoint = 'newpost' endpoint = 'newpost'
if path.endswith('/newblog'): if path.endswith('/newblog'):
placeholder_subject = translate['Title'] placeholder_subject = translate['Title']
@ -641,6 +649,8 @@ def html_new_post(edit_post_params: {},
elif path.endswith('/newfollowers'): elif path.endswith('/newfollowers'):
scope_icon = 'scope_followers.png' scope_icon = 'scope_followers.png'
scope_description = translate['Followers'] scope_description = translate['Followers']
if premium:
scope_description = translate['Fans']
endpoint = 'newfollowers' endpoint = 'newfollowers'
elif path.endswith('/newdm'): elif path.endswith('/newdm'):
scope_icon = 'scope_dm.png' scope_icon = 'scope_dm.png'
@ -1077,7 +1087,7 @@ def html_new_post(edit_post_params: {},
dropdown_reminder_suffix, dropdown_reminder_suffix,
dropdown_report_suffix, dropdown_report_suffix,
no_drop_down, access_keys, no_drop_down, access_keys,
account_dir) account_dir, premium)
else: else:
if not share_description: if not share_description:
# reporting a post to moderator # reporting a post to moderator

View File

@ -1330,6 +1330,8 @@ def html_profile(signing_priv_key_pem: str,
deft = default_timeline deft = default_timeline
is_group = False is_group = False
followers_str = translate['Followers'] followers_str = translate['Followers']
if premium:
followers_str = translate['Fans']
if is_group_account(base_dir, nickname, domain): if is_group_account(base_dir, nickname, domain):
is_group = True is_group = True
followers_str = translate['Members'] followers_str = translate['Members']
@ -2653,7 +2655,7 @@ def _html_edit_notifications(base_dir: str, nickname: str, domain: str,
def _html_edit_profile_import_export(nickname: str, domain: str, def _html_edit_profile_import_export(nickname: str, domain: str,
translate: {}) -> str: translate: {}, premium: bool) -> str:
"""Contact Information section of edit profile screen """Contact Information section of edit profile screen
""" """
edit_profile_form = begin_edit_section(translate['Import and Export']) edit_profile_form = begin_edit_section(translate['Import and Export'])
@ -2673,10 +2675,13 @@ def _html_edit_profile_import_export(nickname: str, domain: str,
' <a href="/users/' + nickname + '/followingaccounts.csv" ' + \ ' <a href="/users/' + nickname + '/followingaccounts.csv" ' + \
'download="' + nickname + '@' + domain + '_following.csv">' + \ 'download="' + nickname + '@' + domain + '_following.csv">' + \
'<label class="labels">⇩ CSV</label></a></p>\n' '<label class="labels">⇩ CSV</label></a></p>\n'
followers_str = translate['Followers']
if premium:
followers_str = translate['Fans']
edit_profile_form += \ edit_profile_form += \
'<p><a href="/users/' + nickname + \ '<p><a href="/users/' + nickname + \
'/followersaccounts"><label class="labels">' + \ '/followersaccounts"><label class="labels">' + \
translate['Followers'] + '</label></a><br></p>\n' followers_str + '</label></a><br></p>\n'
edit_profile_form += end_edit_section() edit_profile_form += end_edit_section()
return edit_profile_form return edit_profile_form
@ -3226,7 +3231,7 @@ def html_edit_profile(server, translate: {},
# Import and export # Import and export
edit_profile_form += \ edit_profile_form += \
_html_edit_profile_import_export(nickname, domain, translate) _html_edit_profile_import_export(nickname, domain, translate, premium)
# Encryption Keys # Encryption Keys
edit_profile_form += \ edit_profile_form += \