15
15
#
16
16
17
17
""" UserBot hazırlanışı. """
18
- import os
19
- import re
20
-
21
18
from sys import version_info
19
+ if version_info [0 ] < 3 or version_info [1 ] < 8 :
20
+ LOGS .info ("En az python 3.8 sürümüne sahip olmanız gerekir. "
21
+ "Birden fazla özellik buna bağlıdır. Bot kapatılıyor." )
22
+ quit (1 )
23
+
24
+ from os import environ
25
+ from re import compile as recomp
26
+ from re import search as resr
27
+
22
28
from logging import basicConfig , getLogger , INFO , DEBUG
23
29
from distutils .util import strtobool as sb
24
30
from math import ceil
25
31
26
32
from pylast import LastFMNetwork , md5
27
33
from dotenv import load_dotenv
28
- from requests import get
29
34
from telethon .sync import TelegramClient , custom , events
30
35
from telethon .sessions import StringSession
31
- from telethon .utils import get_peer_id
32
36
load_dotenv ("config.env" )
33
37
34
38
# Bot günlükleri kurulumu:
35
- CONSOLE_LOGGER_VERBOSE = sb (os . environ .get ("CONSOLE_LOGGER_VERBOSE" , "False" ))
39
+ CONSOLE_LOGGER_VERBOSE = sb (environ .get ("CONSOLE_LOGGER_VERBOSE" , "False" ))
36
40
37
41
ASYNC_POOL = []
38
-
39
- if CONSOLE_LOGGER_VERBOSE :
40
- basicConfig (
41
- format = "%(asctime)s - %(name)s - %(levelname)s - %(message)s" ,
42
- level = DEBUG ,
43
- )
44
- else :
45
- basicConfig (format = "%(asctime)s - %(name)s - %(levelname)s - %(message)s" ,
46
- level = INFO )
42
+ basicConfig (
43
+ format = "%(asctime)s - %(name)s - %(levelname)s - %(message)s" ,
44
+ level = DEBUG if CONSOLE_LOGGER_VERBOSE else INFO ,
45
+ )
47
46
LOGS = getLogger (__name__ )
48
47
49
- if version_info [0 ] < 3 or version_info [1 ] < 8 :
50
- LOGS .info ("En az python 3.8 sürümüne sahip olmanız gerekir."
51
- "Birden fazla özellik buna bağlıdır. Bot kapatılıyor." )
52
- quit (1 )
53
-
54
48
# Yapılandırmanın önceden kullanılan değişkeni kullanarak düzenlenip düzenlenmediğini kontrol edin.
55
49
# Temel olarak, yapılandırma dosyası için kontrol.
56
- CONFIG_CHECK = os . environ .get (
50
+ CONFIG_CHECK = environ .get (
57
51
"___________LUTFEN_______BU_____SATIRI_____SILIN__________" , None )
58
52
59
53
if CONFIG_CHECK :
63
57
quit (1 )
64
58
65
59
# Telegram API KEY ve HASH
66
- API_KEY = os . environ .get ("API_KEY" , None )
67
- API_HASH = os . environ .get ("API_HASH" , None )
60
+ API_KEY = environ .get ("API_KEY" , None )
61
+ API_HASH = environ .get ("API_HASH" , None )
68
62
69
63
# UserBot Session String
70
- STRING_SESSION = os . environ .get ("STRING_SESSION" , None )
64
+ STRING_SESSION = environ .get ("STRING_SESSION" , None )
71
65
72
66
# Kanal / Grup ID yapılandırmasını günlüğe kaydetme.
73
- BOTLOG_CHATID = int (os .environ .get ("BOTLOG_CHATID" , None ))
67
+ BOTLOG_CHATID = environ .get ("BOTLOG_CHATID" , None )
68
+ BOTLOG_CHATID = int (BOTLOG_CHATID ) if BOTLOG_CHATID and resr ('^-?\d+$' , BOTLOG_CHATID ) else None
74
69
75
70
# Alive Mesajını değiştirme.
76
- ALIVE_MESAJI = os . environ .get ("ALIVE_MESAJI" , "Merhaba Seden! Seni Seviyorum ❤️" )
71
+ ALIVE_MESAJI = environ .get ("ALIVE_MESAJI" , "Merhaba Seden! Seni Seviyorum ❤️" )
77
72
78
73
# UserBot günlükleme özelliği.
79
- BOTLOG = sb (os . environ .get ("BOTLOG" , "False" ))
80
- LOGSPAMMER = sb (os . environ .get ("LOGSPAMMER" , "False" ))
74
+ BOTLOG = sb (environ .get ("BOTLOG" , "False" ))
75
+ LOGSPAMMER = sb (environ .get ("LOGSPAMMER" , "False" ))
81
76
82
77
# Hey! Bu bir bot. Endişelenme ;)
83
- PM_AUTO_BAN = sb (os . environ .get ("PM_AUTO_BAN" , "False" ))
78
+ PM_AUTO_BAN = sb (environ .get ("PM_AUTO_BAN" , "False" ))
84
79
85
80
# Güncelleyici için Heroku hesap bilgileri.
86
- HEROKU_APPNAME = os . environ .get ("HEROKU_APPNAME" , None )
87
- HEROKU_APIKEY = os . environ .get ("HEROKU_APIKEY" , None )
81
+ HEROKU_APPNAME = environ .get ("HEROKU_APPNAME" , None )
82
+ HEROKU_APIKEY = environ .get ("HEROKU_APIKEY" , None )
88
83
89
84
# Güncelleyici için özel (fork) repo linki.
90
- UPSTREAM_REPO_URL = os . environ .get (
85
+ UPSTREAM_REPO_URL = environ .get (
91
86
"UPSTREAM_REPO_URL" ,
92
87
"https://github.com/TeamDerUntergang/Telegram-UserBot.git" )
93
88
94
89
# Ayrıntılı konsol günlügü
95
- CONSOLE_LOGGER_VERBOSE = sb (os . environ .get ("CONSOLE_LOGGER_VERBOSE" , "False" ))
90
+ CONSOLE_LOGGER_VERBOSE = sb (environ .get ("CONSOLE_LOGGER_VERBOSE" , "False" ))
96
91
97
92
# SQL Veritabanı
98
- DB_URI = os . environ .get ("DATABASE_URL" , None )
93
+ DB_URI = environ .get ("DATABASE_URL" , None )
99
94
100
95
# OCR API key
101
- OCR_SPACE_API_KEY = os . environ .get ("OCR_SPACE_API_KEY" , None )
96
+ OCR_SPACE_API_KEY = environ .get ("OCR_SPACE_API_KEY" , None )
102
97
103
98
# remove.bg API key
104
- REM_BG_API_KEY = os . environ .get ("REM_BG_API_KEY" , None )
99
+ REM_BG_API_KEY = environ .get ("REM_BG_API_KEY" , None )
105
100
106
101
# AUTO PP
107
- AUTO_PP = os . environ .get ("AUTO_PP" , None )
102
+ AUTO_PP = environ .get ("AUTO_PP" , None )
108
103
109
104
# Chrome sürücüsü ve Google Chrome dosyaları
110
- CHROME_DRIVER = os . environ .get ("CHROME_DRIVER" , None )
105
+ CHROME_DRIVER = environ .get ("CHROME_DRIVER" , None )
111
106
112
107
# Hava durumu varsayılan şehir
113
- WEATHER_DEFCITY = os . environ .get ("WEATHER_DEFCITY" , None )
108
+ WEATHER_DEFCITY = environ .get ("WEATHER_DEFCITY" , None )
114
109
115
110
# Lydia API
116
- LYDIA_API_KEY = os . environ .get ("LYDIA_API_KEY" , None )
111
+ LYDIA_API_KEY = environ .get ("LYDIA_API_KEY" , None )
117
112
118
113
# Anti Spambot
119
- ANTI_SPAMBOT = sb (os . environ .get ("ANTI_SPAMBOT" , "False" ))
120
- ANTI_SPAMBOT_SHOUT = sb (os . environ .get ("ANTI_SPAMBOT_SHOUT" , "False" ))
114
+ ANTI_SPAMBOT = sb (environ .get ("ANTI_SPAMBOT" , "False" ))
115
+ ANTI_SPAMBOT_SHOUT = sb (environ .get ("ANTI_SPAMBOT_SHOUT" , "False" ))
121
116
122
117
# Youtube API key
123
- YOUTUBE_API_KEY = os . environ .get ("YOUTUBE_API_KEY" , None )
118
+ YOUTUBE_API_KEY = environ .get ("YOUTUBE_API_KEY" , None )
124
119
125
120
# Saat & Tarih - Ülke ve Saat Dilimi
126
- COUNTRY = str (os . environ .get ("COUNTRY" , "" ))
127
- TZ_NUMBER = int (os . environ .get ("TZ_NUMBER" , 1 ))
121
+ COUNTRY = str (environ .get ("COUNTRY" , "" ))
122
+ TZ_NUMBER = int (environ .get ("TZ_NUMBER" , 3 ))
128
123
129
124
# Temiz Karşılama
130
- CLEAN_WELCOME = sb (os . environ .get ("CLEAN_WELCOME" , "True" ))
125
+ CLEAN_WELCOME = sb (environ .get ("CLEAN_WELCOME" , "True" ))
131
126
132
127
# Last.fm modülü
133
- BIO_PREFIX = os . environ .get ("BIO_PREFIX" , None )
134
- DEFAULT_BIO = os . environ .get ("DEFAULT_BIO" , None )
128
+ BIO_PREFIX = environ .get ("BIO_PREFIX" , None )
129
+ DEFAULT_BIO = environ .get ("DEFAULT_BIO" , None )
135
130
136
- LASTFM_API = os . environ .get ("LASTFM_API" , None )
137
- LASTFM_SECRET = os . environ .get ("LASTFM_SECRET" , None )
138
- LASTFM_USERNAME = os . environ .get ("LASTFM_USERNAME" , None )
139
- LASTFM_PASSWORD_PLAIN = os . environ .get ("LASTFM_PASSWORD" , None )
131
+ LASTFM_API = environ .get ("LASTFM_API" , None )
132
+ LASTFM_SECRET = environ .get ("LASTFM_SECRET" , None )
133
+ LASTFM_USERNAME = environ .get ("LASTFM_USERNAME" , None )
134
+ LASTFM_PASSWORD_PLAIN = environ .get ("LASTFM_PASSWORD" , None )
140
135
LASTFM_PASS = md5 (LASTFM_PASSWORD_PLAIN )
141
136
if LASTFM_API and LASTFM_SECRET and LASTFM_USERNAME and LASTFM_PASS :
142
137
lastfm = LastFMNetwork (api_key = LASTFM_API ,
147
142
lastfm = None
148
143
149
144
# Google Drive Modülü
150
- G_DRIVE_CLIENT_ID = os . environ .get ("G_DRIVE_CLIENT_ID" , None )
151
- G_DRIVE_CLIENT_SECRET = os . environ .get ("G_DRIVE_CLIENT_SECRET" , None )
152
- G_DRIVE_AUTH_TOKEN_DATA = os . environ .get ("G_DRIVE_AUTH_TOKEN_DATA" , None )
153
- GDRIVE_FOLDER_ID = os . environ .get ("GDRIVE_FOLDER_ID" , None )
154
- TEMP_DOWNLOAD_DIRECTORY = os . environ .get ("TMP_DOWNLOAD_DIRECTORY" ,
145
+ G_DRIVE_CLIENT_ID = environ .get ("G_DRIVE_CLIENT_ID" , None )
146
+ G_DRIVE_CLIENT_SECRET = environ .get ("G_DRIVE_CLIENT_SECRET" , None )
147
+ G_DRIVE_AUTH_TOKEN_DATA = environ .get ("G_DRIVE_AUTH_TOKEN_DATA" , None )
148
+ GDRIVE_FOLDER_ID = environ .get ("GDRIVE_FOLDER_ID" , None )
149
+ TEMP_DOWNLOAD_DIRECTORY = environ .get ("TMP_DOWNLOAD_DIRECTORY" ,
155
150
"./downloads" )
156
151
157
152
# Inline bot çalışması için
158
- BOT_TOKEN = os . environ .get ("BOT_TOKEN" , None )
159
- BOT_USERNAME = os . environ .get ("BOT_USERNAME" , None )
153
+ BOT_TOKEN = environ .get ("BOT_TOKEN" , None )
154
+ BOT_USERNAME = environ .get ("BOT_USERNAME" , None )
160
155
161
156
# Genius modülünün çalışması için buradan değeri alın https://genius.com/developers her ikisi de aynı değerlere sahiptir
162
- GENIUS_API_TOKEN = os . environ .get ("GENIUS_API_TOKEN" , None )
157
+ GENIUS_API_TOKEN = environ .get ("GENIUS_API_TOKEN" , None )
163
158
164
159
# Ayarlanabilir PM izin verilmedi mesajı
165
- PM_UNAPPROVED = os . environ .get ("PM_UNAPPROVED" , None )
160
+ PM_UNAPPROVED = environ .get ("PM_UNAPPROVED" , None )
166
161
167
162
CMD_HELP = {}
168
163
171
166
"""
172
167
173
168
# 'bot' değişkeni
174
- if STRING_SESSION :
175
- # pylint: devre dışı=geçersiz ad
176
- bot = TelegramClient (StringSession (STRING_SESSION ), API_KEY , API_HASH )
177
- else :
178
- # pylint: devre dışı=geçersiz ad
179
- bot = TelegramClient ("sedenbot" , API_KEY , API_HASH )
169
+ bot = TelegramClient (StringSession (STRING_SESSION if STRING_SESSION else "sedenbot" ), API_KEY , API_HASH )
180
170
181
171
async def check_botlog_chatid ():
182
172
if not BOTLOG_CHATID and LOGSPAMMER :
@@ -247,9 +237,9 @@ def paginate_help(page_number, loaded_modules, prefix):
247
237
modulo_page = page_number % max_num_pages
248
238
if len (pairs ) > number_of_rows :
249
239
pairs = pairs [modulo_page * number_of_rows :number_of_rows * (modulo_page + 1 )] + \
250
- [
251
- (custom .Button .inline ("⬅️Geri " , data = "{ }_prev({})". format ( prefix , modulo_page ) ),
252
- custom .Button .inline ("İleri➡️" , data = "{ }_next({})". format ( prefix , modulo_page ) ))
240
+ [
241
+ (custom .Button .inline ("⬅️ Geri " , data = f" { prefix } _prev({ modulo_page } )" ),
242
+ custom .Button .inline ("İleri ➡️" , data = f" { prefix } _next({ modulo_page } )" ))
253
243
]
254
244
return pairs
255
245
@@ -287,7 +277,7 @@ async def inline_handler(event):
287
277
text = """@SedenUserBot'u kullanmayı deneyin!
288
278
Hesabınızı bot'a çevirebilirsiniz ve bunları kullanabilirsiniz. Unutmayın, siz başkasının botunu yönetemezsiniz! Alttaki GitHub adresinden tüm kurulum detayları anlatılmıştır.""" ,
289
279
buttons = [
290
- [custom .Button .url ("Kanala Katıl" , "https://t.me/SedenUserBot" ), custom .Button .url (
280
+ [custom .Button .url ("Kanala Katıl" , "https://t.me/SedenUserBot" ), custom .custom . Button .url (
291
281
"Gruba Katıl" , "https://t.me/SedenUserBotSupport" )],
292
282
[custom .Button .url (
293
283
"GitHub" , "https://github.com/TeamDerUntergang/Telegram-UserBot" )]
@@ -297,7 +287,7 @@ async def inline_handler(event):
297
287
await event .answer ([result ] if result else None )
298
288
299
289
@tgbot .on (events .callbackquery .CallbackQuery ( # pylint:disable=E0602
300
- data = re . compile (b"helpme_next\((.+?)\)" )
290
+ data = recomp (b"helpme_next\((.+?)\)" )
301
291
))
302
292
async def on_plug_in_callback_query_handler (event ):
303
293
if event .query .user_id == uid : # pylint:disable=E0602
@@ -312,7 +302,7 @@ async def on_plug_in_callback_query_handler(event):
312
302
await event .answer (reply_pop_up_alert , cache_time = 0 , alert = True )
313
303
314
304
@tgbot .on (events .callbackquery .CallbackQuery ( # pylint:disable=E0602
315
- data = re . compile (b"helpme_prev\((.+?)\)" )
305
+ data = recomp (b"helpme_prev\((.+?)\)" )
316
306
))
317
307
async def on_plug_in_callback_query_handler (event ):
318
308
if event .query .user_id == uid : # pylint:disable=E0602
@@ -330,7 +320,7 @@ async def on_plug_in_callback_query_handler(event):
330
320
await event .answer (reply_pop_up_alert , cache_time = 0 , alert = True )
331
321
332
322
@tgbot .on (events .callbackquery .CallbackQuery ( # pylint:disable=E0602
333
- data = re . compile (b"ub_modul_(.*)" )
323
+ data = recomp (b"ub_modul_(.*)" )
334
324
))
335
325
async def on_plug_in_callback_query_handler (event ):
336
326
if event .query .user_id == uid : # pylint:disable=E0602
0 commit comments