47 lines
1.2 KiB
Python
47 lines
1.2 KiB
Python
from model import *
|
|
from datetime import datetime
|
|
|
|
def add_article(content, source="manual_input", level="5", question="No question"):
|
|
with db_session:
|
|
# add one article to sqlite
|
|
Article(
|
|
text=content,
|
|
source=source,
|
|
date=datetime.now().strftime("%-d %b %Y"), # format style of `5 Oct 2022`
|
|
level=level,
|
|
question=question,
|
|
)
|
|
|
|
|
|
def delete_article_by_id(article_id):
|
|
article_id &= 0xFFFFFFFF # max 32 bits
|
|
with db_session:
|
|
article = Article.select(article_id=article_id)
|
|
if article:
|
|
article.first().delete()
|
|
|
|
|
|
def get_number_of_articles():
|
|
with db_session:
|
|
return len(Article.select()[:])
|
|
|
|
|
|
def get_page_articles(num, size):
|
|
with db_session:
|
|
return [
|
|
x
|
|
for x in Article.select().order_by(desc(Article.article_id)).page(num, size)
|
|
]
|
|
|
|
|
|
def get_article_by_id(article_id):
|
|
article_id &= 0xFFFFFFFF # max 32 bits
|
|
with db_session:
|
|
article = Article.select(article_id=article_id).first()
|
|
if article:
|
|
return article.to_dict()
|
|
|
|
|
|
def get_all_articles():
|
|
with db_session:
|
|
return [art.to_dict() for art in Article.select()[:]] |