12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- import datetime
- from sql.db import DB
- from tool.typing import *
- from tool.string import mysql_str
- def write_news(text, uid: uid_t, db: DB):
- text = mysql_str(text)
- cur = db.insert(table="context",
- columns=["Context", "Author"],
- values=f"'{text}', '{uid}'")
- if cur is None:
- return False
- assert cur.rowcount == 1
- return True
- def get_news(db: DB, limit: Optional[int] = None, offset: Optional[int] = None):
- cur = db.search(columns=["ContextID", "Context", "Name", "Time"],
- table="context_user",
- limit=limit,
- offset=offset,
- order_by=[("Time", "DESC")])
- if cur is None:
- return False, None
- res = []
- for i in range(cur.rowcount):
- re = cur.fetchone()
- time: datetime.datetime = re[3]
- res.append((re[0], re[1], re[2], time.strftime("%Y-%m-%d %H:%M")))
- return True, res
- def get_news_count(db: DB):
- cur = db.search(columns=["count(ContextID)"], table="context_user")
- if cur is None:
- return 0
- assert cur.rowcount == 1
- return int(cur.fetchone()[0])
- def delete_news(context_id: str, db: DB):
- cur = db.delete(table="context",
- where=f"ContextID={context_id}")
- if cur is None or cur.rowcount == 0:
- return False
- assert cur.rowcount == 1
- return True
|