Нормальное решение. Сложно представить сценарий, когда пользователи требуют от бота старые файлы..
Хотя, если это какой-нибудь сервис, суть которого в хранении файлов.. 😁
А то у меня бот только так и работает с файлами
У меня тут всё переполнится
Пока планирую через крон таску очищать файлы старые (от 3 дня назад допустим) надеясь что пользователь к нему не вернется
Всем спасибо за помощь, Очень помогли (их за критики начал внимательнее смотреть чтобы убедиться что вот всё точно проверил и не понял почему так и вот и нашёл)
Читать полностью…Я вот так создаю таблицу трек-кодов:
async def create_track_codes_table():
async with connect("database.db") as db:
await db.execute("""
CREATE TABLE IF NOT EXISTS track_codes (
id INTEGER PRIMARY KEY AUTOINCREMENT,
track_code VARCHAR UNIQUE,
status VARCHAR,
tg_id INTEGER
)
""")
await db.commit()
async def check_or_add_track_code(track_code: str, tg_id: int):
async with connect("database.db") as db:
db.row_factory = Row
async with db.execute("SELECT * FROM track_codes WHERE track_code = ?", (track_code,)) as cursor:
row = await cursor.fetchone()
if row:
return row["status"]
else:
await db.execute("""
INSERT INTO track_codes (track_code, status, tg_id)
VALUES (?, ?, ?)
""", (track_code, "out_of_stock", tg_id))
await db.commit()
return "out_of_stock"
async def add_track_codes_list(track_codes: list[str], status: str = "in_stock"):
async with connect("database.db") as db:
for track in track_codes:
await db.execute("""
INSERT INTO track_codes (track_code, status, tg_id)
VALUES (?, ?, NULL)
ON CONFLICT(track_code) DO UPDATE SET status=excluded.status
""", (track, status))
await db.commit()
UNIQUE
, то на том записи просто меняется status
и всё. tg_id
с NULL
меняется на телеграм id пользователя
Читать полностью…
ти можеш робити необхідну кількість переходів на наступний рядок всередині мовних конструкцій і воно шарить де це перехід на наступний рядок всередині мовної конструкції, а де це перехід між конструкціями
ніяких проблем не виникає
сейчас и придумали эти питоны ваши, потому что раньше ставили ; и номера строк писали
Читать полностью…створювати "сучасну" мову де треба ставити крапку з комою це якась хєрня)
не говорячи про конструкції вигляду
std.ArrayList(u32).init(ally)
Привет!
Всё верно. Если ты запускаешь Local Bot API Server
, то все файлы, которые получает твой бот, будут храниться у тебя, а не в телеге.
Привет всем
Хочу запустить телеграм бот сервер локально
Я так понял она будет хранить файлы от пользователей, да и вообще все локально на компе у меня
Это можно очищать со временем ? Или как вы с этим работаете
Но вот этого почему-то не происходит, то есть когда пользователь ищет свой трек номер и он уже в базе, там инфа в tg_id не меняется
Читать полностью…з 74 і по 76 включно це буквально одна мовна конструкція
як бачиш тут немає крапок з комою але і не треба розпідарашувати рядок на 200 символів в довжину як ти собі уявляв)
в пітоні як і в багатьох інших сучасних мовах є 2 варіанти: крапка з комою(опціонально) або перехід на наступний рядок (символ каретки)
так, ліпше як в пітоні)