aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--youtube/accounts.py39
-rw-r--r--youtube/youtube.py21
2 files changed, 30 insertions, 30 deletions
diff --git a/youtube/accounts.py b/youtube/accounts.py
index ebb9eae..6edfa97 100644
--- a/youtube/accounts.py
+++ b/youtube/accounts.py
@@ -25,7 +25,18 @@ def save_accounts():
with open(os.path.join(settings.data_dir, 'accounts.txt'), 'w', encoding='utf-8') as f:
f.write(json.dumps(to_save, indent=4))
-def add_account(username, password, save, use_tor):
+def cookiejar_from_lwp_str(lwp_str):
+ lwp_str = "#LWP-Cookies-2.0\n" + lwp_str # header required by _really_load for reading from "file"
+ cookiejar = http.cookiejar.LWPCookieJar()
+ # HACK: cookiejar module insists on using filenames and reading files for you,
+ # so present a StringIO to this internal method which takes a filelike object
+ cookiejar._really_load(io.StringIO(lwp_str), "", False, False)
+ return cookiejar
+
+def account_cookiejar(channel_id):
+ return cookiejar_from_lwp_str('\n'.join(accounts[channel_id]['cookies']))
+
+def _add_account(username, password, save, use_tor):
cookiejar = http.cookiejar.LWPCookieJar()
result = _login(username, password, cookiejar, use_tor)
if isinstance(result, dict):
@@ -40,16 +51,24 @@ def add_account(username, password, save, use_tor):
return True
return False
-def cookiejar_from_lwp_str(lwp_str):
- lwp_str = "#LWP-Cookies-2.0\n" + lwp_str # header required by _really_load for reading from "file"
- cookiejar = http.cookiejar.LWPCookieJar()
- # HACK: cookiejar module insists on using filenames and reading files for you,
- # so present a StringIO to this internal method which takes a filelike object
- cookiejar._really_load(io.StringIO(lwp_str), "", False, False)
- return cookiejar
+def add_account(env, start_response):
+ fields = env['fields']
+ if 'save' in fields and fields['save'][0] == "on":
+ save_account = True
+ else:
+ save_account = False
-def account_cookiejar(channel_id):
- return cookiejar_from_lwp_str('\n'.join(accounts[channel_id]['cookies']))
+ if 'use_tor' in fields and fields['use_tor'][0] == "on":
+ use_tor = True
+ else:
+ use_tor = False
+
+ if _add_account(fields['username'][0], fields['password'][0], save_account, use_tor ):
+ start_response('200 OK', () )
+ return b'Account successfully added'
+ else:
+ start_response('200 OK', () )
+ return b'Failed to add account'
def get_account_login_page(env, start_response):
start_response('200 OK', [('Content-type','text/html'),] )
diff --git a/youtube/youtube.py b/youtube/youtube.py
index e22ef52..b9632c6 100644
--- a/youtube/youtube.py
+++ b/youtube/youtube.py
@@ -20,8 +20,7 @@ get_handlers = {
}
post_handlers = {
'edit_playlist': local_playlist.edit_playlist,
-
-
+ 'login': accounts.add_account,
}
def youtube(env, start_response):
@@ -132,24 +131,6 @@ def youtube(env, start_response):
else:
start_response('303 See Other', (('Location', common.URL_ORIGIN + '/comment_delete_fail'),) )
- elif path == "/login":
- if 'save' in fields and fields['save'][0] == "on":
- save_account = True
- else:
- save_account = False
-
- if 'use_tor' in fields and fields['use_tor'][0] == "on":
- use_tor = True
- else:
- use_tor = False
-
- if accounts.add_account(fields['username'][0], fields['password'][0], save_account, use_tor ):
- start_response('200 OK', () )
- return b'Account successfully added'
- else:
- start_response('200 OK', () )
- return b'Failed to add account'
-
else:
start_response('404 Not Found', ())
return b'404 Not Found'