artist / sql.py
ghuron's picture
v3.1
5ae2f1d
Raw
History Blame Contribute Delete
992 Bytes
import sqlite3 as sq
import threading
thread_local = threading.local()
def get_connection():
if not hasattr(thread_local, "connection"):
thread_local.connection = sq.connect('dataset/astro.sql')
return thread_local.connection
def get_cursor():
if not hasattr(thread_local, "cursor"):
thread_local.cursor = get_connection().cursor()
return thread_local.cursor
def get_article(index:int):
cur = get_cursor()
cur.execute(f'SELECT id, title, abstract, strftime("%Y-%m-%d", date) FROM astro WHERE "index" = {index}')
return cur.fetchone()
def get_index_articles(i_year, f_year):
cur = get_cursor()
cur.execute(f'SELECT "index" FROM astro WHERE date BETWEEN "{i_year}-01-01" AND "{f_year}-12-31";')
return cur.fetchall()
def year_range():
cur = get_cursor()
cur.execute("SELECT strftime('%Y', MIN(date)), strftime('%Y', MAX(date)) FROM astro;")
return [int(year) for year in cur.fetchone()]