mirror of
https://github.com/EDeev/npr_meteobot.git
synced 2026-10-07 20:49:33 +03:00
Токен из окружения, база создаётся сама
- токен бота — из BOT_TOKEN, а не из config.py; - sub.db (с идентификатором подписчика) убран из git: SQLighter создаёт таблицы и служебные строки из schema.sql, если базы нет.
This commit is contained in:
parent
be4411e269
commit
f223570bab
5 changed files with 35 additions and 2 deletions
5
.gitignore
vendored
Normal file
5
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
__pycache__/
|
||||
*.py[cod]
|
||||
.venv/
|
||||
.env
|
||||
*.db
|
||||
|
|
@ -1,5 +1,7 @@
|
|||
API_TOKEN = 'token from BotFather' # ОСНОВНОЙ
|
||||
# API_TOKEN = 'token from BotFather' # ТЕСТЫ
|
||||
import os
|
||||
|
||||
# Токен бота от @BotFather — из переменной окружения BOT_TOKEN
|
||||
API_TOKEN = os.environ.get('BOT_TOKEN', '')
|
||||
|
||||
CITY = {'Центральный район': [1, 'Норильск'], 'район Талнах': [2, 'Талнах'],
|
||||
'ж/о Оганер': [3, 'Оганер'], 'район Кайеркан': [4, 'Кайеркан']}
|
||||
|
|
|
|||
15
schema.sql
Normal file
15
schema.sql
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
-- Схема базы бота и служебные строки, которые он ожидает (подписчиков нет)
|
||||
CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY AUTOINCREMENT, id_user VARCHAR (255) NOT NULL,
|
||||
rating INTEGER (4) NOT NULL DEFAULT (0), status BOOLEAN NOT NULL DEFAULT (False),
|
||||
send BOOLEAN NOT NULL DEFAULT (True), part INTEGER (1) NOT NULL, city INTEGER (1) NOT NULL);
|
||||
CREATE TABLE IF NOT EXISTS parts (part INTEGER PRIMARY KEY AUTOINCREMENT, nor VARCHAR (3), tal VARCHAR (3),
|
||||
oga VARCHAR (3), kae VARCHAR (3));
|
||||
CREATE TABLE IF NOT EXISTS weather (id STRING, "1" VARCHAR, "4" VARCHAR, "7" VARCHAR, "10" VARCHAR,
|
||||
"13" VARCHAR, "16" VARCHAR, "19" VARCHAR, "22" VARCHAR);
|
||||
CREATE TABLE IF NOT EXISTS data (id INTEGER PRIMARY KEY AUTOINCREMENT, date DATE NOT NULL, part INTEGER (2) NOT NULL,
|
||||
weath STRING);
|
||||
|
||||
INSERT INTO parts (part, nor, tal, oga, kae) VALUES (1, '11', '11', '11', '11'), (2, '11', '11', '11', '11');
|
||||
INSERT INTO weather (id) VALUES (' '), ('tomorrow'), ('3-day'), ('4-day'), ('5-day'), ('6-day'), ('7-day'),
|
||||
('8-day'), ('9-day'), ('10-day');
|
||||
INSERT INTO data (id, date, part) VALUES (1, '2022-02-24', 1);
|
||||
11
sql.py
11
sql.py
|
|
@ -1,11 +1,22 @@
|
|||
import os
|
||||
import sqlite3
|
||||
|
||||
SCHEMA = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'schema.sql')
|
||||
|
||||
|
||||
class SQLighter:
|
||||
def __init__(self, database):
|
||||
"""Подключаемся к БД и сохраняем курсор соединения"""
|
||||
self.connection = sqlite3.connect(database)
|
||||
self.cursor = self.connection.cursor()
|
||||
self._create_if_empty()
|
||||
|
||||
def _create_if_empty(self):
|
||||
"""Новая база: создаём таблицы и служебные строки из schema.sql"""
|
||||
exists = self.cursor.execute("SELECT name FROM sqlite_master WHERE type = 'table' AND name = 'users'").fetchone()
|
||||
if not exists:
|
||||
with open(SCHEMA, encoding='utf-8') as f:
|
||||
self.connection.executescript(f.read())
|
||||
|
||||
def user_exists(self, id_user):
|
||||
"""Проверяем, есть ли уже пользователь в базе"""
|
||||
|
|
|
|||
BIN
sub.db
BIN
sub.db
Binary file not shown.
Loading…
Add table
Reference in a new issue