Files
Solo_bot/database/site_revision.py
T

33 lines
901 B
Python

from sqlalchemy import select
from sqlalchemy.ext.asyncio import AsyncSession
from database.models import Setting
_KEY = "CONTENT_REVISION"
async def get_site_revision(session: AsyncSession) -> int:
result = await session.execute(select(Setting).where(Setting.key == _KEY))
setting = result.scalar_one_or_none()
if setting is None:
return 0
try:
return int(setting.value or 0)
except (TypeError, ValueError):
return 0
async def bump_site_revision(session: AsyncSession) -> int:
result = await session.execute(select(Setting).where(Setting.key == _KEY))
setting = result.scalar_one_or_none()
if setting is None:
session.add(Setting(key=_KEY, value=1))
return 1
try:
current = int(setting.value or 0)
except (TypeError, ValueError):
current = 0
setting.value = current + 1
return current + 1