Skip to content
Snippets Groups Projects
Commit 30a210b6 authored by Julian Rother's avatar Julian Rother
Browse files

Added sqlite support and made query compatible

parent db535aca
No related branches found
No related tags found
No related merge requests found
#!/bin/python #!/bin/python
from flask import Flask, render_template, g from flask import Flask, render_template, g
import mysql.connector import mysql.connector
import sqlite3
import config import config
app = Flask(__name__) app = Flask(__name__)
# Row wrapper for sqlite
def dict_factory(cursor, row):
d = {}
for idx, col in enumerate(cursor.description):
if type(row[idx]) == str:
d[col[0].split('.')[-1]] = row[idx].replace('\\n','\n')
else:
d[col[0].split('.')[-1]] = row[idx]
return d
def query(operation, *params): def query(operation, *params):
if config.db_engine == 'mysql':
if 'db' not in g or not g.db.is_connected(): if 'db' not in g or not g.db.is_connected():
g.db = mysql.connector.connect(user=config.db_user, password=config.db_passwd, host=config.db_host, database=config.db_db) g.db = mysql.connector.connect(user=config.db_user, password=config.db_passwd, host=config.db_host, database=config.db_db)
cur = g.db.cursor(dictionary=True) cur = g.db.cursor(dictionary=True)
cur.execute(operation.replace('?', '%s'), params)
return cur.fetchall()
else:
if 'db' not in g or not g.db.is_connected():
g.db = sqlite3.connect(config.db_file)
g.db.row_factory = dict_factory
cur = g.db.cursor()
cur.execute(operation, params) cur.execute(operation, params)
return cur.fetchall() return cur.fetchall()
...@@ -19,8 +38,7 @@ def index(): ...@@ -19,8 +38,7 @@ def index():
FROM lectures FROM lectures
LEFT JOIN videos ON (videos.lecture_id = lectures.id) LEFT JOIN videos ON (videos.lecture_id = lectures.id)
LEFT JOIN courses on (courses.id = lectures.course_id) LEFT JOIN courses on (courses.id = lectures.course_id)
WHERE (videos.time_updated >= SUBDATE(NOW(), 14)) WHERE (? OR (courses.visible AND courses.listed AND lectures.visible AND videos.visible))
AND (%s OR (courses.visible AND courses.listed AND lectures.visible AND videos.visible))
GROUP BY videos.lecture_id GROUP BY videos.lecture_id
ORDER BY lastvidtime DESC ORDER BY lastvidtime DESC
LIMIT 5 LIMIT 5
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment