Compare commits
10 Commits
369bd7a6e1
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 652400e50f | |||
| 95195c2749 | |||
| 9979937113 | |||
| be80c4044b | |||
| 6549c3d70b | |||
| cc520caef5 | |||
| 51eebcc165 | |||
| ffe5e2e938 | |||
| 77a00d7623 | |||
| 5f2a00ba4a |
@@ -1,14 +1,8 @@
|
||||
import os
|
||||
import asyncpg
|
||||
from sqlalchemy.ext.asyncio import async_sessionmaker, create_async_engine, session
|
||||
import dotenv
|
||||
|
||||
# connection = psycopg2.connect(*(os.getenv(key) for key in ["DATABASE", "DB_HOST", "DB_USER", "DB_PASSWORD"]))
|
||||
# connection.autocommit = True
|
||||
|
||||
dotenv.load_dotenv(".env")
|
||||
DATABASE_URL = (f"postgresql+asyncpg://{os.getenv('DB_USER')}:{os.getenv('DB_PASSWORD')}@"
|
||||
f"{os.getenv('DB_HOST')}/{os.getenv('DATABASE')}")
|
||||
print(DATABASE_URL)
|
||||
engine = create_async_engine(DATABASE_URL, echo=True)
|
||||
async_session_ = async_sessionmaker(bind=engine, expire_on_commit=False)
|
||||
|
||||
@@ -17,7 +17,8 @@ orders_router = Router()
|
||||
order_operation_base = {"add_order_photo": "Добавить фото",
|
||||
"get_order_photo": "Получить фото",
|
||||
"get_order_components": "Получить список комплектующих",
|
||||
"get_order_documentation": "Получить документацию"
|
||||
"get_order_documentation": "Получить документацию",
|
||||
"finish_work_on_order": "❌ Закрыть"
|
||||
}
|
||||
order_operation_update = {"add_order_documentation": "Добавить документацию"}
|
||||
|
||||
@@ -121,8 +122,8 @@ async def search_by_item(message: Message, state: FSMContext):
|
||||
reply_markup=create_inline_kb(width=1, **{
|
||||
f"show_order_{order.id}": f"Заказ: №{order.id}"})))
|
||||
await state.update_data(sent_messages=sent_messages)
|
||||
await state.update_data(search_result=selected_orders)
|
||||
await state.set_state(SearchForm.search_result)
|
||||
await state.update_data(search_result=selected_orders)
|
||||
else:
|
||||
await message.answer(text="Заказов по вашему запросу не найдено")
|
||||
await state.clear()
|
||||
@@ -131,8 +132,8 @@ async def search_by_item(message: Message, state: FSMContext):
|
||||
@orders_router.callback_query(SearchForm.search_result and (lambda x: "show_order_" in x.data))
|
||||
async def show_order(callback: CallbackQuery, state: FSMContext, bot: Bot):
|
||||
order_id = int(re.search(r"(\d+)", callback.data).group())
|
||||
|
||||
order = next(filter(lambda item: order_id == item.id, await state.get_value("search_result")), None)
|
||||
orders = await state.get_value("search_result")
|
||||
order = next(filter(lambda item: order_id == item.id, orders), None)
|
||||
|
||||
if order:
|
||||
await callback.message.answer(text=f"Номер заказа: {order.id}\n"
|
||||
@@ -142,11 +143,11 @@ async def show_order(callback: CallbackQuery, state: FSMContext, bot: Bot):
|
||||
f"Дата отгрузки: {order.end_work}\n"
|
||||
f"Дата создания: {order.created_at}\n"
|
||||
f"Описание: {order.description}",
|
||||
reply_markup=create_inline_kb(width=2, **dict(
|
||||
reply_markup=create_inline_kb(width=1, **dict(
|
||||
(f"{clbk}_{order.id}", text) for clbk, text in order_operation_base.items()))
|
||||
)
|
||||
|
||||
for message in SearchForm.sent_messages:
|
||||
for message in await state.get_value("sent_messages"):
|
||||
await bot.delete_message(chat_id=callback.message.chat.id, message_id=message.message_id)
|
||||
await state.clear()
|
||||
|
||||
@@ -177,7 +178,7 @@ async def send_order_photos(callback: CallbackQuery, bot: Bot):
|
||||
|
||||
media_item = next(media_path, None)
|
||||
try:
|
||||
await callback.message.delete()
|
||||
pass
|
||||
except:
|
||||
pass
|
||||
|
||||
@@ -214,3 +215,8 @@ async def add_order_photo(message: Message, bot: Bot):
|
||||
await bot.delete_message(chat_id=message.chat.id, message_id=message.reply_to_message.message_id)
|
||||
except:
|
||||
pass
|
||||
|
||||
|
||||
@orders_router.callback_query(F.data.startswith("finish_work_on_order"))
|
||||
async def finish_work_on_order(callback: CallbackQuery):
|
||||
await callback.message.delete()
|
||||
|
||||
@@ -20,7 +20,7 @@ user_info_template = ("Новый пользователь ждет регист
|
||||
"Юзернейм: @{}\n"
|
||||
"ID: @msg_{}\n")
|
||||
|
||||
admins_ids = list(map(int, os.getenv("BOT_ADMINS").split(",")))
|
||||
|
||||
|
||||
|
||||
@registration_router.message(CommandStart())
|
||||
@@ -33,7 +33,7 @@ async def start_command(message: Message, bot: Bot):
|
||||
dict_for_inline = {f'reg_@{user.id}': 'Allow', f'del_@{user.id}': 'Reject'}
|
||||
user_info = user_info_template.format(user.first_name, user.last_name if user.last_name else 'Не указана',
|
||||
user.username if user.username else 'Не указан', user.id)
|
||||
for admin in admins_ids:
|
||||
for admin in list(map(int, os.getenv("BOT_ADMINS").split(","))):
|
||||
try:
|
||||
await bot.send_message(chat_id=admin, text=user_info)
|
||||
await bot.send_message(chat_id=admin, text='Зарегистрировать пользователя',
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
import os
|
||||
import asyncio
|
||||
from dotenv import load_dotenv
|
||||
|
||||
load_dotenv(".env")
|
||||
|
||||
from aiogram import Dispatcher, Bot
|
||||
from handlers import *
|
||||
from keyboards import set_main_menu
|
||||
from middlewares import SessionMiddleware
|
||||
|
||||
load_dotenv(".env")
|
||||
bot = Bot(token=os.getenv("TOKEN"))
|
||||
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ steps:
|
||||
- name: dockersock
|
||||
path: /var/run/docker.sock
|
||||
commands:
|
||||
- docker build -t myapp:${DRONE_COMMIT_BRANCH} .
|
||||
- docker build -t myapp:${DRONE_COMMIT_SHA} .
|
||||
|
||||
- name: deploy
|
||||
image: docker
|
||||
@@ -40,10 +40,9 @@ steps:
|
||||
DB_PASSWORD:
|
||||
from_secret: DB_PASSWORD
|
||||
commands:
|
||||
- echo "$ENV_CONTENT" > .env
|
||||
- docker stop myapp || true
|
||||
- docker rm myapp || true
|
||||
- docker run --name=myapp --network=prod_net -v /srv/prod/telegram_bot/photos:/app/photos/ -v /srv/prod/telegram_bot/.env:/app/.env:ro myapp:${DRONE_COMMIT_BRANCH}
|
||||
- docker run --name=myapp -d --network=prod_net -v /srv/prod/telegram_bot/photos:/app/photos/ -v /srv/prod/telegram_bot/.env:/app/.env:ro myapp:${DRONE_COMMIT_SHA}
|
||||
|
||||
|
||||
volumes:
|
||||
|
||||
Reference in New Issue
Block a user