This commit is contained in:
mihalin 2021-09-09 10:58:33 +03:00
parent 56b9528338
commit 68e60bb0c7
8 changed files with 89 additions and 17 deletions

3
.flake8 Normal file
View File

@ -0,0 +1,3 @@
[flake8]
exclude = .git,__pycache__,venv
max-line-length = 120

23
.github/workflows/lint.yaml vendored Normal file
View File

@ -0,0 +1,23 @@
name: Linter
on: push
env:
PYTHONUNBUFFERED: 1
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: 3.8
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install flake8
- name: Check flake8
run: python -m flake8 .

43
.github/workflows/push.yaml vendored Normal file
View File

@ -0,0 +1,43 @@
name: Publish Docker image
on:
push:
branches:
- stable
env:
IMAGE_NAME: bot
USERNAME: mihalin
jobs:
# Push image to GitHub Packages.
# See also https://docs.docker.com/docker-hub/builds/
ghr_push:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Build image
run: docker build . --tag $IMAGE_NAME
- name: Log into GitHub Container Registry
run: echo "${{ secrets.CR_PAT }}" | docker login https://ghcr.io -u $USERNAME --password-stdin
- name: Push poi image to GitHub Container Registry
run: |
IMAGE_ID=ghcr.io/${{ github.repository }}/$IMAGE_NAME
# Change all uppercase to lowercase
IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]')
# Strip git ref prefix from version
VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,')
# Strip "v" prefix from tag name
[[ "${{ github.ref }}" == "refs/tags/"* ]] && VERSION=$(echo $VERSION | sed -e 's/^v//')
# Use Docker `latest` tag convention
[ "$VERSION" == "main" ] && VERSION=latest
echo IMAGE_ID=$IMAGE_ID
echo VERSION=$VERSION
docker tag $IMAGE_NAME $IMAGE_ID:$VERSION
docker push $IMAGE_ID:$VERSION

View File

@ -27,7 +27,7 @@ class BotInstance(ABC):
@abstractmethod
async def _properties(self) -> BotProperties:
raise NotImplemented()
raise NotImplementedError()
def stop_polling(self):
print("stop polling")
@ -112,8 +112,8 @@ class FreezeBotInstance(BotInstance):
if __name__ == '__main__':
"""
Режим single-instance. В этом режиме не работает olgram. На сервере запускается только один feedback (instance)
бот для пересылки сообщений. Все настройки этого бота задаются в переменных окружения на сервере. Бот работает
в режиме polling
бот для пересылки сообщений. Все настройки этого бота задаются в переменных окружения на сервере. Бот работает
в режиме polling
"""
bot = FreezeBotInstance(
InstanceSettings.token(),

View File

@ -4,10 +4,10 @@ from tortoise import Tortoise
from olgram.router import dp
from olgram.settings import TORTOISE_ORM
import olgram.commands.bots
import olgram.commands.start
import olgram.commands.menu
import olgram.commands.bot_actions
import olgram.commands.bots # noqa: F401
import olgram.commands.start # noqa: F401
import olgram.commands.menu # noqa: F401
import olgram.commands.bot_actions # noqa: F401
async def init_database():

View File

@ -41,9 +41,9 @@ async def add_bot(message: types.Message, state: FSMContext):
1. Перейдите в бот @BotFather, нажмите START и отправьте команду /newbot
2. Введите название бота, а потом username бота.
3. После создания бота перешлите ответное сообщение в этот бот или скопируйте и пришлите token бота.
Важно: не подключайте боты, которые используются в других сервисах (Manybot, Chatfuel, Livegram и других).
Подробную инструкцию по созданию бота читайте здесь /help)
"""))
await state.set_state("add_bot")
@ -58,7 +58,7 @@ async def bot_added(message: types.Message, state: FSMContext):
async def on_invalid_token():
await message.answer(dedent("""
Это не токен бота.
Это не токен бота.
Токен выглядит вот так: 123456789:AAAA-abc123_AbcdEFghijKLMnopqrstu12
"""))

View File

@ -28,7 +28,7 @@ async def send_bots_menu(chat_id: int, user_id: int, call=None):
bots = await Bot.filter(owner=user)
if not bots:
await AioBot.get_current().send_message(chat_id, dedent("""
У вас нет добавленных ботов.
У вас нет добавленных ботов.
Отправьте команду /addbot, чтобы добавить бот.
"""))
@ -80,8 +80,8 @@ async def send_chats_menu(bot: Bot, call: types.CallbackQuery):
""")
else:
text = dedent(f"""
В этом разделе вы можете привязать бота @{bot.name} к чату.
Выберите чат, куда бот будет пересылать сообщения.
В этом разделе вы можете привязать бота @{bot.name} к чату.
Выберите чат, куда бот будет пересылать сообщения.
""")
await edit_or_create(call, text, keyboard)
@ -92,15 +92,18 @@ async def send_bot_menu(bot: Bot, call: types.CallbackQuery):
keyboard = types.InlineKeyboardMarkup(row_width=2)
keyboard.insert(
types.InlineKeyboardButton(text="Текст",
callback_data=menu_callback.new(level=2, bot_id=bot.id, operation="text", chat=empty))
callback_data=menu_callback.new(level=2, bot_id=bot.id, operation="text",
chat=empty))
)
keyboard.insert(
types.InlineKeyboardButton(text="Чат",
callback_data=menu_callback.new(level=2, bot_id=bot.id, operation="chat", chat=empty))
callback_data=menu_callback.new(level=2, bot_id=bot.id, operation="chat",
chat=empty))
)
keyboard.insert(
types.InlineKeyboardButton(text="Удалить бот",
callback_data=menu_callback.new(level=2, bot_id=bot.id, operation="delete", chat=empty))
callback_data=menu_callback.new(level=2, bot_id=bot.id, operation="delete",
chat=empty))
)
keyboard.insert(
types.InlineKeyboardButton(text="<< Назад",

View File

@ -62,4 +62,4 @@ TORTOISE_ORM = {
"default_connection": "default",
},
},
}
}