implemented sqlite database backend
This commit is contained in:
parent
8da224ddf9
commit
af9a8eb81b
2 changed files with 47 additions and 3 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -3,3 +3,5 @@
|
|||
backup
|
||||
uploadTest
|
||||
torrentFiles/*
|
||||
torrentdb.sqlite
|
||||
torrentdb.sql
|
||||
|
|
48
indexer.py
48
indexer.py
|
@ -1,6 +1,6 @@
|
|||
#!/usr/bin/python3
|
||||
#/* vim:set ts=2 set noexpandtab */
|
||||
import json, uuid, hashlib
|
||||
import json, uuid, hashlib, sqlite3, base64
|
||||
from flask import Flask, render_template, url_for, request
|
||||
from werkzeug import secure_filename
|
||||
app = Flask(__name__)
|
||||
|
@ -38,6 +38,15 @@ def init():
|
|||
|
||||
with open("settings.json") as settingsJson:
|
||||
settings = json.load(settingsJson)
|
||||
initDb()
|
||||
|
||||
def initDb():
|
||||
connection = sqlite3.connect("torrentdb.sqlite")
|
||||
c = connection.cursor()
|
||||
c.execute('CREATE TABLE IF NOT EXISTS torrents (fileid TEXT PRIMARY KEY NOT NULL, name TEXT NOT NULL, category TEXT NOT NULL, subcategory TEXT NOT NULL, description TEXT NOT NULL);')
|
||||
c.execute('CREATE TABLE IF NOT EXISTS language_mapping (fileid TEXT NOT NULL, language TEXT NOT NULL);')
|
||||
connection.commit()
|
||||
connection.close()
|
||||
|
||||
def getLocalString(language, descriptor):
|
||||
global strings
|
||||
|
@ -63,8 +72,41 @@ def createNewTorrent(reuqest):
|
|||
print( "Category: " + request.form["category"] )
|
||||
print( "Subcategory: " + request.form["subcategory"] )
|
||||
print( "Description: " + request.form["description"] )
|
||||
# TODO: Process inputdate from the form and save it to the (until now) non-existing DB
|
||||
return ["Error1", "Error2"]
|
||||
|
||||
#TODO: Validate the input serverside before writing it to the database
|
||||
name = request.form["name"]
|
||||
category = request.form["category"]
|
||||
subcategory = request.form["subcategory"]
|
||||
description = request.form["description"]
|
||||
languages = []
|
||||
newTFile = TorrentFile(safeFilename, name, category, subcategory, description, languages)
|
||||
connection = sqlite3.connect("torrentdb.sqlite")
|
||||
newTFile.writeToDb(connection.cursor())
|
||||
connection.commit()
|
||||
connection.close()
|
||||
return ["Error1"]
|
||||
|
||||
class TorrentFile():
|
||||
fileid = None
|
||||
name = None
|
||||
category = None
|
||||
subcategory = None
|
||||
description = None
|
||||
languages = []
|
||||
def __init__(self, fileid=fileid, name=name, category=category, subcategory=subcategory, description=description, languages=languages):
|
||||
self.fileid = fileid
|
||||
self.name = name
|
||||
self.category = category
|
||||
self.subcategory = subcategory
|
||||
self.description = description
|
||||
self.languages = languages
|
||||
|
||||
def writeToDb(self, cursor):
|
||||
c = cursor
|
||||
b64description = base64.b64encode(self.description.encode())
|
||||
c.execute("INSERT INTO torrents(fileid, name, category, subcategory, description) VALUES(:fileid, :name, :category, :subcategory, :description)", { 'fileid' : self.fileid, 'name' : self.name, 'category' : self.category, 'subcategory' : self.subcategory, 'description' : b64description })
|
||||
for language in self.languages:
|
||||
c.execute("INSERT INTO language_mapping(fileid, language)", { "fileid" : self.fileid, "language" : language })
|
||||
|
||||
if __name__ == "__main__":
|
||||
init()
|
||||
|
|
Loading…
Reference in a new issue