mirror of
https://github.com/tiyn/stud.ip-crawler.git
synced 2025-04-07 18:37:47 +02:00
The log has options for several levels that can be set from the command line. The file is hardcoded as log.txt and can be toggled
65 lines
1.8 KiB
Python
Executable File
65 lines
1.8 KiB
Python
Executable File
import time
|
|
import logging as log
|
|
|
|
import pymysql
|
|
|
|
|
|
class Database:
|
|
|
|
def __init__(self, host, port, name, user, passwd, reset_dl):
|
|
self.HOST = host
|
|
self.PORT = port
|
|
self.NAME = name
|
|
self.USER = user
|
|
self.PASSWD = passwd
|
|
self.RESET_DL = reset_dl
|
|
self.TABLE_FILE = 'files'
|
|
self.setup_db()
|
|
|
|
def connect(self):
|
|
return pymysql.connect(
|
|
host=self.HOST,
|
|
port=self.PORT,
|
|
user=self.USER,
|
|
password=self.PASSWD,
|
|
charset='utf8mb4',
|
|
cursorclass=pymysql.cursors.DictCursor
|
|
)
|
|
|
|
def setup_db(self):
|
|
db = self.connect()
|
|
crs = db.cursor()
|
|
sql_query = "CREATE DATABASE IF NOT EXISTS " + self.NAME
|
|
crs.execute(sql_query)
|
|
db.select_db(self.NAME)
|
|
query = "CREATE TABLE IF NOT EXISTS " + self.TABLE_FILE + \
|
|
"(id CHAR(32) NOT NULL," + \
|
|
"ch_date INT(11) NOT NULL," + \
|
|
"PRIMARY KEY(id))"
|
|
crs.execute(query)
|
|
log.debug(db)
|
|
|
|
def set_last_file_dl(self, file_id, time):
|
|
db = self.connect()
|
|
db.select_db(self.NAME)
|
|
crs = db.cursor()
|
|
log.debug('file: ' + file_id + ' time: ' + time)
|
|
query = "INSERT INTO " + self.TABLE_FILE + "(`id`,`ch_date`)" + \
|
|
"VALUES ('" + file_id + "','" + time + "')" + \
|
|
"ON DUPLICATE KEY UPDATE `ch_date` = '" + time + "'"
|
|
crs.execute(query)
|
|
db.commit()
|
|
|
|
def get_last_file_dl(self, file_id):
|
|
if self.RESET_DL:
|
|
return None
|
|
db = self.connect()
|
|
db.select_db(self.NAME)
|
|
crs = db.cursor()
|
|
query = "SELECT ch_date FROM files WHERE id ='" + file_id + "'"
|
|
crs.execute(query)
|
|
res = crs.fetchone()
|
|
if res != None:
|
|
return res['ch_date']
|
|
return None
|