May 15, 2020
О боте
Устройство
Модели
В боте всего 2 модели, это User
и Data
.
from peewee import * import uuid import datetime db = SqliteDatabase('db.db') class BaseModel(Model): class Meta: database = db
- User - модель пользователя
class User(BaseModel): user_id = IntegerField(unique=True) username = CharField(default=False) firstname = CharField(default=False) lastname = CharField(default=False) registerdate = DateField(default=datetime.datetime.now) uuid = UUIDField(primary_key=True, default=uuid.uuid4) action = TextField(default=False) tmp = TextField(default=False)
- Data - модель Блока
class Data(BaseModel): user = ForeignKeyField(User) name = TextField() data = TextField() login = TextField(default=False) other = TextField(default=False) uuid = UUIDField(primarykey=True, default=uuid.uuid4) creationdate = DateField(default=datetime.datetime.now) salt = TextField() db.connect() db.create_tables([User, Data])
Шифрование
Шифрование посредством AES
и обрезанный до 32-ух символов PBKDF2
хэш пароля пользователя в качестве ключа шифровки.
Телеграм
Соединение с телеграмом по https соеднению средствами модуля pytelegrambotapi
Пользователь - Шифрование (MTproto) - Телеграм - https - Сервер - AES
В будущем планируется сделать так:
Пользователь - Шифрование (MTproto) - Телеграм - Шифрование (MTproto)- Сервер - AES
Что гораздо надёжнее, и не допускает утечку с нашей стороны. (Хотя SSL тоже надёжен)
Код
Доступен по ссылке.
Для запуска создайте файл cfg.txt и заполните его так
{"token": "[ВАШ ТОКЕН БОТА, МОЖНО ВЗЯТЬ У @botfather]", "id": [ВАШ ID, МОЖНО ВЗЯТЬ У @userinfobot]}
Затем
python bot.py