Files
chanbans/chanbans/db.py
2023-07-25 16:42:24 -07:00

64 lines
1.4 KiB
Python

import sqlite3
from typing import Optional
DB_PATH = "bans.db"
def get_db(db_path: str = DB_PATH):
db = sqlite3.connect(db_path)
# ensure that the database exists
db.executescript(
"""
create table if not exists bans(
id integer primary key,
action varchar(5),
board varchar(10),
length varchar(10),
now varchar(30),
name varchar(100),
trip varchar(30),
com text,
time varchar(30),
sub varchar(100),
nsfw boolean,
thumb varchar(100),
ext varchar(10),
w int,
h int,
tn_w int,
tn_h int,
md5 varchar(100),
fsize integer,
filename text,
tim varchar(30),
thumb_path text,
reason varchar(200)
);
"""
)
def dict_factory(cursor, row):
d = {}
for idx, col in enumerate(cursor.description):
d[col[0]] = row[idx]
return d
db.row_factory = dict_factory
return db
def search_db(
board: Optional[str] = None,
reason: Optional[str] = None,
name: Optional[str] = None,
com: Optional[str] = None,
sub: Optional[str] = None,
time_before: int = 0,
time_after: int = 0,
md5: Optional[str] = None,
):
query = """
SELECT action, board, length, post, thumb_path, reason
"""