Advertisement
Guest User

Untitled

a guest
May 12th, 2019
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.22 KB | None | 0 0
  1. import logging
  2.  
  3. from aiogram import Bot, Dispatcher, executor, types
  4. from aiogram.dispatcher import FSMContext
  5. from aiogram.contrib.fsm_storage.memory import MemoryStorage
  6. from aiogram.contrib.fsm_storage.redis import RedisStorage
  7. from aiogram.dispatcher.filters.state import State, StatesGroup
  8. from aiogram.utils.markdown import code
  9. import asyncio
  10. from core import connect
  11. import traceback
  12. import functools
  13.  
  14. API_TOKEN = '602152181:AAFugswrbPdKvwqpJsrHULhWlneHXU1oouU'
  15.  
  16. # Configure logging
  17. logging.basicConfig(level=logging.INFO)
  18.  
  19. # Initialize bot and dispatcher
  20. #loop = asyncio.get_event_loop()
  21. bot = Bot(token=API_TOKEN, parse_mode="markdown")
  22. storage = MemoryStorage()
  23. dp = Dispatcher(bot, storage=storage)
  24.  
  25.  
  26. class Install(StatesGroup):
  27.     ip = State()
  28.     user = State()
  29.     password = State()
  30.     domain = State()
  31.     start = State()
  32.  
  33.  
  34. @dp.message_handler(commands=["start"])
  35. async def echo(message: types.Message):
  36.     await bot.send_message(message.chat.id, "Hi!")
  37.  
  38.  
  39. @dp.message_handler(commands=["install"])
  40. async def install(message: types.Message):
  41.     await Install.ip.set()
  42.     await bot.send_message(message.chat.id, "Send me your server ip address:")
  43.  
  44.  
  45. @dp.message_handler(state=Install.ip)
  46. async def process_ip(message: types.Message, state: FSMContext):
  47.     async with state.proxy() as data:
  48.         data['ip'] = message.text
  49.  
  50.     await Install.next()
  51.     await bot.send_message(message.chat.id, "User:")
  52.  
  53.  
  54. @dp.message_handler(state=Install.user)
  55. async def process_user(message: types.Message, state: FSMContext):
  56.     print("hi")
  57.     async with state.proxy() as data:
  58.         data['user'] = message.text
  59.  
  60.     await Install.next()
  61.     print('ok')
  62.     await bot.send_message(message.chat.id, "Password:")
  63.  
  64.  
  65. @dp.message_handler(state=Install.password)
  66. async def process_password(message: types.Message, state: FSMContext):
  67.     async with state.proxy() as data:
  68.         data['password'] = message.text
  69.  
  70.     await Install.next()
  71.     await bot.send_message(message.chat.id, "Domain:")
  72.  
  73.  
  74. @dp.message_handler(state=Install.domain)
  75. async def process_domain(message: types.Message, state: FSMContext):
  76.     async with state.proxy() as data:
  77.         data['domain'] = message.text
  78.     await Install.next()
  79.     await bot.send_message(message.chat.id, "Do you want to start bitcart after installation?(Y/N)")
  80.  
  81.  
  82. @dp.message_handler(state=Install.start)
  83. async def process_start(message: types.Message, state: FSMContext):
  84.     async with state.proxy() as data:
  85.         data['start'] = message.text
  86.         try:
  87.             connect(data['ip'], data['user'], data['password'],
  88.                     print, data['start'], data['domain'])
  89.         except Exception:
  90.             await bot.send_message(message.chat.id, "Error connecting to server/installing.\n"+code(traceback.format_exc().splitlines()[-1]))
  91.  
  92.         await bot.send_message(message.chat.id, str(data))
  93.         data.state = None
  94. #functools.partial(print_func, chat_id=message.chat.id)
  95.  
  96.  
  97. async def print_func_async(chat_id, message):
  98.     await bot.send_message(chat_id, message)
  99.  
  100.  
  101. def print_func(message, chat_id):
  102.     loop.create_task(print_func_async(chat_id, message))
  103.  
  104.  
  105. if __name__ == '__main__':
  106.     executor.start_polling(dp)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement