Compare commits

..

No commits in common. "7787cc5b698d23385b91a2110d82bd7151a66bf7" and "aff94c7e6caa3903e276e116c6007011aeb2ab2d" have entirely different histories.

11 changed files with 0 additions and 103 deletions

21
TODO
View File

@ -1,21 +0,0 @@
Написать docker-compose, в котором работают:
WEB-приложение на FastApi. У приложения должно быть несколько end-поинтов:
1) GET 'api/v1/messages/' показывает список всех сообщений;
2) POST 'api/v1/message/' позволяет написать сообщение;
Веб сервер должен быть Nginx.
mongo как бд для сообщений.
Телеграм бот (aiogram3), который показывает сообщения и позволяет создать сообщение самому.
Будет плюсом:
1) Добавление кэширования при помощи Redis (кеш стирается, когда появляется новое сообщение)
2) Развертывание на удалённом сервере и добавление SSL через CertBot.
3) Реализовать код так, чтобы было видно, кто написал сообщение.
4) Добавление пагинации.
Проект залить на Github с подробно описанным Readme
Сроки 1-2 суток

View File

@ -1,12 +0,0 @@
include:
- bot/compose.yml
- web/compose.yml
services:
mongo:
image: mongo
environment:
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: admin
redis:
image: "redis:alpine"

View File

@ -1 +0,0 @@
pymongo[srv]

View File

@ -1,3 +0,0 @@
services:
tgbot:
build: .

View File

@ -1,4 +0,0 @@
from os import getenv
TOKEN="7231211385:AAGMO2R4T_87j7pULfJNWnYV42N1QJy5ncY"
CHAT_ID="-4173707216"

View File

@ -1,26 +0,0 @@
import asyncio
from config import *
from aiogram import Bot, Dispatcher
from aiogram.types import Message
from aiogram.enums import ParseMode
from aiogram.client.default import DefaultBotProperties
dp = Dispatcher()
@dp.message()
async def echo_handler(message: Message):
try:
await message.send_copy(chat_id=message.chat.id)
except TypeError:
await message.answer('Nice try!')
async def main(self):
bot = Bot(token=TOKEN, default=DefaultBotProperties(parse_mode=ParseMode.HTML))
await dp.start_polling(bot)
if __name__ == "__main__":
asyncio.run(self.main())

View File

@ -1 +0,0 @@
aiogram=3.10.0

View File

@ -1,6 +0,0 @@
FROM python:3.10-alpine
WORKDIR /code
COPY ./requirements.txt /code/requirements.txt
RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt
COPY ./app /code/app
CMD ["fastapi", "run", "main.py", "--port", "80"]

View File

@ -1,10 +0,0 @@
services:
web:
build: .
environment:
- TOKEN=
- CHAT_ID=
- MONGO_USERNAME=admin
- MONGO_PASSWORD=admin
ports:
- "8000:5000"

View File

@ -1,16 +0,0 @@
from os import sysenv
from fastapi import FastAPI
from pymongo import MongoClient
app = FastAPI()
client = MongoClient('mongodb+srv://admin:admin@mongo/chat')
@app.get('/api/v1/messages')
async def v1_messages():
return {'message': 'Hello World'}
@app.post('/api/v1/message')
async def v1_message():
return {'message': 'Hello World'}

View File

@ -1,3 +0,0 @@
fastapi[standard]>=0.113.0,<0.114.0
pydantic>=2.7.0,<3.0.0
pymongo[srv]>=4.8.0,<5