diff options
Diffstat (limited to 'youtube')
-rw-r--r-- | youtube/accounts.py | 3 | ||||
-rw-r--r-- | youtube/comments.css | 22 | ||||
-rw-r--r-- | youtube/comments.py | 20 | ||||
-rw-r--r-- | youtube/post_comment.py | 3 |
4 files changed, 41 insertions, 7 deletions
diff --git a/youtube/accounts.py b/youtube/accounts.py index bc0e017..6959fb2 100644 --- a/youtube/accounts.py +++ b/youtube/accounts.py @@ -16,6 +16,9 @@ except FileNotFoundError: # global var for temporary storage of account info accounts = {} +def username_list(): + return accounts.keys() + def save_accounts(): to_save = {username: account for username, account in accounts.items() if account['save']} with open(os.path.join(settings.data_dir, 'accounts.txt'), 'w', encoding='utf-8') as f: diff --git a/youtube/comments.css b/youtube/comments.css index 79d88c3..5fd9063 100644 --- a/youtube/comments.css +++ b/youtube/comments.css @@ -23,15 +23,29 @@ width: 100%; } +.comment-form{ + display: grid; + align-content: start; + justify-items: start; + align-items: start; +} + #comment-account-options{ + display:grid; + grid-auto-flow: column; + grid-column-gap: 10px; + margin-top:10px; + margin-bottom:10px; + } + #comment-account-options a{ + margin-left:10px; + } + .comments-area{ display:grid; } - .comment-form{ - display:contents; - } .comments-area textarea{ resize: vertical; - margin-top:10px; + justify-self:stretch; } .post-comment-button{ margin-top:10px; diff --git a/youtube/comments.py b/youtube/comments.py index abc0a79..1b22d24 100644 --- a/youtube/comments.py +++ b/youtube/comments.py @@ -1,5 +1,5 @@ import json -from youtube import proto, common +from youtube import proto, common, accounts import base64 from youtube.common import uppercase_escape, default_multi_get, format_text_runs, URL_ORIGIN, fetch_url from string import Template @@ -311,8 +311,21 @@ video_metadata_template = Template('''<section class="video-metadata"> <span>Sorted by $sort</span> </section> ''') +account_option_template = Template(''' + <option value="$username">$username</option>''') + +def comment_box_account_options(): + return ''.join(account_option_template.substitute(username=username) for username in accounts.username_list()) + comment_box_template = Template(''' <form action="$form_action" method="post" class="comment-form"> + <div id="comment-account-options"> + <label for="username-selection">Account:</label> + <select id="username-selection"> +$options + </select> + <a href="''' + common.URL_ORIGIN + '''/login" target="_blank">Add account</a> + </div> <textarea name="comment_text"></textarea> $video_id_input <button type="submit" class="post-comment-button">$post_text</button> @@ -334,7 +347,7 @@ def get_comments_page(query_string): if replies: page_title = 'Replies' video_metadata = '' - comment_box = comment_box_template.substitute(form_action='', video_id_input='', post_text='Post reply') + comment_box = comment_box_template.substitute(form_action='', video_id_input='', post_text='Post reply', options=comment_box_account_options()) comment_links = '' else: page_number = str(int(metadata['offset']/20) + 1) @@ -350,7 +363,8 @@ def get_comments_page(query_string): comment_box = comment_box_template.substitute( form_action= common.URL_ORIGIN + '/post_comment', video_id_input='''<input type="hidden" name="video_id" value="''' + metadata['video_id'] + '''">''', - post_text='Post comment' + post_text='Post comment', + options=comment_box_account_options(), ) other_sort_url = common.URL_ORIGIN + '/comments?ctoken=' + make_comment_ctoken(metadata['video_id'], sort=1 - metadata['sort']) diff --git a/youtube/post_comment.py b/youtube/post_comment.py index 305120c..2c9410c 100644 --- a/youtube/post_comment.py +++ b/youtube/post_comment.py @@ -160,18 +160,21 @@ textarea{ } .comment-form{ grid-column:2; + justify-content:start; }''' if parent_id: # comment reply comment_box = comments.comment_box_template.substitute( form_action = common.URL_ORIGIN + '/comments?parent_id=' + parent_id + "&video_id=" + video_id, video_id_input = '', post_text = "Post reply", + options=comments.comment_box_account_options(), ) else: comment_box = comments.comment_box_template.substitute( form_action = common.URL_ORIGIN + '/post_comment', video_id_input = '''<input type="hidden" name="video_id" value="''' + video_id + '''">''', post_text = "Post comment", + options=comments.comment_box_account_options(), ) page = '''<div class="left">\n''' + comment_box + '''</div>\n''' |