Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2019
277
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 22.26 KB | None | 0 0
  1.  
  2.  
  3. from telegram.ext import *
  4. from telegram import *
  5. from strings import Strings, INVESTS_QUIZ, SEARCH_INVEST_QUIZ, BUY_CRYPTO, SELL_CRYPTO
  6. import logging
  7. import mysql.connector
  8.  
  9. logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
  10. level=logging.INFO)
  11. logger = logging.getLogger(__name__)
  12.  
  13. NOTIFICATION_GROUP = -358742411
  14.  
  15. mydb = mysql.connector.connect(
  16. host="localhost",
  17. user="bot",
  18. password="DjoVKccBz5UCOfI1",
  19. database="bot"
  20. )
  21.  
  22. mycursor = mydb.cursor()
  23.  
  24. SELECT_LANGUAGE = open(
  25. "./strings/selectlanguage.txt",
  26. "r",
  27. encoding="utf8"
  28. ).read()
  29.  
  30. TOKEN = '711442895:AAHXducjiRY6FMt2ixRH8u3N9F5qDCDlHkI'
  31.  
  32. updater = Updater(TOKEN)
  33. Users = {}
  34.  
  35.  
  36. # Это класс пользователя, где я храню данные о нем ( или подгружаю )
  37. class User:
  38. def __init__(self, user, lang):
  39. self.user = user
  40. self.lang = lang
  41. self.phone = ""
  42. self.fullname = ""
  43. self.direction = 0
  44. self.balance = 0
  45. self.state = 0 # Состояние пользователя по умолчанию (Ничего не ожидаем)
  46.  
  47. self.quiz = None # Текущий опрос
  48. self.quizIndex = 0 # Индекс текущего вопроса в опросе
  49. self.quizCallback = None # Функция которая будет вызвана после опроса
  50. self.quizId = 0 # идентификатор опроса (Для БД)
  51.  
  52. self.quizAnswers = {} # Ответы пользователя
  53.  
  54.  
  55. def initUsers():
  56. mycursor.execute("SELECT * FROM `users`")
  57. result = mycursor.fetchall();
  58.  
  59. for i in result:
  60. user = User(i[1], i[2])
  61.  
  62. user.fullname = i[3]
  63. user.phone = i[4]
  64.  
  65. user.direction = i[5]
  66.  
  67. Users[user.user] = user
  68.  
  69.  
  70. initUsers()
  71.  
  72.  
  73. def insertQuizAnswer(user, quiz, question, answer):
  74. q = "INSERT INTO `quiz` (`user`, `quiz`, `question`, `answer`) VALUES (%s, %s, %s, %s)"
  75.  
  76. val = (
  77. user,
  78. quiz,
  79. question,
  80. answer
  81. )
  82.  
  83. mycursor.execute(q, val)
  84. mydb.commit()
  85.  
  86.  
  87. def insertUser(user):
  88. q = "INSERT INTO `users` (`user`, `lang`, `phone`, `direction`, `fullname`) VALUES ({}, {}, '{}', {}, '{}')".format(
  89. user.user,
  90. user.lang,
  91. user.phone,
  92. user.direction,
  93. user.fullname
  94. )
  95.  
  96. mycursor.execute(q)
  97. mydb.commit()
  98.  
  99.  
  100. Handlers = {}
  101.  
  102.  
  103. def showInterestsKeyboard(bot, update, user):
  104. inline_keyboard = InlineKeyboardMarkup([
  105. [InlineKeyboardButton(Strings[user.lang]["OFFERS_FOR_YOU"], None, "offers_for_you")],
  106. [InlineKeyboardButton(Strings[user.lang]["PARLAMENT_BUTTON"], None, "parlament")],
  107. [InlineKeyboardButton(Strings[user.lang]["TRADE_BUTTON"], None, "change_bot")],
  108. [InlineKeyboardButton(Strings[user.lang]["COOPERATION_BUTTON"], None, "cooperation")],
  109. [InlineKeyboardButton(Strings[user.lang]["OUR_CONTACTS"], None, "our_contacts")],
  110. [InlineKeyboardButton(Strings[user.lang]["DONATE_BUTTON"], None, "donate")]
  111. ])
  112.  
  113. if (update.callback_query is not None):
  114. bot.delete_message(user.user, update.callback_query.message.message_id)
  115.  
  116. bot.send_message(user.user, Strings[user.lang]["REQUEST_INTERESTS"], reply_markup=inline_keyboard)
  117.  
  118.  
  119. def showChangeBot(bot, update, user):
  120. my_keyboard = ReplyKeyboardMarkup([
  121. ["💼 Кошелек", "📊 Обмен", ],
  122. ['🛠 Настройки', "🔎 Инфо"]], resize_keyboard=True)
  123.  
  124. bot.delete_message(user.user, update.callback_query.message.message_id)
  125. bot.send_message(user.user, Strings[user.lang]["CHANGE_TEXT_BOT"], reply_markup=my_keyboard)
  126.  
  127.  
  128. def inputQuizHandler(bot, update, user, first=False):
  129. ind = user.quizIndex
  130. current_quiz = user.quiz
  131.  
  132. user.quizIndex += 1
  133.  
  134. if (len(current_quiz) == user.quizIndex):
  135. user.quizCallback(bot, update, user)
  136. return
  137.  
  138. if (not first):
  139. answer = update.message.text
  140.  
  141. user.quizAnswers[current_quiz[ind]] = answer
  142. insertQuizAnswer(user.user, user.quizId, ind, answer)
  143.  
  144. question = Strings[user.lang][current_quiz[user.quizIndex]]
  145.  
  146. bot.send_message(user.user, question)
  147.  
  148.  
  149. def about_change(bot, update, user):
  150. inline_keyboard = InlineKeyboardMarkup([
  151. [InlineKeyboardButton(Strings[user.lang]["SUPPORT_BUTTON"], None, "s")],
  152. [InlineKeyboardButton(Strings[user.lang]["COMMUNICATE_WALLET"], None, "s")],
  153. [InlineKeyboardButton(Strings[user.lang]["TRADE_RULLE"], None, "s")],
  154. [InlineKeyboardButton(Strings[user.lang]["VEREFICATONS_BUTTON"], None, "s")],
  155. [InlineKeyboardButton(Strings[user.lang]["BACK_BUTTON"], None, "change_bot")]
  156.  
  157. ])
  158.  
  159. bot.delete_message(user.user, update.callback_query.message.message_id)
  160. bot.send_message(user.user, Strings[user.lang]['PARTNER_TEXT'], reply_markup=inline_keyboard)
  161.  
  162.  
  163. def change_crypto_menu(bot, update, user):
  164. inline_keyboard = InlineKeyboardMarkup([
  165. [InlineKeyboardButton(Strings[user.lang]["BUY_BUTTON"], None, "buy")],
  166. [InlineKeyboardButton(Strings[user.lang]["SELL_BUTTON"], None, "sell")],
  167. [InlineKeyboardButton(Strings[user.lang]["BACK_BUTTON"], None, "change_bot")]
  168. ])
  169.  
  170. bot.delete_message(user.user, update.callback_query.message.message_id)
  171. bot.send_message(user.user, "Выбери тип операции, которую ты бы хотел произвести", reply_markup=inline_keyboard)
  172.  
  173.  
  174. def inputNameHandler(bot, update, user):
  175. user.fullname = update.message.text
  176. user.state = 0 # Сбрасываем состояние ожидания ввода обратно в 0 (Ничего не ожидаем)
  177.  
  178. notification = "Номер: " + str(user.phone) + "\nФИО: " + user.fullname
  179.  
  180. # bot.send_message(NOTIFICATION_GROUP, notification)
  181.  
  182. insertUser(user)
  183.  
  184. showInterestsKeyboard(bot, update, user)
  185.  
  186.  
  187. # Словарь для обработчиков ввода (таких как ФИО)
  188. InputHandlers = {
  189. 1: inputNameHandler,
  190. 2: inputQuizHandler
  191. }
  192.  
  193.  
  194. def contactHandler(bot, update):
  195. contact = update.message.contact
  196. user = Users[update.message.chat.id]
  197.  
  198. if (user is None):
  199. return
  200.  
  201. user.state = 1 # Ожидание ввода от пользователя ФИО
  202. user.phone = contact.phone_number
  203.  
  204. remove_keyboard = ReplyKeyboardRemove(True)
  205.  
  206. bot.send_message(user.user, Strings[user.lang]['REQUEST_NAME'], reply_markup=remove_keyboard)
  207.  
  208.  
  209. def meetHandler(bot, update, user):
  210. message = None
  211.  
  212. if (update.callback_query is not None):
  213. message = update.callback_query.message
  214. bot.delete_message(user.user, message.message_id)
  215. print(message)
  216. else:
  217. message = update.message
  218. print(message)
  219.  
  220. if (user.fullname is not ""):
  221. showInterestsKeyboard(bot, update, user)
  222. return
  223.  
  224. inline_keyboard = InlineKeyboardMarkup([
  225. [InlineKeyboardButton(Strings[user.lang]["INVEST_BUTTON"], None, "new_invest")],
  226. [InlineKeyboardButton(Strings[user.lang]["SEARCH_INVESTS_BUTTON"], None, "new_search_invests")],
  227. [InlineKeyboardButton(Strings[user.lang]["USER_BUTTON"], None, "new_user")]
  228.  
  229. ])
  230.  
  231. bot.send_message(
  232. user.user,
  233. Strings[user.lang]["GREET"] % message.chat.first_name,
  234. reply_markup=inline_keyboard
  235. )
  236.  
  237.  
  238. def wallets_change(bot, update, user):
  239. bot.delete_message(user.user, update.callback_query.message.message_id)
  240. inline_keyboard = InlineKeyboardMarkup([
  241. [InlineKeyboardButton(Strings[user.lang]['balance_button'], None, "mybalance_change")],
  242. [InlineKeyboardButton(Strings[user.lang]['get_cheek'], None, "cheek_change")],
  243. [InlineKeyboardButton(Strings[user.lang]["CHANGE_ABOUT"], None, "text_crypto")],
  244. [InlineKeyboardButton(Strings[user.lang]["BACK_BUTTON"], None, "change_bot")]
  245. ])
  246.  
  247. bot.send_message(user.user, "Личный кабинет", reply_markup=inline_keyboard)
  248.  
  249.  
  250. def parnets_change(bot, update, user):
  251. inline_keyboard = InlineKeyboardMarkup([
  252. [InlineKeyboardButton(Strings[user.lang]["SUPPORT_BUTTON"], "@OnlyGet")],
  253. [InlineKeyboardButton(Strings[user.lang]["COMMUNICATE_WALLET"], None, "")],
  254. [InlineKeyboardButton(Strings[user.lang]["TRADE_RULLE"], None, "")],
  255. [InlineKeyboardButton(Strings[user.lang]["VEREFICATONS_BUTTON"], None, "")],
  256. [InlineKeyboardButton(Strings[user.lang]["BACK_BUTTON"], None, "")]
  257.  
  258. ])
  259.  
  260. bot.delete_message(user.user, update.callback_query.message.message_id)
  261. bot.send_message(user.user, Strings[user.lang]["PARTNER_TEXT"], reply_markup=inline_keyboard)
  262.  
  263.  
  264. def cheek_changes(bot, update, user):
  265. inline_keyboard = InlineKeyboardMarkup([
  266. [InlineKeyboardButton(Strings[user.lang]["BACK_BUTTON"], None, "change_bot")]
  267. ])
  268. bot.delete_message(user.user, update.callback_query.message.message_id)
  269. bot.send_message(user.user, Strings[user.lang]["CHEEK_TEXT"], reply_markup=inline_keyboard)
  270. # message = update.message.text
  271. # print(message)
  272.  
  273.  
  274.  
  275.  
  276. def onEnglishHandler(bot, update, user=None):
  277. user = User(update.callback_query.message.chat.id, 2)
  278. Users[user.user] = user
  279.  
  280. meetHandler(bot, update, user)
  281.  
  282.  
  283. def onRussianHandler(bot, update, user=None):
  284. user = User(update.callback_query.message.chat.id, 1)
  285. Users[user.user] = user
  286.  
  287. meetHandler(bot, update, user)
  288.  
  289.  
  290. def joinCommunityHandlers(bot, update, user=None):
  291. user = Users[update.callback_query.message.chat.id]
  292. bot.send_message(user.user, Strings[user.lang]["JOIN_COMMUNITY"])
  293.  
  294.  
  295. def newInvestHandler(bot, update, user=None):
  296. user.direction = 1
  297.  
  298. sharePhoneKeyboard = ReplyKeyboardMarkup([[
  299. KeyboardButton(Strings[user.lang]["SHARE_PHONE"], request_contact=True)
  300. ]], one_time_keyboard=True, resize_keyboard=True)
  301.  
  302. bot.delete_message(user.user, update.callback_query.message.message_id)
  303. bot.send_message(user.user, Strings[user.lang]["REQUEST_CONTACT"], reply_markup=sharePhoneKeyboard)
  304.  
  305.  
  306. def newSearchInvestsHandler(bot, update, user=None):
  307. user.direction = 2
  308.  
  309. sharePhoneKeyboard = ReplyKeyboardMarkup([[
  310. KeyboardButton(Strings[user.lang]["SHARE_PHONE"], request_contact=True)
  311. ]], one_time_keyboard=True, resize_keyboard=True)
  312.  
  313. bot.delete_message(user.user, update.callback_query.message.message_id)
  314. bot.send_message(user.user, Strings[user.lang]["REQUEST_CONTACT"], reply_markup=sharePhoneKeyboard)
  315.  
  316.  
  317. def newUserHandler(bot, update, user=None):
  318. user.direction = 3
  319.  
  320. sharePhoneKeyboard = ReplyKeyboardMarkup([[
  321. KeyboardButton(Strings[user.lang]["SHARE_PHONE"], request_contact=True)
  322. ]], one_time_keyboard=True, resize_keyboard=True)
  323.  
  324. bot.delete_message(user.user, update.callback_query.message.message_id)
  325. bot.send_message(user.user, Strings[user.lang]["REQUEST_CONTACT"], reply_markup=sharePhoneKeyboard)
  326.  
  327.  
  328. LINK = "https://www.donationalerts.com/r/parlamentclub"
  329.  
  330.  
  331. def donateHandler(bot, update, user=None):
  332. inline_keyboard = InlineKeyboardMarkup([[InlineKeyboardButton(" 100₽ ",
  333. url=LINK),
  334. InlineKeyboardButton(" 250₽ ",
  335. url=LINK),
  336. InlineKeyboardButton(" 500₽ ",
  337. url=LINK)],
  338.  
  339. [InlineKeyboardButton(" Другая сумма ",
  340. url=LINK)],
  341. [InlineKeyboardButton(Strings[user.lang]["BACK_BUTTON"], None,
  342. "interests")]])
  343.  
  344. bot.delete_message(user.user, update.callback_query.message.message_id)
  345. bot.send_message(user.user, Strings[user.lang]["DONATE"], reply_markup=inline_keyboard)
  346.  
  347.  
  348. def offersForYouHandler(bot, update, user=None):
  349. inline_keyboard = InlineKeyboardMarkup([
  350. [InlineKeyboardButton(Strings[user.lang]["INVEST_BUTTON"], None, "invest")],
  351. [InlineKeyboardButton(Strings[user.lang]["SEARCH_INVESTS_BUTTON"], None, "search_invests")],
  352. [InlineKeyboardButton(Strings[user.lang]["PARTNERS_BUTTON"], None, "set_partner")],
  353. [InlineKeyboardButton(Strings[user.lang]["COMMUNITY_BUTTON"], None, "community")],
  354. [InlineKeyboardButton(Strings[user.lang]["FOND_BUTTON"], None, "dev")],
  355. [InlineKeyboardButton(Strings[user.lang]["TRIP_BUSS_BUTTON"], None, "trip")],
  356. [InlineKeyboardButton(Strings[user.lang]["MAIN_BUTTON"], None, "interests")]
  357. ])
  358.  
  359. bot.delete_message(user.user, update.callback_query.message.message_id)
  360. bot.send_message(user.user, Strings[user.lang]["REQUEST_INTERESTS"], reply_markup=inline_keyboard)
  361.  
  362.  
  363. def quizCompletedHandler(bot, update, user):
  364. bot.send_message(user.user, Strings[user.lang]["QUIZ_COMPLETED"])
  365. showInterestsKeyboard(bot, update, user)
  366.  
  367.  
  368. def collectInvestsHandler(bot, update, user=None):
  369. bot.delete_message(user.user, update.callback_query.message.message_id)
  370.  
  371. user.state = 2
  372. user.quiz = INVESTS_QUIZ
  373. user.quizIndex = -1
  374. user.quizId = 1
  375. user.quizAnswers = {}
  376. user.quizCallback = quizCompletedHandler
  377.  
  378. inputQuizHandler(bot, update, user, True)
  379.  
  380.  
  381. def getInvestorHandler(bot, update, user=None):
  382. bot.delete_message(user.user, update.callback_query.message.message_id)
  383.  
  384. user.state = 2
  385. user.quiz = SEARCH_INVEST_QUIZ
  386. user.quizIndex = -1
  387. user.quizId = 2
  388. user.quizAnswers = {}
  389. user.quizCallback = quizCompletedHandler
  390.  
  391. inputQuizHandler(bot, update, user, True)
  392.  
  393.  
  394. def getBuyCrypto(bot, update, user=None):
  395. bot.delete_message(user.user, update.callback_query.message.message_id)
  396.  
  397. user.state = 2
  398. user.quiz = BUY_CRYPTO
  399. user.quizIndex = -1
  400. user.quizId = 3
  401. user.quizAnswers = {}
  402. user.quizCallback = quizCompletedHandler
  403.  
  404. inputQuizHandler(bot, update, user, True)
  405.  
  406.  
  407. def getSellCrypto(bot, update, user=None):
  408. bot.delete_message(user.user, update.callback_query.message.message_id)
  409.  
  410. user.state = 2
  411. user.quiz = SELL_CRYPTO
  412. user.quizIndex = -1
  413. user.quizId = 4
  414. user.quizAnswers = {}
  415. user.quizCallback = quizCompletedHandler
  416.  
  417. inputQuizHandler(bot, update, user, True)
  418.  
  419.  
  420. CallbackHandlers = {
  421. "select_ru": onRussianHandler,
  422. "select_en": onEnglishHandler,
  423. "invest": ["INVEST", [
  424. ["WRITE_PROFILE", None, "https://goo.gl/P1tb8N"],
  425. ["DOWNLOAD_CASE", "dev"],
  426. ["COLLECT_INVESTS", "collect_invests"],
  427. ["INVEST_PARLAMENT_BUTTON", "invest_parlament"],
  428. ["MENTORS_BUTTON", "dev"],
  429. ["COMMUNITY_CHAT", None, "https://t.me/parlamentchat"],
  430. ["MAIN_BUTTON", "interests"],
  431. ["BACK_BUTTON", "offers_for_you"]
  432. ]],
  433. "invest_parlament": ["DEV", [
  434. ["BACK_BUTTON", "offers_for_you"],
  435. ]],
  436. "interests": showInterestsKeyboard,
  437. "search_invests": ["SEARCH_INVESTS", [
  438. ["WRITE_BRIEF_BUTTON", "write_brief"],
  439. ["GET_RECOMENDATION", "dev_search_invests"],
  440. ["MENTORS_BUTTON", "dev_search_invests"],
  441. ["ORDER_INVEST_PACK", 'order_invest_pack'],
  442. ["GET_INVESTOR", 'get_investor'],
  443. ["COMMUNITY_CHAT", None, "https://t.me/parlamentchat"],
  444. ["MAIN_BUTTON", "interests"],
  445. ["BACK_BUTTON", "offers_for_you"]
  446. ]],
  447. "order_invest_pack": ["ORDER_INVEST", [
  448. ["ORDER_LENGING_BUTTON", "-"],
  449. ["ORDER_TIESER_BUTTON", "-"],
  450. ["ORDER_PRESENTATION", "-"],
  451. ["ORDER_INVEST_ESCORT", "-"],
  452. ["ORDER_LAW_ESCORT", "-"],
  453. ["MAIN_BUTTON", "interests"],
  454. ["BACK_BUTTON", "search_invests"]
  455. ]],
  456. "community": ["COMMUNITY", [
  457. ["BILLIONS_BUTTON", None, "http://mlrd.me"],
  458. ["COMMUNITY_CHAT", None, "https://t.me/parlamentchat"],
  459. ["ASK_BUTTON", "ask"],
  460. ["MAIN_BUTTON", "interests"],
  461. ["BACK_BUTTON", "offers_for_you"]
  462. ]],
  463. "write_brief": ["WRITE_BRIEF", [
  464. ["GO_TO_SITE", None, "https://goo.gl/2X1CkW"],
  465. ["BACK_BUTTON", "search_invests"],
  466. ]],
  467. "set_partner": ["DEV", [
  468. ["BACK_BUTTON", "interests"]
  469. ]],
  470. "dev": ["DEV", [
  471. ["BACK_BUTTON", "interests"]
  472. ]],
  473. "dev_search_invests": ["DEV", [
  474. ["BACK_BUTTON", "search_invests"]
  475. ]],
  476. "join_to_community": joinCommunityHandlers,
  477. "new_invest": newInvestHandler,
  478. "new_search_invests": newSearchInvestsHandler,
  479. "new_user": newUserHandler,
  480. "donate": donateHandler,
  481. "offers_for_you": offersForYouHandler,
  482. "collect_invests": collectInvestsHandler,
  483. "get_investor": getInvestorHandler,
  484. "change_bot": showChangeBot,
  485. "buy": getBuyCrypto,
  486. "sell": getSellCrypto,
  487. "wallets": wallets_change,
  488. "trade_deals": change_crypto_menu,
  489. "cheek_change": cheek_changes,
  490. "text_crypto": about_change,
  491. "fond": ["FOND", [
  492. ["GO_TO_SITE", None, "https://example.com"],
  493. ["BACK_BUTTON", "offers_for_you"],
  494. ]],
  495. "ask": ["ASK", [
  496. ["GO_TO_HELPER", None, "https://t.me/username"],
  497. ["BACK_BUTTON", "offers_for_you"],
  498. ]],
  499. "trip": ["TRIP", [
  500. ["GO_TO_ASIA", "dev"],
  501. ["GO_TO_USA", None, "https://t.me/joinchat/DCZxH08MCT34KLlANfoaAg"],
  502. ["BACK_BUTTON", "offers_for_you"],
  503. ]],
  504. "parlament": ["PARLAMENTS", [
  505. ["JOIN_COMMUNITY_BUTTON", None, "https://goo.gl/WorJUd"],
  506. ["COMMUNITY_CHAT", None, "https://t.me/parlamentchat"],
  507. ["MAIN_BUTTON", "interests"],
  508. ]],
  509. "write_admin": ["WRITE_ADMIN", [
  510. ["GO_TO_HELPER", None, "https://t.me/username"],
  511. ["MAIN_BUTTON", "interests"],
  512. ["BACK_BUTTON", "parlament"]
  513. ]],
  514. "our_contacts": ["CONTACTS", [
  515. ["FACEBOOK_BUTTON", None, "https://www.facebook.com/Parlament-CLUB-2187671614802936/"],
  516. ["VK_BUTTON", None, "https://vk.com/parlament.club"],
  517. ["INSTAGRAM_BUTTON", None, "https://www.instagram.com/parlament.club/"],
  518. ["EMAIL_BUTTON", None, "https://example.com"],
  519. ["ADMIN_BUTTON", "write_admin"],
  520. ["BACK_BUTTON", "interests"]
  521. ]],
  522. "cooperation": ["COOPERATION", [
  523. ["BUY_AD", "-"],
  524. ["CROSS_PR", "-"],
  525. ["COOPERATIVE_PROJECT", "-"],
  526. ["ADVICE", "-"],
  527. ["PERSONAL_ESCORT", "-"],
  528. ["OTHER_COOPERATION", "-"],
  529. ["BACK_BUTTON", "interests"]
  530. ]]
  531. }
  532.  
  533. selectLanguageKeyboard = InlineKeyboardMarkup([[
  534. InlineKeyboardButton("Русский 🇷🇺", None, "select_ru"),
  535. InlineKeyboardButton("English 🇱🇷", None, "select_en")
  536. ]])
  537.  
  538.  
  539. def getInlineKeyboard(raw_keyboard, lang):
  540. # Функция для генерации инлайновой клавиатуры из примитивного типа
  541. inline_keyboard = []
  542.  
  543. for i in raw_keyboard:
  544. text = Strings[lang][i[0]]
  545.  
  546. if (len(i) > 2):
  547. inline_keyboard.append([InlineKeyboardButton(text, i[2])])
  548. else:
  549. inline_keyboard.append([InlineKeyboardButton(text, None, i[1])])
  550.  
  551. return InlineKeyboardMarkup(inline_keyboard)
  552.  
  553.  
  554. def errorHandler(bot, update, error):
  555. print(error)
  556.  
  557.  
  558. def callbackQueryHandler(bot, update):
  559. data = update.callback_query.data
  560.  
  561. if (data in CallbackHandlers):
  562. user = None
  563. user_id = update.callback_query.message.chat.id
  564.  
  565. if (user_id in Users):
  566. user = Users[user_id]
  567.  
  568. handler = CallbackHandlers[data]
  569.  
  570. if (callable(handler)):
  571. CallbackHandlers[data](bot, update, user)
  572. elif (type(handler) is str):
  573. bot.delete_message(user_id, update.callback_query.message.message_id)
  574. bot.send_message(user_id, Strings[user.lang][handler])
  575. elif (type(handler) is list):
  576. bot.delete_message(user_id, update.callback_query.message.message_id)
  577. inline_keyboard = getInlineKeyboard(handler[1], user.lang)
  578. bot.send_message(user_id, Strings[user.lang][handler[0]], reply_markup=inline_keyboard)
  579.  
  580. bot.answerCallbackQuery(update.callback_query.id)
  581.  
  582.  
  583. def startHandler(bot, update):
  584. user_id = update.message.chat.id
  585.  
  586. if (user_id in Users):
  587. meetHandler(bot, update, Users[user_id])
  588. return
  589.  
  590. bot.send_message(user_id, SELECT_LANGUAGE, reply_markup=selectLanguageKeyboard)
  591.  
  592.  
  593. def textHandler(bot, update):
  594. user = Users[update.message.chat.id]
  595.  
  596. if (user is not None):
  597. if (user.state in InputHandlers):
  598. InputHandlers[user.state](bot, update, user)
  599. return
  600.  
  601. bot.send_message(update.message.chat.id, update.message.text)
  602.  
  603.  
  604.  
  605. def wallet_inline(bot,update):
  606. user = Users()
  607. inline_keyboard = InlineKeyboardMarkup([
  608. [InlineKeyboardButton(Strings[user.lang]["INVEST_BUTTON"], None, "invest")],
  609. [InlineKeyboardButton(Strings[user.lang]["SEARCH_INVESTS_BUTTON"], None, "search_invests")],
  610. [InlineKeyboardButton(Strings[user.lang]["PARTNERS_BUTTON"], None, "set_partner")],
  611. [InlineKeyboardButton(Strings[user.lang]["COMMUNITY_BUTTON"], None, "community")],
  612. [InlineKeyboardButton(Strings[user.lang]["FOND_BUTTON"], None, "dev")],
  613. [InlineKeyboardButton(Strings[user.lang]["TRIP_BUSS_BUTTON"], None, "trip")],
  614. [InlineKeyboardButton(Strings[user.lang]["MAIN_BUTTON"], None, "interests")]
  615. ])
  616.  
  617. bot.delete_message(user.user, update.callback_query.message.message_id)
  618. bot.send_message(user.user, Strings[user.lang]["REQUEST_INTERESTS"], reply_markup=inline_keyboard)
  619.  
  620. updater.dispatcher.add_handler(RegexHandler("^(💼 Кошелек)$", wallet_inline))
  621. updater.dispatcher.add_handler(MessageHandler(Filters.contact, contactHandler))
  622. updater.dispatcher.add_handler(MessageHandler(Filters.text, textHandler)) # у тебя эта хуйня ворует текст
  623. updater.dispatcher.add_handler(CommandHandler('start', startHandler))
  624.  
  625. updater.dispatcher.add_handler(CallbackQueryHandler(callbackQueryHandler))
  626. updater.dispatcher.add_error_handler(errorHandler)
  627.  
  628. updater.start_polling()
  629. updater.idle()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement