lyrpy 1.0.0__py3-none-any.whl → 2024.0.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of lyrpy might be problematic. Click here for more details.
- {SRC/LIB/lyrpy → lyr}/LUConsole.py +1 -1
- lyr/LUConst.py +45 -0
- {SRC/LIB/lyrpy → lyr}/LUDateTime.py +4 -2
- {SRC/LIB/lyrpy → lyr}/LUDecotators.py +3 -2
- {SRC/LIB/lyrpy → lyr}/LUDict.py +1 -0
- {SRC/LIB/lyrpy → lyr}/LUDoc.py +4 -5
- {SRC/LIB/lyrpy → lyr}/LUErrors.py +1 -0
- {SRC/LIB/lyrpy → lyr}/LUFile.py +66 -120
- {SRC/LIB/lyrpy → lyr}/LUFileUtils.py +45 -60
- {SRC/LIB/lyrpy → lyr}/LULog.py +232 -307
- {SRC/LIB/lyrpy → lyr}/LUObjects.py +4 -4
- {SRC/LIB/lyrpy → lyr}/LUObjectsYT.py +22 -39
- {SRC/LIB/lyrpy → lyr}/LUParserARG.py +3 -2
- {SRC/LIB/lyrpy → lyr}/LUParserINI.py +9 -14
- {SRC/LIB/lyrpy → lyr}/LUParserREG.py +1 -5
- {SRC/LIB/lyrpy → lyr}/LUQThread.py +4 -6
- {SRC/LIB/lyrpy → lyr}/LUQTimer.py +5 -5
- {SRC/LIB/lyrpy → lyr}/LUSheduler.py +23 -24
- {SRC/LIB/lyrpy → lyr}/LUThread.py +6 -7
- {SRC/LIB/lyrpy → lyr}/LUTimer.py +3 -5
- {SRC/LIB/lyrpy → lyr}/LUVersion.py +1 -4
- {SRC/LIB/lyrpy → lyr}/LUYouTube.py +7 -6
- {SRC/LIB/lyrpy → lyr}/LUos.py +5 -15
- {SRC/LIB/lyrpy → lyr}/__init__.py +2 -2
- {SRC/LIB/lyrpy → lyr}/__main__.py +19 -20
- lyrpy-2024.0.1.data/data/data/text.txt +1 -0
- lyrpy-2024.0.1.dist-info/METADATA +43 -0
- lyrpy-2024.0.1.dist-info/RECORD +38 -0
- {lyrpy-1.0.0.dist-info → lyrpy-2024.0.1.dist-info}/WHEEL +1 -1
- lyrpy-2024.0.1.dist-info/top_level.txt +1 -0
- SRC/LIB/__init__.py +0 -0
- SRC/LIB/lyrpy/LUConst.py +0 -358
- SRC/LIB/lyrpy/LUTelegram.py +0 -428
- SRC/__init__.py +0 -0
- TESTS/__init__.py +0 -0
- TESTS/test_main.py +0 -10
- lyrpy-1.0.0.dist-info/METADATA +0 -24
- lyrpy-1.0.0.dist-info/RECORD +0 -42
- lyrpy-1.0.0.dist-info/top_level.txt +0 -2
- {SRC/LIB/lyrpy → lyr}/LUNetwork.py +0 -0
- {SRC/LIB/lyrpy → lyr}/LUNumUtils.py +0 -0
- {SRC/LIB/lyrpy → lyr}/LUProc.py +0 -0
- {SRC/LIB/lyrpy → lyr}/LUStrDecode.py +0 -0
- {SRC/LIB/lyrpy → lyr}/LUStrUtils.py +0 -0
- {SRC/LIB/lyrpy → lyr}/LUSupport.py +0 -0
- {SRC/LIB/lyrpy → lyr}/LUsys.py +0 -0
- {lyrpy-1.0.0.dist-info/licenses → lyrpy-2024.0.1.dist-info}/LICENSE +0 -0
SRC/LIB/lyrpy/LUTelegram.py
DELETED
|
@@ -1,428 +0,0 @@
|
|
|
1
|
-
"""LUTelegram.py"""
|
|
2
|
-
# -*- coding: UTF-8 -*-
|
|
3
|
-
__annotations__ = """
|
|
4
|
-
=======================================================
|
|
5
|
-
Copyright (c) 2025
|
|
6
|
-
Author:
|
|
7
|
-
Lisitsin Y.R.
|
|
8
|
-
Project:
|
|
9
|
-
lyrpy
|
|
10
|
-
|
|
11
|
-
Module:
|
|
12
|
-
LUTelegram.py
|
|
13
|
-
|
|
14
|
-
=======================================================
|
|
15
|
-
"""
|
|
16
|
-
|
|
17
|
-
from fontTools.misc.cython import returns
|
|
18
|
-
#------------------------------------------
|
|
19
|
-
# БИБЛИОТЕКИ python
|
|
20
|
-
#------------------------------------------
|
|
21
|
-
|
|
22
|
-
#------------------------------------------
|
|
23
|
-
# БИБЛИОТЕКИ сторонние
|
|
24
|
-
#------------------------------------------
|
|
25
|
-
|
|
26
|
-
#------------------------------------------
|
|
27
|
-
# БИБЛИОТЕКА telethon
|
|
28
|
-
#------------------------------------------
|
|
29
|
-
# import telethon
|
|
30
|
-
import telethon.sync
|
|
31
|
-
import telethon.tl.types
|
|
32
|
-
|
|
33
|
-
from telethon.sync import TelegramClient
|
|
34
|
-
from telethon.tl.types import PeerUser, PeerChat, PeerChannel
|
|
35
|
-
import re
|
|
36
|
-
import asyncio
|
|
37
|
-
|
|
38
|
-
# from telethon.tl.functions.messages import GetDialogsRequest
|
|
39
|
-
# from telethon.tl.types import InputPeerEmpty
|
|
40
|
-
# from telethon.tl.types import User
|
|
41
|
-
# # класс, позволяющий нам подключаться к клиенту мессенджера и работать с ним;
|
|
42
|
-
# from telethon.sync import TelegramClient
|
|
43
|
-
# # PeerChannel - специальный тип, определяющий объекты типа «канал/чат»,
|
|
44
|
-
# # с помощью которого можно обратиться к нужному каналу для парсинга сообщений.
|
|
45
|
-
# from telethon.tl.types import Channel, PeerChannel, PeerChat, PeerUser, Message, User, MessageMediaPhoto, MessageMediaDocument
|
|
46
|
-
# # конструктор для работы с InputPeer, который передаётся в качестве аргумента в GetDialogsRequest;
|
|
47
|
-
# from telethon.tl.types import InputMessagesFilterPhotos
|
|
48
|
-
# # функция, позволяющая работать с сообщениями в чате;
|
|
49
|
-
# # метод, позволяющий получить сообщения пользователей из чата и работать с ним;
|
|
50
|
-
# from telethon.tl.functions.messages import GetHistoryRequest
|
|
51
|
-
# from telethon import TelegramClient, events, sync
|
|
52
|
-
# import telethon.errors
|
|
53
|
-
# import telethon.client.messages as messages
|
|
54
|
-
#------------------------------------------
|
|
55
|
-
# БИБЛИОТЕКА pyrogram
|
|
56
|
-
#------------------------------------------
|
|
57
|
-
# from pyrogram import Client
|
|
58
|
-
import pyrogram
|
|
59
|
-
|
|
60
|
-
#------------------------------------------
|
|
61
|
-
# БИБЛИОТЕКИ LU
|
|
62
|
-
#------------------------------------------
|
|
63
|
-
|
|
64
|
-
LIB_name = ''
|
|
65
|
-
|
|
66
|
-
# ------------------------------------------
|
|
67
|
-
# Авторизация в Telegram
|
|
68
|
-
# get_telethon_client (session_name, api_id, api_hash, phone, password) -> telethon.sync.TelegramClient:
|
|
69
|
-
# ------------------------------------------
|
|
70
|
-
def get_telethon_client (session_name, api_id, api_hash, phone, password) -> telethon.sync.TelegramClient:
|
|
71
|
-
"""get_telethon_client"""
|
|
72
|
-
# beginfunction
|
|
73
|
-
result = telethon.sync.TelegramClient(session_name, api_id, api_hash, system_version="4.16.30-vxNAME ")
|
|
74
|
-
# Вместо NAME используйте любое сочетание букв на английском КАПСОМ Пример: vxXYI, vxABC, vxMYNAME
|
|
75
|
-
# # (в папке с кодом нет файлика .session, клиент сам его создаст (в нашем случае 'my_session')
|
|
76
|
-
# # и будет с ним работать. Поэтому просто вставляем эти параметры в инициализацию и кайфуем:finger_up: )
|
|
77
|
-
|
|
78
|
-
# Tclient = TelegramClient (Gsession_name, Gapi_id, Gapi_hash,
|
|
79
|
-
# # device_model = "iPhone 13 Pro Max",
|
|
80
|
-
# # app_version = "8.4",
|
|
81
|
-
# # lang_code = "en",
|
|
82
|
-
# # system_lang_code = "en-US")
|
|
83
|
-
# system_version='4.16.30-vxABC')
|
|
84
|
-
# Tclient.start (phone=Gphone, password=Gpassword)
|
|
85
|
-
result.start (phone=phone, password=password)
|
|
86
|
-
result.connect ()
|
|
87
|
-
# print (f'{LIB_name}_user_authorized={result.is_user_authorized()}')
|
|
88
|
-
return result
|
|
89
|
-
# endfunction
|
|
90
|
-
|
|
91
|
-
# ------------------------------------------
|
|
92
|
-
# Получить the current User who is logged
|
|
93
|
-
# get_telethon_me (client:telethon.sync.TelegramClient) -> telethon.tl.types.User:
|
|
94
|
-
# ------------------------------------------
|
|
95
|
-
def get_telethon_me (client:telethon.sync.TelegramClient) -> telethon.tl.types.User:
|
|
96
|
-
"""get_telethon_me"""
|
|
97
|
-
# beginfunction
|
|
98
|
-
result:User = client.get_me ()
|
|
99
|
-
|
|
100
|
-
# print (f'{LIB_name}_username={result.username}')
|
|
101
|
-
# print (f'{LIB_name}_phone={result.phone}')
|
|
102
|
-
|
|
103
|
-
# print (f'{LIB_name}_stringify={result.stringify()}')
|
|
104
|
-
return result
|
|
105
|
-
# endfunction
|
|
106
|
-
|
|
107
|
-
# ------------------------------------------
|
|
108
|
-
# Получить channel
|
|
109
|
-
# get_telethon_channel (client:telethon.sync.TelegramClient, channel_name_id) -> telethon.tl.types.Channel:
|
|
110
|
-
# ------------------------------------------
|
|
111
|
-
def get_telethon_channel (client:telethon.sync.TelegramClient, channel_name_id) -> telethon.tl.types.Channel:
|
|
112
|
-
"""get_telethon_channel"""
|
|
113
|
-
# beginfunction
|
|
114
|
-
result = client.get_entity (channel_name_id)
|
|
115
|
-
# print (result)
|
|
116
|
-
# print(f'{LIB_name}_Channel.title={result.title}')
|
|
117
|
-
# print(f'{LIB_name}_Channel.id={result.id}')
|
|
118
|
-
# print(f'{LIB_name}_Channel.username={result.id}')
|
|
119
|
-
return result
|
|
120
|
-
# endfunction
|
|
121
|
-
|
|
122
|
-
# ------------------------------------------
|
|
123
|
-
# Получить message
|
|
124
|
-
# get_telethon_message (client:telethon.sync.TelegramClient, channel:telethon.tl.types.Channel, message_id) -> telethon.tl.types.Message:
|
|
125
|
-
# ------------------------------------------
|
|
126
|
-
def get_telethon_message (client:telethon.sync.TelegramClient, channel:telethon.tl.types.Channel, message_id) -> telethon.tl.types.Message:
|
|
127
|
-
"""get_telethon_message"""
|
|
128
|
-
# beginfunction
|
|
129
|
-
try:
|
|
130
|
-
result = client.get_messages (channel.id, ids=message_id)
|
|
131
|
-
# print(f'{LIB_name}_Message={result}')
|
|
132
|
-
except:
|
|
133
|
-
result = None
|
|
134
|
-
|
|
135
|
-
return result
|
|
136
|
-
# endfunction
|
|
137
|
-
|
|
138
|
-
#------------------------------------------
|
|
139
|
-
# Получить мои группы
|
|
140
|
-
# get_telethon_mygroups (client:TelegramClient):
|
|
141
|
-
#------------------------------------------
|
|
142
|
-
def get_telethon_mygroups (client:telethon.sync.TelegramClient):
|
|
143
|
-
"""get_telethon_mygroups"""
|
|
144
|
-
#beginfunction
|
|
145
|
-
# Получение списка диалогов
|
|
146
|
-
dialogs = client.get_dialogs()
|
|
147
|
-
# Отображение списка групп
|
|
148
|
-
for dialog in dialogs:
|
|
149
|
-
if dialog.is_group:
|
|
150
|
-
print(f"{LIB_name}_Группа: {dialog.title} (ID: {dialog.id})")
|
|
151
|
-
#endfunction
|
|
152
|
-
|
|
153
|
-
#------------------------------------------
|
|
154
|
-
# Получить список groups
|
|
155
|
-
#------------------------------------------
|
|
156
|
-
def get_telethon_groups (client:telethon.sync.TelegramClient) -> list:
|
|
157
|
-
"""get_telethon_groups"""
|
|
158
|
-
#beginfunction
|
|
159
|
-
chats = []
|
|
160
|
-
last_date = None
|
|
161
|
-
size_chats = 200
|
|
162
|
-
groups = []
|
|
163
|
-
|
|
164
|
-
# -----------------------------------------------
|
|
165
|
-
# Напишем запрос для получения списка групп
|
|
166
|
-
# -----------------------------------------------
|
|
167
|
-
# offset_date и offset_peer мы передаём с пустыми значениями.
|
|
168
|
-
# Обычно они используются для фильтрации полученных данных, но здесь мы
|
|
169
|
-
# хотим получить весь список. Лимит по количеству элементов в ответе задаём 200,
|
|
170
|
-
# передавая в параметр limit переменную size_chats.
|
|
171
|
-
result = client (telethon.tl.functions.messages.GetDialogsRequest (
|
|
172
|
-
offset_date=last_date,
|
|
173
|
-
offset_id=0,
|
|
174
|
-
offset_peer=telethon.tl.types.InputPeerEmpty (),
|
|
175
|
-
limit=size_chats,
|
|
176
|
-
hash=0
|
|
177
|
-
))
|
|
178
|
-
chats.extend (result.chats)
|
|
179
|
-
|
|
180
|
-
# -----------------------------------------------
|
|
181
|
-
#
|
|
182
|
-
# -----------------------------------------------
|
|
183
|
-
for chat in chats:
|
|
184
|
-
try:
|
|
185
|
-
# print (int(chat.megagroup), chat.title)
|
|
186
|
-
|
|
187
|
-
# Megagroup в библиотеке Telethon — это свойство объекта Channel,
|
|
188
|
-
# которое указывает, является ли он мегагруппой (большой группой).
|
|
189
|
-
# Мегагруппы — это каналы, для которых значение свойства channel.megagroup равно True.
|
|
190
|
-
# В официальных приложениях Telegram такие группы называются «супергруппами»
|
|
191
|
-
|
|
192
|
-
if chat.megagroup == True:
|
|
193
|
-
groups.append (chat)
|
|
194
|
-
except:
|
|
195
|
-
continue
|
|
196
|
-
return groups
|
|
197
|
-
|
|
198
|
-
#endfunction
|
|
199
|
-
|
|
200
|
-
#------------------------------------------
|
|
201
|
-
# Получить список groups
|
|
202
|
-
#------------------------------------------
|
|
203
|
-
def get_telethon_groups (client:telethon.sync.TelegramClient) -> list:
|
|
204
|
-
"""get_telethon_groups"""
|
|
205
|
-
#beginfunction
|
|
206
|
-
chats = []
|
|
207
|
-
last_date = None
|
|
208
|
-
size_chats = 200
|
|
209
|
-
groups = []
|
|
210
|
-
|
|
211
|
-
# -----------------------------------------------
|
|
212
|
-
# Напишем запрос для получения списка групп
|
|
213
|
-
# -----------------------------------------------
|
|
214
|
-
# offset_date и offset_peer мы передаём с пустыми значениями.
|
|
215
|
-
# Обычно они используются для фильтрации полученных данных, но здесь мы
|
|
216
|
-
# хотим получить весь список. Лимит по количеству элементов в ответе задаём 200,
|
|
217
|
-
# передавая в параметр limit переменную size_chats.
|
|
218
|
-
result = client (telethon.tl.functions.messages.GetDialogsRequest (
|
|
219
|
-
offset_date=last_date,
|
|
220
|
-
offset_id=0,
|
|
221
|
-
offset_peer=telethon.tl.types.InputPeerEmpty (),
|
|
222
|
-
limit=size_chats,
|
|
223
|
-
hash=0
|
|
224
|
-
))
|
|
225
|
-
chats.extend (result.chats)
|
|
226
|
-
# -----------------------------------------------
|
|
227
|
-
#
|
|
228
|
-
# -----------------------------------------------
|
|
229
|
-
for chat in chats:
|
|
230
|
-
try:
|
|
231
|
-
# print (int(chat.megagroup), chat.title)
|
|
232
|
-
# Megagroup в библиотеке Telethon — это свойство объекта Channel,
|
|
233
|
-
# которое указывает, является ли он мегагруппой (большой группой).
|
|
234
|
-
# Мегагруппы — это каналы, для которых значение свойства channel.megagroup равно True.
|
|
235
|
-
# В официальных приложениях Telegram такие группы называются «супергруппами»
|
|
236
|
-
if chat.megagroup == True:
|
|
237
|
-
groups.append (chat)
|
|
238
|
-
else:
|
|
239
|
-
# groups.append (chat)
|
|
240
|
-
pass
|
|
241
|
-
except:
|
|
242
|
-
continue
|
|
243
|
-
return groups
|
|
244
|
-
#endfunction
|
|
245
|
-
|
|
246
|
-
#------------------------------------------
|
|
247
|
-
# Получить список users group
|
|
248
|
-
#------------------------------------------
|
|
249
|
-
def get_telethon_users_group (client:telethon.sync.TelegramClient, group) -> list:
|
|
250
|
-
"""get_telethon_users_group"""
|
|
251
|
-
#beginfunction
|
|
252
|
-
#-----------------------------------------------
|
|
253
|
-
# Узнаём пользователей...
|
|
254
|
-
#-----------------------------------------------
|
|
255
|
-
all_participants = []
|
|
256
|
-
try:
|
|
257
|
-
all_participants = client.get_participants (group, limit=100000)
|
|
258
|
-
# print (group)
|
|
259
|
-
# for user in all_participants:
|
|
260
|
-
# if user.username:
|
|
261
|
-
# username = user.username
|
|
262
|
-
# else:
|
|
263
|
-
# username = ""
|
|
264
|
-
# if user.first_name:
|
|
265
|
-
# first_name = user.first_name
|
|
266
|
-
# else:
|
|
267
|
-
# first_name = ""
|
|
268
|
-
# if user.last_name:
|
|
269
|
-
# last_name = user.last_name
|
|
270
|
-
# else:
|
|
271
|
-
# last_name = ""
|
|
272
|
-
# name = (first_name + ' ' + last_name).strip ()
|
|
273
|
-
# print(f'{username=}, {name=}, {target_group.title=}')
|
|
274
|
-
except:
|
|
275
|
-
pass
|
|
276
|
-
return all_participants
|
|
277
|
-
#endfunction
|
|
278
|
-
|
|
279
|
-
#------------------------------------------
|
|
280
|
-
# Получить список CHATs
|
|
281
|
-
#------------------------------------------
|
|
282
|
-
def get_telethon_CHATs (client:telethon.sync.TelegramClient):
|
|
283
|
-
"""get_telethon_CHATs"""
|
|
284
|
-
#beginfunction
|
|
285
|
-
# понять, канал или чат, можно проверяя у диалога параметр "dialog.entity.megagroup
|
|
286
|
-
for dialog in client.iter_dialogs ():
|
|
287
|
-
if 'Channel' in str (type (dialog.entity)): # откидываем юзеров
|
|
288
|
-
if dialog.entity.megagroup:
|
|
289
|
-
print (dialog.entity.id, '//', dialog.entity.username,
|
|
290
|
-
' - ', dialog.name, ' is CHAT')
|
|
291
|
-
#endfunction
|
|
292
|
-
|
|
293
|
-
#------------------------------------------
|
|
294
|
-
# Получить список CHANNELs
|
|
295
|
-
#------------------------------------------
|
|
296
|
-
def get_telethon_CHANNELs (client:telethon.sync.TelegramClient):
|
|
297
|
-
"""get_telethon_CHANNELs"""
|
|
298
|
-
#beginfunction
|
|
299
|
-
# понять, канал или чат, можно проверяя у диалога параметр "dialog.entity.megagroup
|
|
300
|
-
for dialog in client.iter_dialogs ():
|
|
301
|
-
if 'Channel' in str (type (dialog.entity)): # откидываем юзеров
|
|
302
|
-
if not dialog.entity.megagroup:
|
|
303
|
-
print (dialog.entity.id, '//', dialog.entity.username,
|
|
304
|
-
' - ', dialog.name, ' is CHANNEL')
|
|
305
|
-
#endfunction
|
|
306
|
-
|
|
307
|
-
# ----------------------------------------------
|
|
308
|
-
# Получаем последние 10 сообщений из указанного чата
|
|
309
|
-
# ----------------------------------------------
|
|
310
|
-
def get_telethon_chat (client:telethon.sync.TelegramClient, chat_id):
|
|
311
|
-
"""get_telethon_chat"""
|
|
312
|
-
#beginfunction
|
|
313
|
-
# ID чата/канала/пользователя, откуда читать сообщения
|
|
314
|
-
# chat_id = '@GardeZ66' # или ID (число), или юзернейм (например, '@telegram')
|
|
315
|
-
for message in client.iter_messages (chat_id, limit=10):
|
|
316
|
-
print (f"{LIB_name}_message.sender_id:{message.sender_id}: {message.text}")
|
|
317
|
-
#endfunction
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
# ----------------------------------------------
|
|
322
|
-
# Функция для парсинга ссылки
|
|
323
|
-
# ----------------------------------------------
|
|
324
|
-
def parse_message_link (link):
|
|
325
|
-
"""parse_message_link"""
|
|
326
|
-
#beginfunction
|
|
327
|
-
pattern = r'https?://t\.me/([a-zA-Z0-9\_]+|c/(\d+))/(\d+)/(\d+)'
|
|
328
|
-
match = re.match (pattern, link)
|
|
329
|
-
if not match:
|
|
330
|
-
raise ValueError ("Invalid link")
|
|
331
|
-
|
|
332
|
-
# print(f'{match.group (1)=}')
|
|
333
|
-
# print(f'{match.group (2)=}')
|
|
334
|
-
# print(f'{match.group (3)=}')
|
|
335
|
-
# print(f'{match.group (4)=}')
|
|
336
|
-
|
|
337
|
-
if match.group (1).startswith ('c'):
|
|
338
|
-
channel_id = int (match.group (3))
|
|
339
|
-
msg_id = int (match.group (3))
|
|
340
|
-
return {'channel_id': channel_id, 'msg_id': msg_id}
|
|
341
|
-
else:
|
|
342
|
-
username = match.group (1)
|
|
343
|
-
msg_id = int (match.group (3))
|
|
344
|
-
return {'username': username, 'msg_id': msg_id}
|
|
345
|
-
#endfunction
|
|
346
|
-
|
|
347
|
-
# ----------------------------------------------
|
|
348
|
-
# async def get_channel_name (link, TelegramClient):
|
|
349
|
-
# ----------------------------------------------
|
|
350
|
-
def get_channel_name (link, session_name, api_id, api_hash, phone):
|
|
351
|
-
"""get_channel_name"""
|
|
352
|
-
#beginfunction
|
|
353
|
-
with TelegramClient (session_name, api_id, api_hash) as client:
|
|
354
|
-
client.start (phone)
|
|
355
|
-
# print (f'{link=}')
|
|
356
|
-
parsed = parse_message_link (link)
|
|
357
|
-
print (f'{parsed=}')
|
|
358
|
-
|
|
359
|
-
if 'username' in parsed:
|
|
360
|
-
entity = client.get_entity (parsed ['username'])
|
|
361
|
-
# entity = client.get_entity (parsed ['msg_id'])
|
|
362
|
-
elif 'channel_id' in parsed:
|
|
363
|
-
entity = client.get_entity (PeerChannel (parsed ['channel_id']))
|
|
364
|
-
else:
|
|
365
|
-
raise ValueError ("Could not resolve entity")
|
|
366
|
-
print (f"Название канала: {entity.title}")
|
|
367
|
-
|
|
368
|
-
# client.disconnect ()
|
|
369
|
-
|
|
370
|
-
return entity.title
|
|
371
|
-
#endfunction
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
# ------------------------------------------
|
|
381
|
-
# Авторизация в Telegram [pyrogram]
|
|
382
|
-
# ------------------------------------------
|
|
383
|
-
def get_pyrogram_client (api_id, api_hash, login, phone) -> pyrogram.Client:
|
|
384
|
-
"""get_pyrogram_client"""
|
|
385
|
-
# beginfunction
|
|
386
|
-
result = pyrogram.Client (login, api_id=api_id, api_hash=api_hash, phone_number=phone)
|
|
387
|
-
result.start ()
|
|
388
|
-
# result.connect ()
|
|
389
|
-
# print (f'{LIB_name}_is_connected={result.is_connected}')
|
|
390
|
-
|
|
391
|
-
# print(Tclient.export_session_string())
|
|
392
|
-
# print(result.workdir)
|
|
393
|
-
|
|
394
|
-
# result.run ()
|
|
395
|
-
return result
|
|
396
|
-
# endfunction
|
|
397
|
-
|
|
398
|
-
# ------------------------------------------
|
|
399
|
-
# Метод client.get_me() в библиотеке Pyrogram возвращает объект pyrogram.User
|
|
400
|
-
# с информацией о текущем зарегистрированном пользователе или боте.
|
|
401
|
-
# ------------------------------------------
|
|
402
|
-
def get_pyrogram_me (client:pyrogram.Client) -> pyrogram.types.User:
|
|
403
|
-
"""get_pyrogram_me"""
|
|
404
|
-
# beginfunction
|
|
405
|
-
result = client.get_me()
|
|
406
|
-
# print (f'{LIB_name}_username={result.username}')
|
|
407
|
-
# print (f'{LIB_name}_phone_number={result.phone_number}')
|
|
408
|
-
# print (f'pyrogram:stringify={result.stringify()}')
|
|
409
|
-
return result
|
|
410
|
-
# endfunction
|
|
411
|
-
|
|
412
|
-
#---------------------------------------------------------
|
|
413
|
-
# main
|
|
414
|
-
#---------------------------------------------------------
|
|
415
|
-
def main ():
|
|
416
|
-
#beginfunction
|
|
417
|
-
pass
|
|
418
|
-
#endfunction
|
|
419
|
-
|
|
420
|
-
#---------------------------------------------------------
|
|
421
|
-
#
|
|
422
|
-
#---------------------------------------------------------
|
|
423
|
-
#beginmodule
|
|
424
|
-
if __name__ == "__main__":
|
|
425
|
-
main()
|
|
426
|
-
#endif
|
|
427
|
-
|
|
428
|
-
#endmodule
|
SRC/__init__.py
DELETED
|
File without changes
|
TESTS/__init__.py
DELETED
|
File without changes
|
TESTS/test_main.py
DELETED
lyrpy-1.0.0.dist-info/METADATA
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: lyrpy
|
|
3
|
-
Version: 1.0.0
|
|
4
|
-
Summary: lyrpy
|
|
5
|
-
Home-page: https://github.com/lisitsinyr/TOOLS_SRC_PY
|
|
6
|
-
Author: lisitsinyr
|
|
7
|
-
Author-email: lisitsinyr@gmail.com
|
|
8
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
9
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
10
|
-
Classifier: Operating System :: OS Independent
|
|
11
|
-
Requires-Python: >=3.6
|
|
12
|
-
Description-Content-Type: text/markdown
|
|
13
|
-
License-File: LICENSE
|
|
14
|
-
Dynamic: author
|
|
15
|
-
Dynamic: author-email
|
|
16
|
-
Dynamic: classifier
|
|
17
|
-
Dynamic: description
|
|
18
|
-
Dynamic: description-content-type
|
|
19
|
-
Dynamic: home-page
|
|
20
|
-
Dynamic: license-file
|
|
21
|
-
Dynamic: requires-python
|
|
22
|
-
Dynamic: summary
|
|
23
|
-
|
|
24
|
-
lyrpy
|
lyrpy-1.0.0.dist-info/RECORD
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
SRC/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
SRC/LIB/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3
|
-
SRC/LIB/lyrpy/LUConsole.py,sha256=B7fFYJy5EdR_141gyFHdDeeyzxEM8rRlrc7XluX1ZcY,13854
|
|
4
|
-
SRC/LIB/lyrpy/LUConst.py,sha256=sjHaVYeTY7BG_HajGaLR9-KSVDI6e2PgmVoDuq_YjlE,14309
|
|
5
|
-
SRC/LIB/lyrpy/LUDateTime.py,sha256=KZSxaEUzmQxY6qeOylOi3FTytjQbdJ1jzfBQGXP22m4,6508
|
|
6
|
-
SRC/LIB/lyrpy/LUDecotators.py,sha256=ls50zFfWFgtW09v5rXgsKYp3fftDFvodkbrColz1J9Y,18991
|
|
7
|
-
SRC/LIB/lyrpy/LUDict.py,sha256=E-YUmBYRCGX3SDcM3VaoRj_5u_ldyOxgXdqMX7Tn2fw,3086
|
|
8
|
-
SRC/LIB/lyrpy/LUDoc.py,sha256=gioclr6lAy5kcKR-CmO2ibVc5aOc1s5COY8XeIuJ70w,1656
|
|
9
|
-
SRC/LIB/lyrpy/LUErrors.py,sha256=dw_TKBJ925sE7ObO50suLtyfxvsomWlEKERJ1eJ7Qfc,2101
|
|
10
|
-
SRC/LIB/lyrpy/LUFile.py,sha256=uqhCfoJ61ZwZkJzSwnL7OGeLCSTskQa7IsACs-2zGlI,51284
|
|
11
|
-
SRC/LIB/lyrpy/LUFileUtils.py,sha256=6yiH89yPD1nA52DYFXVvYnYIc1cD3fM-gNA2eJnnQgo,19683
|
|
12
|
-
SRC/LIB/lyrpy/LULog.py,sha256=6RqZrszIfK4_EtuLlFNzYJwTcd28kg53dQCMbiNbxNE,84216
|
|
13
|
-
SRC/LIB/lyrpy/LUNetwork.py,sha256=jNimFwK1fCZPY1rQOZaIeDdvDNyzv224yYBz40gtqGA,7641
|
|
14
|
-
SRC/LIB/lyrpy/LUNumUtils.py,sha256=BBEWny-h0N9Wji6zXhrnrhN99nBMQetq2xiqtbHgjSQ,6248
|
|
15
|
-
SRC/LIB/lyrpy/LUObjects.py,sha256=ulQ3BUFvuqq8LzoAMn-_BSFedHgBK4-kNoAQSEJyNHY,5948
|
|
16
|
-
SRC/LIB/lyrpy/LUObjectsYT.py,sha256=kL7ltAMCcVwMk3ACc52DYLwFxfsHRJGzp8n4b7cWGEs,29737
|
|
17
|
-
SRC/LIB/lyrpy/LUParserARG.py,sha256=7ppyv9OmCSxIE4SwzoMCDb-ireIdNz9a3jFB4ZT-yqs,14598
|
|
18
|
-
SRC/LIB/lyrpy/LUParserINI.py,sha256=PEYv8YaGKolQz0J7pGBEWJzc07_WrMAy8cyPdW3Scx4,11144
|
|
19
|
-
SRC/LIB/lyrpy/LUParserREG.py,sha256=WdIKx7wrK9F2piWZCgbbItUjqHPHlQsGQv0yEnPDtLI,19510
|
|
20
|
-
SRC/LIB/lyrpy/LUProc.py,sha256=nhERQhm5a6aazZfttxXYHiyhiTRfMgS4JGSDy_jKzo4,3248
|
|
21
|
-
SRC/LIB/lyrpy/LUQThread.py,sha256=u7buOsymIuTB4TLX3v04Jj4frs-yO_dwU_AGKuC9LbU,4115
|
|
22
|
-
SRC/LIB/lyrpy/LUQTimer.py,sha256=U3J6TVo_ZTMRzHwhz-PYqdE9qc3Nd2Wlj7hobE_vVQQ,5470
|
|
23
|
-
SRC/LIB/lyrpy/LUSheduler.py,sha256=ypINAPgqpTBwdpeOpd8Zt2yXfMmZu4Uop-StTEfFZks,31789
|
|
24
|
-
SRC/LIB/lyrpy/LUStrDecode.py,sha256=fJbnBRzZGh6PSXgqkOOsdIFgi1ZlBPTVoBjDWrDG4bA,9312
|
|
25
|
-
SRC/LIB/lyrpy/LUStrUtils.py,sha256=SRCD-cM0fR3W7EzjZO-DSkzoIyHwX1Ws0HZrKTFC2_M,24575
|
|
26
|
-
SRC/LIB/lyrpy/LUSupport.py,sha256=8I8b9RcY7pFXqXycZ7tn1CtVWX48mPNuJQDLd5Hn5sg,3085
|
|
27
|
-
SRC/LIB/lyrpy/LUTelegram.py,sha256=gj-_5PgYSbrmEoAilFJa_ExkYCu9z7DW2Yxbf0n5zDY,18066
|
|
28
|
-
SRC/LIB/lyrpy/LUThread.py,sha256=g6wo59JbL8PdjMmvefuzziacL-5GUZE9-jKejC5mACs,6163
|
|
29
|
-
SRC/LIB/lyrpy/LUTimer.py,sha256=5f8DAijY1kElQRDjsBfZbZi02DygOaGmx9Tr6IXTFUU,4092
|
|
30
|
-
SRC/LIB/lyrpy/LUVersion.py,sha256=457Jt2ATpaLtLi0qtt4LkXcS6KOGUIn_18TC8ENK3gE,12277
|
|
31
|
-
SRC/LIB/lyrpy/LUYouTube.py,sha256=QSp4LcPR52GUhUDQ5iE121JKG_zwBeRtfVOEFjRJqR8,6323
|
|
32
|
-
SRC/LIB/lyrpy/LUos.py,sha256=jOPr9LITF9JE7mvHTw7ZGqybWvjprldWwd6MShoMnxk,27918
|
|
33
|
-
SRC/LIB/lyrpy/LUsys.py,sha256=MVGkpR7O7Uj6zk10b5ZYfSnWWnBMVAXSgQb4EE61ObI,1103
|
|
34
|
-
SRC/LIB/lyrpy/__init__.py,sha256=6FdzVR8cXA4X4J6XaejLUuZsC2CBxthsfKnNHSxPxnw,451
|
|
35
|
-
SRC/LIB/lyrpy/__main__.py,sha256=eA8vYGJZ5xsYsm_uW7VxsMvNHJ5OUnqhYdb1hSC_XWo,452
|
|
36
|
-
TESTS/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
37
|
-
TESTS/test_main.py,sha256=_SvpIN2NPsxFpUohRSkiSbLPLITw6NHuQ0Z9MqzIAio,246
|
|
38
|
-
lyrpy-1.0.0.dist-info/licenses/LICENSE,sha256=hM4FdoGLL-HQV5eP3W5n52Gkben0U-a50qcOXR9_M60,1096
|
|
39
|
-
lyrpy-1.0.0.dist-info/METADATA,sha256=zc8DcM-rx72GoKsPE6LxGIXLLhK4c2rSLB3n5YyqUdg,632
|
|
40
|
-
lyrpy-1.0.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
41
|
-
lyrpy-1.0.0.dist-info/top_level.txt,sha256=-28kPL-odBc39gsKIz6xrbuLKn5grxtpoPoZwPrJEqQ,10
|
|
42
|
-
lyrpy-1.0.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
{SRC/LIB/lyrpy → lyr}/LUProc.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{SRC/LIB/lyrpy → lyr}/LUsys.py
RENAMED
|
File without changes
|
|
File without changes
|