mirror of
https://github.com/Llloooggg/TextSouls.git
synced 2026-03-05 20:16:23 +03:00
backend + telegram: добавлено поле chat_id у пользователя
This commit is contained in:
@@ -1,128 +0,0 @@
|
|||||||
"""empty message
|
|
||||||
|
|
||||||
Revision ID: 231e5697b63e
|
|
||||||
Revises: 57b47e18fdab
|
|
||||||
Create Date: 2022-11-19 21:56:35.469495
|
|
||||||
|
|
||||||
"""
|
|
||||||
from alembic import op
|
|
||||||
import sqlalchemy as sa
|
|
||||||
from sqlalchemy.dialects import mysql
|
|
||||||
|
|
||||||
# revision identifiers, used by Alembic.
|
|
||||||
revision = '231e5697b63e'
|
|
||||||
down_revision = '57b47e18fdab'
|
|
||||||
branch_labels = None
|
|
||||||
depends_on = None
|
|
||||||
|
|
||||||
|
|
||||||
def upgrade():
|
|
||||||
# ### commands auto generated by Alembic - please adjust! ###
|
|
||||||
with op.batch_alter_table('character_classes', schema=None) as batch_op:
|
|
||||||
batch_op.alter_column('endurance_koef',
|
|
||||||
existing_type=mysql.FLOAT(),
|
|
||||||
nullable=False)
|
|
||||||
batch_op.alter_column('strength_koef',
|
|
||||||
existing_type=mysql.FLOAT(),
|
|
||||||
nullable=False)
|
|
||||||
batch_op.alter_column('agility_koef',
|
|
||||||
existing_type=mysql.FLOAT(),
|
|
||||||
nullable=False)
|
|
||||||
batch_op.alter_column('defence_koef',
|
|
||||||
existing_type=mysql.FLOAT(),
|
|
||||||
nullable=False)
|
|
||||||
batch_op.alter_column('wisdom_koef',
|
|
||||||
existing_type=mysql.FLOAT(),
|
|
||||||
nullable=False)
|
|
||||||
|
|
||||||
with op.batch_alter_table('character_races', schema=None) as batch_op:
|
|
||||||
batch_op.alter_column('endurance_koef',
|
|
||||||
existing_type=mysql.FLOAT(),
|
|
||||||
nullable=False)
|
|
||||||
batch_op.alter_column('strength_koef',
|
|
||||||
existing_type=mysql.FLOAT(),
|
|
||||||
nullable=False)
|
|
||||||
batch_op.alter_column('agility_koef',
|
|
||||||
existing_type=mysql.FLOAT(),
|
|
||||||
nullable=False)
|
|
||||||
batch_op.alter_column('defence_koef',
|
|
||||||
existing_type=mysql.FLOAT(),
|
|
||||||
nullable=False)
|
|
||||||
batch_op.alter_column('wisdom_koef',
|
|
||||||
existing_type=mysql.FLOAT(),
|
|
||||||
nullable=False)
|
|
||||||
|
|
||||||
with op.batch_alter_table('characters', schema=None) as batch_op:
|
|
||||||
batch_op.alter_column('endurance_base',
|
|
||||||
existing_type=mysql.INTEGER(),
|
|
||||||
nullable=False)
|
|
||||||
batch_op.alter_column('strength_base',
|
|
||||||
existing_type=mysql.INTEGER(),
|
|
||||||
nullable=False)
|
|
||||||
batch_op.alter_column('agility_base',
|
|
||||||
existing_type=mysql.INTEGER(),
|
|
||||||
nullable=False)
|
|
||||||
batch_op.alter_column('defence_base',
|
|
||||||
existing_type=mysql.INTEGER(),
|
|
||||||
nullable=False)
|
|
||||||
batch_op.alter_column('wisdom_base',
|
|
||||||
existing_type=mysql.INTEGER(),
|
|
||||||
nullable=False)
|
|
||||||
|
|
||||||
# ### end Alembic commands ###
|
|
||||||
|
|
||||||
|
|
||||||
def downgrade():
|
|
||||||
# ### commands auto generated by Alembic - please adjust! ###
|
|
||||||
with op.batch_alter_table('characters', schema=None) as batch_op:
|
|
||||||
batch_op.alter_column('wisdom_base',
|
|
||||||
existing_type=mysql.INTEGER(),
|
|
||||||
nullable=True)
|
|
||||||
batch_op.alter_column('defence_base',
|
|
||||||
existing_type=mysql.INTEGER(),
|
|
||||||
nullable=True)
|
|
||||||
batch_op.alter_column('agility_base',
|
|
||||||
existing_type=mysql.INTEGER(),
|
|
||||||
nullable=True)
|
|
||||||
batch_op.alter_column('strength_base',
|
|
||||||
existing_type=mysql.INTEGER(),
|
|
||||||
nullable=True)
|
|
||||||
batch_op.alter_column('endurance_base',
|
|
||||||
existing_type=mysql.INTEGER(),
|
|
||||||
nullable=True)
|
|
||||||
|
|
||||||
with op.batch_alter_table('character_races', schema=None) as batch_op:
|
|
||||||
batch_op.alter_column('wisdom_koef',
|
|
||||||
existing_type=mysql.FLOAT(),
|
|
||||||
nullable=True)
|
|
||||||
batch_op.alter_column('defence_koef',
|
|
||||||
existing_type=mysql.FLOAT(),
|
|
||||||
nullable=True)
|
|
||||||
batch_op.alter_column('agility_koef',
|
|
||||||
existing_type=mysql.FLOAT(),
|
|
||||||
nullable=True)
|
|
||||||
batch_op.alter_column('strength_koef',
|
|
||||||
existing_type=mysql.FLOAT(),
|
|
||||||
nullable=True)
|
|
||||||
batch_op.alter_column('endurance_koef',
|
|
||||||
existing_type=mysql.FLOAT(),
|
|
||||||
nullable=True)
|
|
||||||
|
|
||||||
with op.batch_alter_table('character_classes', schema=None) as batch_op:
|
|
||||||
batch_op.alter_column('wisdom_koef',
|
|
||||||
existing_type=mysql.FLOAT(),
|
|
||||||
nullable=True)
|
|
||||||
batch_op.alter_column('defence_koef',
|
|
||||||
existing_type=mysql.FLOAT(),
|
|
||||||
nullable=True)
|
|
||||||
batch_op.alter_column('agility_koef',
|
|
||||||
existing_type=mysql.FLOAT(),
|
|
||||||
nullable=True)
|
|
||||||
batch_op.alter_column('strength_koef',
|
|
||||||
existing_type=mysql.FLOAT(),
|
|
||||||
nullable=True)
|
|
||||||
batch_op.alter_column('endurance_koef',
|
|
||||||
existing_type=mysql.FLOAT(),
|
|
||||||
nullable=True)
|
|
||||||
|
|
||||||
# ### end Alembic commands ###
|
|
||||||
@@ -1,68 +0,0 @@
|
|||||||
"""empty message
|
|
||||||
|
|
||||||
Revision ID: 57b47e18fdab
|
|
||||||
Revises: 370968e335df
|
|
||||||
Create Date: 2022-11-19 20:40:22.680225
|
|
||||||
|
|
||||||
"""
|
|
||||||
from alembic import op
|
|
||||||
import sqlalchemy as sa
|
|
||||||
|
|
||||||
|
|
||||||
# revision identifiers, used by Alembic.
|
|
||||||
revision = '57b47e18fdab'
|
|
||||||
down_revision = '370968e335df'
|
|
||||||
branch_labels = None
|
|
||||||
depends_on = None
|
|
||||||
|
|
||||||
|
|
||||||
def upgrade():
|
|
||||||
# ### commands auto generated by Alembic - please adjust! ###
|
|
||||||
with op.batch_alter_table('character_classes', schema=None) as batch_op:
|
|
||||||
batch_op.add_column(sa.Column('endurance_koef', sa.Float(), nullable=True))
|
|
||||||
batch_op.add_column(sa.Column('strength_koef', sa.Float(), nullable=True))
|
|
||||||
batch_op.add_column(sa.Column('agility_koef', sa.Float(), nullable=True))
|
|
||||||
batch_op.add_column(sa.Column('defence_koef', sa.Float(), nullable=True))
|
|
||||||
batch_op.add_column(sa.Column('wisdom_koef', sa.Float(), nullable=True))
|
|
||||||
|
|
||||||
with op.batch_alter_table('character_races', schema=None) as batch_op:
|
|
||||||
batch_op.add_column(sa.Column('endurance_koef', sa.Float(), nullable=True))
|
|
||||||
batch_op.add_column(sa.Column('strength_koef', sa.Float(), nullable=True))
|
|
||||||
batch_op.add_column(sa.Column('agility_koef', sa.Float(), nullable=True))
|
|
||||||
batch_op.add_column(sa.Column('defence_koef', sa.Float(), nullable=True))
|
|
||||||
batch_op.add_column(sa.Column('wisdom_koef', sa.Float(), nullable=True))
|
|
||||||
|
|
||||||
with op.batch_alter_table('characters', schema=None) as batch_op:
|
|
||||||
batch_op.add_column(sa.Column('endurance_base', sa.Integer(), nullable=True))
|
|
||||||
batch_op.add_column(sa.Column('strength_base', sa.Integer(), nullable=True))
|
|
||||||
batch_op.add_column(sa.Column('agility_base', sa.Integer(), nullable=True))
|
|
||||||
batch_op.add_column(sa.Column('defence_base', sa.Integer(), nullable=True))
|
|
||||||
batch_op.add_column(sa.Column('wisdom_base', sa.Integer(), nullable=True))
|
|
||||||
|
|
||||||
# ### end Alembic commands ###
|
|
||||||
|
|
||||||
|
|
||||||
def downgrade():
|
|
||||||
# ### commands auto generated by Alembic - please adjust! ###
|
|
||||||
with op.batch_alter_table('characters', schema=None) as batch_op:
|
|
||||||
batch_op.drop_column('wisdom_base')
|
|
||||||
batch_op.drop_column('defence_base')
|
|
||||||
batch_op.drop_column('agility_base')
|
|
||||||
batch_op.drop_column('strength_base')
|
|
||||||
batch_op.drop_column('endurance_base')
|
|
||||||
|
|
||||||
with op.batch_alter_table('character_races', schema=None) as batch_op:
|
|
||||||
batch_op.drop_column('wisdom_koef')
|
|
||||||
batch_op.drop_column('defence_koef')
|
|
||||||
batch_op.drop_column('agility_koef')
|
|
||||||
batch_op.drop_column('strength_koef')
|
|
||||||
batch_op.drop_column('endurance_koef')
|
|
||||||
|
|
||||||
with op.batch_alter_table('character_classes', schema=None) as batch_op:
|
|
||||||
batch_op.drop_column('wisdom_koef')
|
|
||||||
batch_op.drop_column('defence_koef')
|
|
||||||
batch_op.drop_column('agility_koef')
|
|
||||||
batch_op.drop_column('strength_koef')
|
|
||||||
batch_op.drop_column('endurance_koef')
|
|
||||||
|
|
||||||
# ### end Alembic commands ###
|
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
"""empty message
|
"""empty message
|
||||||
|
|
||||||
Revision ID: 370968e335df
|
Revision ID: c3b392fdf575
|
||||||
Revises:
|
Revises:
|
||||||
Create Date: 2022-11-19 06:44:47.040525
|
Create Date: 2022-11-20 00:31:12.952336
|
||||||
|
|
||||||
"""
|
"""
|
||||||
from alembic import op
|
from alembic import op
|
||||||
@@ -10,7 +10,7 @@ import sqlalchemy as sa
|
|||||||
|
|
||||||
|
|
||||||
# revision identifiers, used by Alembic.
|
# revision identifiers, used by Alembic.
|
||||||
revision = '370968e335df'
|
revision = 'c3b392fdf575'
|
||||||
down_revision = None
|
down_revision = None
|
||||||
branch_labels = None
|
branch_labels = None
|
||||||
depends_on = None
|
depends_on = None
|
||||||
@@ -21,23 +21,35 @@ def upgrade():
|
|||||||
op.create_table('character_classes',
|
op.create_table('character_classes',
|
||||||
sa.Column('id', sa.Integer(), nullable=False),
|
sa.Column('id', sa.Integer(), nullable=False),
|
||||||
sa.Column('name', sa.String(length=255), nullable=True),
|
sa.Column('name', sa.String(length=255), nullable=True),
|
||||||
|
sa.Column('endurance_koef', sa.Float(), nullable=False),
|
||||||
|
sa.Column('strength_koef', sa.Float(), nullable=False),
|
||||||
|
sa.Column('agility_koef', sa.Float(), nullable=False),
|
||||||
|
sa.Column('defence_koef', sa.Float(), nullable=False),
|
||||||
|
sa.Column('wisdom_koef', sa.Float(), nullable=False),
|
||||||
sa.PrimaryKeyConstraint('id'),
|
sa.PrimaryKeyConstraint('id'),
|
||||||
sa.UniqueConstraint('name')
|
sa.UniqueConstraint('name')
|
||||||
)
|
)
|
||||||
op.create_table('character_races',
|
op.create_table('character_races',
|
||||||
sa.Column('id', sa.Integer(), nullable=False),
|
sa.Column('id', sa.Integer(), nullable=False),
|
||||||
sa.Column('name', sa.String(length=255), nullable=True),
|
sa.Column('name', sa.String(length=255), nullable=True),
|
||||||
|
sa.Column('endurance_koef', sa.Float(), nullable=False),
|
||||||
|
sa.Column('strength_koef', sa.Float(), nullable=False),
|
||||||
|
sa.Column('agility_koef', sa.Float(), nullable=False),
|
||||||
|
sa.Column('defence_koef', sa.Float(), nullable=False),
|
||||||
|
sa.Column('wisdom_koef', sa.Float(), nullable=False),
|
||||||
sa.PrimaryKeyConstraint('id'),
|
sa.PrimaryKeyConstraint('id'),
|
||||||
sa.UniqueConstraint('name')
|
sa.UniqueConstraint('name')
|
||||||
)
|
)
|
||||||
op.create_table('users',
|
op.create_table('users',
|
||||||
sa.Column('id', sa.BigInteger(), autoincrement=False, nullable=False),
|
sa.Column('id', sa.BigInteger(), autoincrement=False, nullable=False),
|
||||||
|
sa.Column('chat_id', sa.BigInteger(), nullable=False),
|
||||||
sa.Column('first_name', sa.String(length=255), nullable=True),
|
sa.Column('first_name', sa.String(length=255), nullable=True),
|
||||||
sa.Column('last_name', sa.String(length=255), nullable=True),
|
sa.Column('last_name', sa.String(length=255), nullable=True),
|
||||||
sa.Column('username', sa.String(length=255), nullable=False),
|
sa.Column('username', sa.String(length=255), nullable=False),
|
||||||
sa.Column('registered_on', sa.DateTime(), nullable=False),
|
sa.Column('registered_on', sa.DateTime(), nullable=False),
|
||||||
sa.Column('is_admin', sa.Boolean(), nullable=False),
|
sa.Column('is_admin', sa.Boolean(), nullable=False),
|
||||||
sa.PrimaryKeyConstraint('id')
|
sa.PrimaryKeyConstraint('id'),
|
||||||
|
sa.UniqueConstraint('chat_id')
|
||||||
)
|
)
|
||||||
op.create_table('characters',
|
op.create_table('characters',
|
||||||
sa.Column('id', sa.Integer(), nullable=False),
|
sa.Column('id', sa.Integer(), nullable=False),
|
||||||
@@ -46,6 +58,11 @@ def upgrade():
|
|||||||
sa.Column('character_race', sa.Integer(), nullable=False),
|
sa.Column('character_race', sa.Integer(), nullable=False),
|
||||||
sa.Column('character_class', sa.Integer(), nullable=False),
|
sa.Column('character_class', sa.Integer(), nullable=False),
|
||||||
sa.Column('created_on', sa.DateTime(), nullable=False),
|
sa.Column('created_on', sa.DateTime(), nullable=False),
|
||||||
|
sa.Column('endurance_base', sa.Integer(), nullable=False),
|
||||||
|
sa.Column('strength_base', sa.Integer(), nullable=False),
|
||||||
|
sa.Column('agility_base', sa.Integer(), nullable=False),
|
||||||
|
sa.Column('defence_base', sa.Integer(), nullable=False),
|
||||||
|
sa.Column('wisdom_base', sa.Integer(), nullable=False),
|
||||||
sa.ForeignKeyConstraint(['character_class'], ['character_classes.id'], ondelete='CASCADE'),
|
sa.ForeignKeyConstraint(['character_class'], ['character_classes.id'], ondelete='CASCADE'),
|
||||||
sa.ForeignKeyConstraint(['character_race'], ['character_races.id'], ondelete='CASCADE'),
|
sa.ForeignKeyConstraint(['character_race'], ['character_races.id'], ondelete='CASCADE'),
|
||||||
sa.ForeignKeyConstraint(['owner'], ['users.id'], ondelete='CASCADE'),
|
sa.ForeignKeyConstraint(['owner'], ['users.id'], ondelete='CASCADE'),
|
||||||
@@ -14,6 +14,7 @@ class User(db.Model, SerializerMixin):
|
|||||||
serialize_rules = ("-character",)
|
serialize_rules = ("-character",)
|
||||||
|
|
||||||
id = db.Column(db.BigInteger, primary_key=True, autoincrement=False)
|
id = db.Column(db.BigInteger, primary_key=True, autoincrement=False)
|
||||||
|
chat_id = db.Column(db.BigInteger, nullable=False, unique=True)
|
||||||
first_name = db.Column(db.String(255), nullable=True)
|
first_name = db.Column(db.String(255), nullable=True)
|
||||||
last_name = db.Column(db.String(255), nullable=True)
|
last_name = db.Column(db.String(255), nullable=True)
|
||||||
username = db.Column(db.String(255), nullable=False)
|
username = db.Column(db.String(255), nullable=False)
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ async def start(message, state):
|
|||||||
tg_user = message.from_user
|
tg_user = message.from_user
|
||||||
ts_user = {
|
ts_user = {
|
||||||
"id": tg_user.id,
|
"id": tg_user.id,
|
||||||
|
"chat_id": message.chat.id,
|
||||||
"first_name": tg_user.first_name,
|
"first_name": tg_user.first_name,
|
||||||
"last_name": tg_user.last_name,
|
"last_name": tg_user.last_name,
|
||||||
"username": tg_user.username,
|
"username": tg_user.username,
|
||||||
|
|||||||
@@ -2,16 +2,34 @@ import json
|
|||||||
|
|
||||||
from fastapi import FastAPI
|
from fastapi import FastAPI
|
||||||
|
|
||||||
|
import asyncio
|
||||||
|
|
||||||
from aiogram import Bot, Dispatcher
|
from aiogram import Bot, Dispatcher
|
||||||
from aiogram.fsm.storage.memory import MemoryStorage
|
from aiogram.fsm.storage.memory import MemoryStorage
|
||||||
|
|
||||||
|
from textsouls.handlers import control
|
||||||
|
from textsouls.handlers import character_creation
|
||||||
|
|
||||||
with open("textsouls/config.json") as config_file:
|
with open("textsouls/config.json") as config_file:
|
||||||
config_data = json.load(config_file)
|
config_data = json.load(config_file)
|
||||||
|
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
|
|
||||||
bot = Bot(token=config_data["MAIN_SETTINGS"]["BOT_TOKEN"])
|
|
||||||
dp = Dispatcher(storage=MemoryStorage())
|
async def start_bot():
|
||||||
|
bot = Bot(token=config_data["MAIN_SETTINGS"]["BOT_TOKEN"])
|
||||||
|
dp = Dispatcher(storage=MemoryStorage())
|
||||||
|
|
||||||
|
dp.include_router(control.router)
|
||||||
|
dp.include_router(character_creation.router)
|
||||||
|
|
||||||
|
await bot.delete_webhook(drop_pending_updates=True)
|
||||||
|
await dp.start_polling(bot)
|
||||||
|
|
||||||
|
|
||||||
|
@app.on_event("startup")
|
||||||
|
async def startup_event():
|
||||||
|
asyncio.create_task(start_bot())
|
||||||
|
|
||||||
|
|
||||||
@app.get("/")
|
@app.get("/")
|
||||||
|
|||||||
Reference in New Issue
Block a user