mirror of https://gitlab.com/bashrc2/epicyon
Premium account option on edit profile screen
parent
6614880043
commit
296fc7fde2
|
@ -14,6 +14,7 @@ from socket import error as SocketError
|
||||||
from blocking import save_blocked_military
|
from blocking import save_blocked_military
|
||||||
from httpheaders import redirect_headers
|
from httpheaders import redirect_headers
|
||||||
from httpheaders import clear_login_details
|
from httpheaders import clear_login_details
|
||||||
|
from utils import set_premium_account
|
||||||
from utils import is_premium_account
|
from utils import is_premium_account
|
||||||
from utils import remove_avatar_from_cache
|
from utils import remove_avatar_from_cache
|
||||||
from utils import is_memorial_account
|
from utils import is_memorial_account
|
||||||
|
@ -1233,18 +1234,32 @@ def _profile_post_reject_spam_actors(base_dir: str,
|
||||||
def _profile_post_approve_followers(on_final_welcome_screen: bool,
|
def _profile_post_approve_followers(on_final_welcome_screen: bool,
|
||||||
actor_json: {}, fields: {},
|
actor_json: {}, fields: {},
|
||||||
actor_changed: bool,
|
actor_changed: bool,
|
||||||
premium: bool) -> bool:
|
premium: bool, base_dir: str,
|
||||||
""" HTTP POST approve followers
|
nickname: str, domain: str) -> bool:
|
||||||
|
""" HTTP POST approve followers and handle premium account flag
|
||||||
"""
|
"""
|
||||||
if on_final_welcome_screen:
|
if on_final_welcome_screen:
|
||||||
# Default setting created via the welcome screen
|
# Default setting created via the welcome screen
|
||||||
actor_json['manuallyApprovesFollowers'] = True
|
actor_json['manuallyApprovesFollowers'] = True
|
||||||
actor_changed = True
|
actor_changed = True
|
||||||
|
set_premium_account(base_dir, nickname, domain, False)
|
||||||
else:
|
else:
|
||||||
approve_followers = premium
|
approve_followers = premium
|
||||||
if fields.get('approveFollowers'):
|
if fields.get('approveFollowers'):
|
||||||
if fields['approveFollowers'] == 'on':
|
if fields['approveFollowers'] == 'on':
|
||||||
approve_followers = True
|
approve_followers = True
|
||||||
|
|
||||||
|
premium_activated = False
|
||||||
|
if fields.get('premiumAccount'):
|
||||||
|
if fields['premiumAccount'] == 'on':
|
||||||
|
# turn on premium flag
|
||||||
|
set_premium_account(base_dir, nickname, domain, True)
|
||||||
|
approve_followers = True
|
||||||
|
premium_activated = True
|
||||||
|
if premium and not premium_activated:
|
||||||
|
# turn off premium flag
|
||||||
|
set_premium_account(base_dir, nickname, domain, False)
|
||||||
|
|
||||||
if approve_followers != actor_json['manuallyApprovesFollowers']:
|
if approve_followers != actor_json['manuallyApprovesFollowers']:
|
||||||
actor_json['manuallyApprovesFollowers'] = approve_followers
|
actor_json['manuallyApprovesFollowers'] = approve_followers
|
||||||
actor_changed = True
|
actor_changed = True
|
||||||
|
@ -2847,7 +2862,8 @@ def profile_edit(self, calling_domain: str, cookie: str,
|
||||||
actor_changed = \
|
actor_changed = \
|
||||||
_profile_post_approve_followers(on_final_welcome_screen,
|
_profile_post_approve_followers(on_final_welcome_screen,
|
||||||
actor_json, fields,
|
actor_json, fields,
|
||||||
actor_changed, premium)
|
actor_changed, premium,
|
||||||
|
base_dir, nickname, domain)
|
||||||
|
|
||||||
_profile_post_reject_spam_actors(base_dir,
|
_profile_post_reject_spam_actors(base_dir,
|
||||||
nickname, domain, fields)
|
nickname, domain, fields)
|
||||||
|
|
21
utils.py
21
utils.py
|
@ -5220,3 +5220,24 @@ def is_premium_account(base_dir: str, nickname: str, domain: str) -> bool:
|
||||||
"""
|
"""
|
||||||
premium_filename = acct_dir(base_dir, nickname, domain) + '/.premium'
|
premium_filename = acct_dir(base_dir, nickname, domain) + '/.premium'
|
||||||
return os.path.isfile(premium_filename)
|
return os.path.isfile(premium_filename)
|
||||||
|
|
||||||
|
|
||||||
|
def set_premium_account(base_dir: str, nickname: str, domain: str,
|
||||||
|
flag_state: bool) -> bool:
|
||||||
|
""" Set or clear the premium account flag
|
||||||
|
"""
|
||||||
|
premium_filename = acct_dir(base_dir, nickname, domain) + '/.premium'
|
||||||
|
if os.path.isfile(premium_filename):
|
||||||
|
if not flag_state:
|
||||||
|
try:
|
||||||
|
os.remove(premium_filename)
|
||||||
|
except OSError:
|
||||||
|
print('EX: unable to remove premium flag ' + premium_filename)
|
||||||
|
else:
|
||||||
|
if flag_state:
|
||||||
|
try:
|
||||||
|
with open(premium_filename, 'w+',
|
||||||
|
encoding='utf-8') as fp_premium:
|
||||||
|
fp_premium.write('\n')
|
||||||
|
except OSError:
|
||||||
|
print('EX: unable to set premium flag ' + premium_filename)
|
||||||
|
|
|
@ -2718,10 +2718,13 @@ def _html_edit_profile_options(is_admin: bool,
|
||||||
show_vote_posts: bool,
|
show_vote_posts: bool,
|
||||||
show_replies_followers: bool,
|
show_replies_followers: bool,
|
||||||
show_replies_mutuals: bool,
|
show_replies_mutuals: bool,
|
||||||
hide_follows: bool) -> str:
|
hide_follows: bool,
|
||||||
|
premium: bool) -> str:
|
||||||
"""option checkboxes section of edit profile screen
|
"""option checkboxes section of edit profile screen
|
||||||
"""
|
"""
|
||||||
edit_profile_form = ' <div class="container">\n'
|
edit_profile_form = ' <div class="container">\n'
|
||||||
|
edit_profile_form += \
|
||||||
|
edit_check_box(translate['Premium account'], 'premiumAccount', premium)
|
||||||
edit_profile_form += \
|
edit_profile_form += \
|
||||||
edit_check_box(translate['Approve follower requests'],
|
edit_check_box(translate['Approve follower requests'],
|
||||||
'approveFollowers', manually_approves_followers)
|
'approveFollowers', manually_approves_followers)
|
||||||
|
@ -3191,6 +3194,9 @@ def html_edit_profile(server, translate: {},
|
||||||
if os.path.isfile(account_dir + '/.hideFollows'):
|
if os.path.isfile(account_dir + '/.hideFollows'):
|
||||||
hide_follows = True
|
hide_follows = True
|
||||||
|
|
||||||
|
# is this a premium account?
|
||||||
|
premium = is_premium_account(base_dir, nickname, domain)
|
||||||
|
|
||||||
# Option checkboxes
|
# Option checkboxes
|
||||||
edit_profile_form += \
|
edit_profile_form += \
|
||||||
_html_edit_profile_options(is_admin, manually_approves_followers,
|
_html_edit_profile_options(is_admin, manually_approves_followers,
|
||||||
|
@ -3203,7 +3209,8 @@ def html_edit_profile(server, translate: {},
|
||||||
nickname, min_images_for_accounts,
|
nickname, min_images_for_accounts,
|
||||||
reverse_sequence, show_vote_posts,
|
reverse_sequence, show_vote_posts,
|
||||||
show_replies_followers,
|
show_replies_followers,
|
||||||
show_replies_mutuals, hide_follows)
|
show_replies_mutuals, hide_follows,
|
||||||
|
premium)
|
||||||
|
|
||||||
# Contact information
|
# Contact information
|
||||||
edit_profile_form += \
|
edit_profile_form += \
|
||||||
|
|
Loading…
Reference in New Issue