From 7dd22d74af90de2d8ca086e8ed920234699aa2f1 Mon Sep 17 00:00:00 2001 From: printfuck Date: Thu, 16 Apr 2020 10:33:46 +0200 Subject: [PATCH] flask config untested, likely not working --- main.py | 67 +++++++++++++++++++++++++++++++++++++++++++++++---------- web.py | 56 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 112 insertions(+), 11 deletions(-) create mode 100644 web.py diff --git a/main.py b/main.py index 057d8f7..79382f9 100755 --- a/main.py +++ b/main.py @@ -13,6 +13,8 @@ from cssselect import HTMLTranslator, SelectorError import requests as req from io import StringIO +import web + DB_HOST = "127.0.0.1" DB_USER = "dbuser" DB_PASSWD = "dbpasswd" @@ -193,15 +195,15 @@ class lf: def init_from_db(self): # Assumes it works - self.url = self.query_db(self.db, "url") - self.password = self.query_db(self.db, "password") - self.username = self.query_db(self.db, "username") - self.selector = self.query_db(self.db, "selector") - self.selector_login_user = self.query_db(self.db, "selector_login_user") - self.selector_login_pass = self.query_db(self.db, "selector_login_pass") - self.selector_login_verify = self.query_db(self.db, "selector_login_verify") - self.selector_login_url = self.query_db(self.db, "selector_login_url") - self.selector_login_verify_url = self.query_db(self.db, "selector_login_verify_url") + self.url = self.query_db("url") + self.password = self.query_db("password") + self.username = self.query_db("username") + self.selector = self.query_db("selector") + self.selector_login_user = self.query_db("selector_login_user") + self.selector_login_pass = self.query_db("selector_login_pass") + self.selector_login_verify = self.query_db("selector_login_verify") + self.selector_login_url = self.query_db("selector_login_url") + self.selector_login_verify_url = self.query_db("selector_login_verify_url") def init_from_scratch( self, @@ -226,8 +228,8 @@ class lf: self.selector_login_url = selector_login_url self.selector_login_verify_url = selector_login_verify_url - def query_db(self, db, string): - cursor = db.cursor() + def query_db(self, string): + cursor = self.db.cursor() cursor.execute(""" SELECT {} FROM feeds WHERE name = '{}' @@ -239,6 +241,49 @@ class lf: return result else: return "" + + def query_db(self, string, value): + cursor = self.db.cursor() + cursor.execute(""" + UPDATE SET {}='{}' FROM feeds + WHERE name = '{}' + """.format(string,value,self.name) + ) + cursor.close() + + + def write_db(self): + cursor = self.db.cursor() + cursor.execute("SELECT id FROM feeds WHERE name = '{}'".format(self.name)) + if cursor.fetchone() is None: + cursor.execute(""" + INSERT INTO {} (name, url, password, username, + selector, selector_login_user,selector_login_pass, + selector_login_verify,selector_login_url, + selector_login_verify_url) + VALUES ({},{},{},{},{},{},{},{},{},{},{}) + """.format( + "feeds",self.name,self.url,self.password, + self.username,self.selector, + self.selector_login_user,self.selector_login_pass, + self.selector_login_verify,self.selector_login_url + self.selector_login_verify_url) + ) + else: + cursor.execute(""" + UPDATE feeds SET url = '{}', password = '{}', username = '{}', + selector = '{}', selector_login_user = '{}',selector_login_pass = '{}', + selector_login_verify = '{}',selector_login_url = '{}', + selector_login_verify_url = '{}') + VALUES ({},{},{},{},{},{},{},{},{}) + """.format( + self.url,self.password, + self.username,self.selector, + self.selector_login_user,self.selector_login_pass, + self.selector_login_verify,self.selector_login_url + self.selector_login_verify_url) + ) + diff --git a/web.py b/web.py new file mode 100644 index 0000000..a81ee27 --- /dev/null +++ b/web.py @@ -0,0 +1,56 @@ +#!/usr/bin/python +# + +import main + +from flask import Flask,request +app = Flask(__name__) + + +def run_flask(host,port) + app.run(host=host, port=port) + +def getFeeds(db): + db = getDb() + cursor = db.cursor() + cusror.execute(''' + SELECT name FROM feeds + ''') + feeds = cursor.fetchall() + cursor.close() + return feeds + +@app.route('/') +def list() + feeds = getFeeds() + a = "

Header


" + for i in feeds: + a+= "".format(i,i) + a+= "
Feeds
{}
" + return a + +@app.route('/configure', methods = ['GET','POST']) +def configure(feed_name): + db = getDb() + feed = lf(db, feed_name) + if request.method == 'POST': + for k,v in request.form.items(): + feed.query_db(k,v) + + config_list = ( + "url", + "password", + "username", + "selector", + "selector_login_user", + "selector_login_pass", + "selector_login_verify", + "selector_login_verify_url", + "selector_login_url") + a = '
' + for i in config_list: + a += ''' +
+ + '''.format(i,i,feed.query_db(i),i) + a += "