This commit is contained in:
Andrey Gumirov
2022-04-29 22:21:42 +07:00
parent 911c1f3400
commit fe771b3ae7
7 changed files with 31 additions and 9 deletions

View File

@ -1,17 +1,12 @@
from vkwave.bots import DefaultRouter, SimpleBotEvent, simple_bot_message_handler from vkwave.bots import DefaultRouter, SimpleBotEvent, simple_bot_message_handler
import locales import locales
# MENU_KB.add_row()
# MENU_KB.add_text_button(text="Профиль", payload={"command": "profile"}, color=ButtonColor.SECONDARY)
# MENU_KB.add_row()
# MENU_KB.add_text_button(text="Бонус", payload={"command": "bonus"}, color=ButtonColor.POSITIVE)
menu_router = DefaultRouter() menu_router = DefaultRouter()
@simple_bot_message_handler(menu_router,) @simple_bot_message_handler(menu_router,)
async def menu(event: SimpleBotEvent): async def menu(event: SimpleBotEvent):
return await event.answer( return await event.answer(
message=f"Привет!", message=locales.MENU,
keyboard=locales.MENU_KB.get_keyboard(), keyboard=locales.MENU_KB.get_keyboard(),
) )

View File

@ -2,13 +2,15 @@ import json
import logging import logging
import random import random
from vkwave.bots import DefaultRouter, SimpleBotEvent, simple_bot_message_handler, PayloadFilter, PayloadContainsFilter from vkwave.bots import DefaultRouter, SimpleBotEvent, simple_bot_message_handler, PayloadFilter, PayloadContainsFilter, \
PhotoUploader
from vkwave.bots import Keyboard, ButtonColor from vkwave.bots import Keyboard, ButtonColor
from vkwave.bots import EventTypeFilter, BotEvent from vkwave.bots import EventTypeFilter, BotEvent
from vkwave.types.bot_events import BotEventType from vkwave.types.bot_events import BotEventType
from vkwave.bots.fsm import FiniteStateMachine, StateFilter, ForWhat, State, ANY_STATE from vkwave.bots.fsm import FiniteStateMachine, StateFilter, ForWhat, State, ANY_STATE
import locales import locales
from config import Config
from db import DB from db import DB
from db.db import TestResult from db.db import TestResult
from locales import INPUT_NAME_TEXT from locales import INPUT_NAME_TEXT
@ -18,6 +20,7 @@ from locales import INPUT_NAME_TEXT
# MENU_KB.add_text_button(text="Профиль", payload={"command": "profile"}, color=ButtonColor.SECONDARY) # MENU_KB.add_text_button(text="Профиль", payload={"command": "profile"}, color=ButtonColor.SECONDARY)
# MENU_KB.add_row() # MENU_KB.add_row()
# MENU_KB.add_text_button(text="Бонус", payload={"command": "bonus"}, color=ButtonColor.POSITIVE) # MENU_KB.add_text_button(text="Бонус", payload={"command": "bonus"}, color=ButtonColor.POSITIVE)
# from nft_things.NftSender import NFTSender
test_router = DefaultRouter() test_router = DefaultRouter()
@ -63,6 +66,16 @@ async def main_part_handle(event: BotEvent):
keyboard=locales.questions[state_idx + 1][1].get_keyboard(), keyboard=locales.questions[state_idx + 1][1].get_keyboard(),
) )
else: else:
# todo add task to send user an image here
# Config().nft_sender.add_task()
logging.warn("Sending attach!")
big_attachment = await Config().uploader.get_attachments_from_paths(
peer_id=user_id,
file_paths=["img.jpg"],
)
await Config().api_ctx.messages.send(
user_id=user_id, attachment=big_attachment, random_id=0
)
return await botevent.answer( return await botevent.answer(
message=locales.LAST_MESSAGE, message=locales.LAST_MESSAGE,
keyboard=locales.LAST_MESSAGE_KB.get_keyboard(), keyboard=locales.LAST_MESSAGE_KB.get_keyboard(),

View File

@ -9,3 +9,8 @@ class Config(metaclass=Singleton):
PG_USER = os.environ["USER"] PG_USER = os.environ["USER"]
PG_PASS = os.environ["PASS"] PG_PASS = os.environ["PASS"]
PG_ADDR = os.environ["DB_ADDR"] PG_ADDR = os.environ["DB_ADDR"]
def __init__(self):
self.api_ctx = None
self.uploader = None

BIN
img.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 184 KiB

View File

@ -1,8 +1,10 @@
from vkwave.bots import Keyboard, ButtonColor from vkwave.bots import Keyboard, ButtonColor
# menu # menu
MENU = "Привет!"
MENU_KB = Keyboard() MENU_KB = Keyboard()
MENU_KB.add_text_button(text="Пройти тест!", payload={"test": "-1"}, color=ButtonColor.POSITIVE) MENU_KB.add_text_button(text="Пройти тест!", payload={"test": "-1"}, color=ButtonColor.POSITIVE)
MENU_KB.add_link_button(text="Общий чатик", link="https://vk.me/join/AJQ1dw97/SBEQYIyQdZfG69y")
# TEST Questions # TEST Questions
INPUT_NAME_TEXT = "Пожалуйста, введите имя:" INPUT_NAME_TEXT = "Пожалуйста, введите имя:"
@ -34,7 +36,7 @@ FAV_THEME = "Какой предмет нравится?"
FAV_THEME_KB = Keyboard() FAV_THEME_KB = Keyboard()
FAV_THEME_KB.add_text_button(text="Матеша", payload={"q": "Матеша", "test": "2"}, color=ButtonColor.PRIMARY) FAV_THEME_KB.add_text_button(text="Матеша", payload={"q": "Матеша", "test": "2"}, color=ButtonColor.PRIMARY)
FAV_THEME_KB.add_text_button(text="Русский/Литра", payload={"q": "русскийлитра", "test": "2"}, color=ButtonColor.PRIMARY) FAV_THEME_KB.add_text_button(text="Русский/Литра", payload={"q": "русскийлитра", "test": "2"}, color=ButtonColor.PRIMARY)
FAV_THEME_KB.add_text_button(text="Инфа", payload={"q": "Инфа", "test": "0"}, color=ButtonColor.PRIMARY) FAV_THEME_KB.add_text_button(text="Инфа", payload={"q": "Инфа", "test": "2"}, color=ButtonColor.PRIMARY)
FAV_THEME_KB.add_row() FAV_THEME_KB.add_row()
FAV_THEME_KB.add_text_button(text="Физика", payload={"q": "Физика", "test": "2"}, color=ButtonColor.PRIMARY) FAV_THEME_KB.add_text_button(text="Физика", payload={"q": "Физика", "test": "2"}, color=ButtonColor.PRIMARY)
FAV_THEME_KB.add_text_button(text="другое", payload={"q": "other", "test": "2"}, color=ButtonColor.PRIMARY) FAV_THEME_KB.add_text_button(text="другое", payload={"q": "other", "test": "2"}, color=ButtonColor.PRIMARY)

View File

@ -1,17 +1,24 @@
import logging import logging
from vkwave.bots import SimpleLongPollBot from vkwave.bots import SimpleLongPollBot, PhotoUploader
from blueprints import ( from blueprints import (
menu_router, test_router, menu_router, test_router,
) )
from config import Config from config import Config
from middlewares import UserMiddleware from middlewares import UserMiddleware
# from nft_things.NftSender import NFTSender
logging.basicConfig(level="DEBUG") logging.basicConfig(level="DEBUG")
bot = SimpleLongPollBot(Config.TOKEN, group_id=Config.GROUP_ID) bot = SimpleLongPollBot(Config.TOKEN, group_id=Config.GROUP_ID)
# nft_sender = NFTSender(bot.api_context)
# nft_sender.start()
uploader = PhotoUploader(bot.api_context)
Config().api_ctx = bot.api_context
Config().uploader = uploader
bot.middleware_manager.add_middleware(UserMiddleware()) bot.middleware_manager.add_middleware(UserMiddleware())

0
nft_things/__init__.py Normal file
View File