MVP
This commit is contained in:
@ -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(),
|
||||||
)
|
)
|
@ -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(),
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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)
|
||||||
|
9
main.py
9
main.py
@ -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
0
nft_things/__init__.py
Normal file
Reference in New Issue
Block a user