def handle_message(bot: Client , msg: Message):
    '''
        This function gonna handle what's coming from user,
        and will reply to user
    '''
    user = check_user(msg.from_user.id)
    if (msg.chat.type != 'private'): #
        
        return

    if msg.text:
        if(msg.text == '/start' ):
            user.state = 0
            bot.send_message(user.id, 'welcome' , reply_markup=MAIN_KEYBOARD )

        elif(user.state == 0 and msg.text == 'set name' ) :
            user.state = 1
            bot.send_message(user.id,'enter your name: ', reply_markup=ReplyKeyboardRemove())
                            
        elif(user.state == 0 and msg.text == 'set age') :    
            user.state = 2
            bot.send_message(user.id,'enter your age: ', reply_markup=ReplyKeyboardRemove())
        
        elif(user.state == 0 and msg.text == 'my profile'):    
            bot.send_message(user.id,f'Name: {user.name}\nAge: {user.age}')

        elif (user.state == 1):
            user.name = msg.text
            user.state = 0
            bot.send_message(user.id,'your name saved: ', reply_markup=MAIN_KEYBOARD)
        
        elif (user.state == 2):
            user.age = msg.text
            user.state = 0
            bot.send_message(user.id,'your age saved: ', reply_markup=MAIN_KEYBOARD)
예제 #2
0
def stop(_, update):
    chat_id = update.chat.id
    chat_title = update.chat.title or update.from_user.first_name
    text = 'ok. Você pode digitar /start para iniciar novamente o recebimento das leituras diárias'

    db.del_chat_id_daily_liturgy(chat_id=chat_id)
    update.delete()
    update.reply_text(text=text,
                      quote=False,
                      parse_mode='html',
                      reply_markup=ReplyKeyboardRemove())
    logger.info(f'left chat {chat_id} ({escape(chat_title)})')
예제 #3
0
async def stop_process(client: Bot, cb: CallbackQuery):
    await cb.message.delete()
    await cb.answer()
    status = await client.send_message(
        chat_id=cb.message.chat.id,
        text=Presets.CANCEL_CLONE,
        reply_to_message_id=cb.message.message_id,
        reply_markup=ReplyKeyboardRemove())
    await asyncio.sleep(3)
    await status.delete()
    await client.send_message(
        chat_id=cb.message.chat.id,
        text=Presets.CANCELLED_MSG,
        reply_markup=InlineKeyboardMarkup(
            [[InlineKeyboardButton(text="CLOSE",
                                   callback_data="close_data")]]))
    os.execl(sys.executable, sys.executable, *sys.argv)
예제 #4
0
async def start(client: Client, message: Message):
    question = questions.p_lang["ask"]
    answers = questions.p_lang["ans"]
    buttons = make_buttons(answers=answers.items(), size=3, back=False)

    history.add_user(message.chat.id)

    await client.send_message(
        chat_id=message.chat.id,
        text=
        f"""__Hoşgeldin__ **{message.from_user.first_name}** __, bu bot henüz geliştirme aşamasındadır. Bu sebeple kaynak altyapısı sınırlı seviyededir. Önerebileceğin kaynaklar varsa__ /hakkinda __kısmından bize ulaşabilir, botun kullanımı sırasında bir sorunla karşılaşırsan tekrardan__ /start __komutunu çalıştırabilirsin.__""",
        reply_markup=ReplyKeyboardRemove(True),
    )
    await client.send_message(
        chat_id=message.chat.id,
        text=question,
        reply_markup=InlineKeyboardMarkup(buttons),
    )
async def callback_call(client, message):
    if message.data == "promote":
        if message.message.reply_to_message != None:
            await message.message.delete()
            await send_all_message(client, message)
            await client.delete_messages(message.message.chat.id,
                                         [_.message_id for _ in await client.get_media_group
                                         (message.message.chat.id,
                                          message.message.reply_to_message.message_id)])
        else:
            await message.message.edit_reply_markup(reply_markup=ReplyKeyboardRemove())
            await send_all_message(client, message)
            await message.message.delete()
    if message.data == "delete":
        if message.message.reply_to_message != None:
            await client.delete_messages(message.message.chat.id,
                                         [_.message_id for _ in await client.get_media_group
                                         (message.message.chat.id,
                                          message.message.reply_to_message.message_id)])
            await message.message.delete()
        else:
            await message.message.delete()
예제 #6
0
import async_timeout
from pyrogram import Client, filters
from pyrogram.filters import create
from pyrogram.handlers import MessageHandler, CallbackQueryHandler
from pyrogram.types import ReplyKeyboardRemove, Message, KeyboardButton, ReplyKeyboardMarkup, CallbackQuery, \
    InlineKeyboardMarkup, InlineKeyboardButton

from . import Config, Mtproto, Http, OnStreamClosed, DeviceFinderCollection
from .devices import Device, DevicePlayerFunction
from .tools import build_uri, pyrogram_filename, secret_token

__all__ = [
    "Bot"
]

_REMOVE_KEYBOARD = ReplyKeyboardRemove()
_CANCEL_BUTTON = "^Cancel"


class States(enum.Enum):
    NOTHING = enum.auto()
    SELECT = enum.auto()


class StateData(abc.ABC):
    @abc.abstractmethod
    def get_associated_state(self) -> States:
        raise NotImplementedError


class SelectStateData(StateData):
예제 #7
0
def chiudi(_, message):
    message.reply("Okay, ho chiuso la tastiera!",
                  reply_markup=ReplyKeyboardRemove())