· 5 years ago · Oct 02, 2020, 01:34 PM
1import operator
2import requests
3from telegram.ext import (Updater, CommandHandler, MessageHandler, Filters,
4 RegexHandler, ConversationHandler, CallbackQueryHandler)
5from telegram import InlineKeyboardButton, InlineKeyboardMarkup, ReplyKeyboardMarkup
6import mysql.connector
7from mysql.connector import Error
8from iqoptionapi.stable_api import IQ_Option
9from datetime import datetime
10import time
11import sys
12
13
14STATE1 = 1
15STATE2 = 2
16STATE3 = 3
17STATE4 = 4
18
19global isconnectedchave
20isconnectedchave = "false"
21global senha
22senha =""
23global email
24email = ""
25
26def welcome(update, context):
27 try:
28 username = update.message.from_user.username
29 firstName = update.message.from_user.first_name
30 lastName = update.message.from_user.last_name
31 message = ' Hello,' + firstName + '! ?\n click to put acess key /checkid.'
32 context.bot.send_message(chat_id=update.effective_chat.id, text=message)
33
34 except Exception as e:
35 print(str(e))
36
37def checkid(update, context):
38 try:
39 message = 'Insert your key ?:'
40 update.message.reply_text(message, reply_markup=ReplyKeyboardMarkup([], one_time_keyboard=True))
41 idAcesso = update.message.text
42 return STATE1
43 except Exception as e:
44 print(str(e))
45
46
47def getID(update, context):
48 global isconnectedchave
49 isconnectedchave = "false"
50 idAcesso = update.message.text
51 print(idAcesso)
52 try:
53 conn = mysql.connector.connect(host='',
54 database='',
55 user='',
56 password='')
57 if conn.is_connected():
58 print('Connected to MySQL database')
59
60 except Error as e:
61 print(e)
62 message = 'Failed to conect'
63 context.bot.send_message(chat_id=update.effective_chat.id, text=message)
64 isconnectedchave = "false"
65 return ConversationHandler.END
66
67
68 finally:
69 isconnectedchave = "false"
70 cursor = conn.cursor()
71 sql = "SELECT user FROM users where active = 'S' AND key = %s"
72 cursor.execute(sql, (idAcesso,))
73 if cursor.fetchone():
74
75 message = ' Ok, done lets /config:'
76 context.bot.send_message(chat_id=update.effective_chat.id, text=message)
77 isconnectedchave = "true"
78 return ConversationHandler.END
79 else:
80 message ='It seems your key dont exists or get expired !.'
81 context.bot.send_message(chat_id=update.effective_chat.id, text=message)
82 isconnectedchave = false
83 return ConversationHandler.END
84
85
86
87def config(update, context):
88 global isconnectedchave
89 if isconnectedchave == "true":
90 try:
91 message = 'Put you iq option email'
92 update.message.reply_text(message, reply_markup=ReplyKeyboardMarkup([], one_time_keyboard=True))
93 return STATE2
94 except Exception as e:
95 print(str(e))
96 else:
97 message = 'You dont put your acess key. Go /checkid'
98 update.message.reply_text(message, reply_markup=ReplyKeyboardMarkup([], one_time_keyboard=True))
99 isconnectedchave = "false"
100 return ConversationHandler.END
101
102def askEmail(update, context):
103 global email
104 email = update.message.text
105 print(email)
106 email = update.message.text
107 if operator.contains(email, "@gmail.com") or operator.contains(email, "@hotmail.com"):
108 message = "Sent"
109 context.bot.send_message(chat_id=update.effective_chat.id, text=message)
110 message = "Now put your iq option password"
111 context.bot.send_message(chat_id=update.effective_chat.id, text=message)
112 return STATE4
113 else:
114 message = 'Email ' +email + ' its invalid. Click /config to restart.'
115 context.bot.send_message(chat_id=update.effective_chat.id, text=message)
116 return ConversationHandler.END
117
118
119def askSenha(update, context):
120
121 message = 'Please put you password:'
122 context.bot.send_message(chat_id=update.effective_chat.id, text=message)
123 return STATE4
124
125
126
127def getSenha(update, context):
128 global senha
129 senha = update.message.text.lower()
130 print(senha)
131 if len(senha) > 6:
132 message = "Password saved "
133 context.bot.send_message(chat_id=update.effective_chat.id, text=message)
134 message = 'Now /configiq'
135 context.bot.send_message(chat_id=update.effective_chat.id, text=message)
136
137 return ConversationHandler.END
138 else:
139 message = 'Pass too short. /config to restart.'
140 context.bot.send_message(chat_id=update.effective_chat.id, text=message)
141 return ConversationHandler.END
142
143def configiq(update, context):
144 global isconnectedchave
145 if isconnectedchave == "false":
146 message = 'Acess key not inserted go /checkid'
147 update.message.reply_text(message, reply_markup=ReplyKeyboardMarkup([], one_time_keyboard=True))
148 isconnectedchave = "false"
149 return ConversationHandler.END
150
151 if email !="" and senha !="":
152 API = IQ_Option(email, senha)
153 API.connect()
154 API.change_balance('PRACTICE')
155 else:
156 message = 'Data not entered. go /config'
157 context.bot.send_message(chat_id=update.effective_chat.id, text=message)
158 return ConversationHandler.END
159 if API.check_connect():
160 print(' Connected!')
161 message = 'Connected to iq option.'
162 context.bot.send_message(chat_id=update.effective_chat.id, text=message)
163 else:
164 print(' Conrction error')
165 message = 'Error connecting to IQ Option /config to insert new data'
166 context.bot.send_message(chat_id=update.effective_chat.id, text=message)
167
168def cancel(update, context):
169 return ConversationHandler.END
170
171
172def main():
173 try:
174 # token = os.getenv('TELEGRAM_BOT_TOKEN', None)
175 token = ''
176 updater = Updater(token=token, use_context=True)
177
178 updater.dispatcher.add_handler(CommandHandler('start', welcome))
179
180
181 conversation_handler = ConversationHandler(
182 entry_points=[CommandHandler('checkid', checkid),CommandHandler('config', config),CommandHandler('configiq', configiq)],
183 states={
184 STATE1: [MessageHandler(Filters.text, getID)],
185 STATE2: [MessageHandler(Filters.text, askEmail)],
186 STATE3: [MessageHandler(Filters.text, askSenha)],
187 STATE4: [MessageHandler(Filters.text, getSenha)]
188
189 },
190 fallbacks=[CommandHandler('cancel', cancel)])
191 updater.dispatcher.add_handler(conversation_handler)
192
193
194
195 print("Updater no ar: " + str(updater))
196 updater.start_polling()
197 updater.idle()
198 except Exception as e:
199 print(str(e))
200
201
202if __name__ == "__main__":
203 main()