dublib 0.6.0__tar.gz → 0.6.2__tar.gz
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.
- {dublib-0.6.0/src/dublib.egg-info → dublib-0.6.2}/PKG-INFO +1 -1
- {dublib-0.6.0 → dublib-0.6.2}/pyproject.toml +2 -2
- {dublib-0.6.0 → dublib-0.6.2}/src/dublib/TelebotUtils.py +47 -19
- {dublib-0.6.0 → dublib-0.6.2/src/dublib.egg-info}/PKG-INFO +1 -1
- {dublib-0.6.0 → dublib-0.6.2}/LICENSE +0 -0
- {dublib-0.6.0 → dublib-0.6.2}/README.md +0 -0
- {dublib-0.6.0 → dublib-0.6.2}/setup.cfg +0 -0
- {dublib-0.6.0 → dublib-0.6.2}/src/dublib/Exceptions/StyledPrinter.py +0 -0
- {dublib-0.6.0 → dublib-0.6.2}/src/dublib/Exceptions/TelebotUtils.py +0 -0
- {dublib-0.6.0 → dublib-0.6.2}/src/dublib/Exceptions/Terminalyzer.py +0 -0
- {dublib-0.6.0 → dublib-0.6.2}/src/dublib/Exceptions/WebRequestor.py +0 -0
- {dublib-0.6.0 → dublib-0.6.2}/src/dublib/Exceptions/__init__.py +0 -0
- {dublib-0.6.0 → dublib-0.6.2}/src/dublib/Methods.py +0 -0
- {dublib-0.6.0 → dublib-0.6.2}/src/dublib/Polyglot.py +0 -0
- {dublib-0.6.0 → dublib-0.6.2}/src/dublib/StyledPrinter.py +0 -0
- {dublib-0.6.0 → dublib-0.6.2}/src/dublib/Terminalyzer.py +0 -0
- {dublib-0.6.0 → dublib-0.6.2}/src/dublib/WebRequestor.py +0 -0
- {dublib-0.6.0 → dublib-0.6.2}/src/dublib/__init__.py +0 -0
- {dublib-0.6.0 → dublib-0.6.2}/src/dublib.egg-info/SOURCES.txt +0 -0
- {dublib-0.6.0 → dublib-0.6.2}/src/dublib.egg-info/dependency_links.txt +0 -0
- {dublib-0.6.0 → dublib-0.6.2}/src/dublib.egg-info/requires.txt +0 -0
- {dublib-0.6.0 → dublib-0.6.2}/src/dublib.egg-info/top_level.txt +0 -0
|
@@ -3,7 +3,7 @@ requires = ["setuptools", "cython"]
|
|
|
3
3
|
|
|
4
4
|
[project]
|
|
5
5
|
name = "dublib"
|
|
6
|
-
version = "0.6.
|
|
6
|
+
version = "0.6.2"
|
|
7
7
|
description = "Коллекция модулей от DUB1401."
|
|
8
8
|
authors = [
|
|
9
9
|
{name = "DUB1401", email = "vlad.milosta@outlook.com"}
|
|
@@ -39,4 +39,4 @@ telebot = [
|
|
|
39
39
|
Documentation = "https://github.com/DUB1401/dublib/tree/main/docs"
|
|
40
40
|
"Source Code" = "https://github.com/DUB1401/dublib"
|
|
41
41
|
"Bug Tracker" = "https://github.com/DUB1401/dublib/issues"
|
|
42
|
-
Changelog = "https://github.com/DUB1401/dublib/releases"
|
|
42
|
+
Changelog = "https://github.com/DUB1401/dublib/releases"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from .Methods import ReadJSON, WriteJSON
|
|
2
2
|
from .Exceptions.TelebotUtils import *
|
|
3
3
|
|
|
4
|
-
from telebot.types import
|
|
4
|
+
from telebot.types import User
|
|
5
5
|
|
|
6
6
|
import os
|
|
7
7
|
|
|
@@ -60,10 +60,10 @@ class UserData:
|
|
|
60
60
|
# >>>>> ПУБЛИЧНЫЕ МЕТОДЫ <<<<< #
|
|
61
61
|
#==========================================================================================#
|
|
62
62
|
|
|
63
|
-
def __init__(self,
|
|
63
|
+
def __init__(self, storage_dir: str, user_id: int, data: dict | None = None):
|
|
64
64
|
"""
|
|
65
65
|
Объектное представление данных пользователя.
|
|
66
|
-
|
|
66
|
+
storage_dir – путь к директории хранения данных;
|
|
67
67
|
user_id – ID пользователя;
|
|
68
68
|
data – словарь с описанием данных пользователя для инициализации (если не передан, данные будут загружены из файла).
|
|
69
69
|
"""
|
|
@@ -73,7 +73,7 @@ class UserData:
|
|
|
73
73
|
# ID пользователя.
|
|
74
74
|
self.__ID = user_id
|
|
75
75
|
# Директория хранилища.
|
|
76
|
-
self.__StorageDirectory =
|
|
76
|
+
self.__StorageDirectory = storage_dir.replace("\\", "/").rstrip("/")
|
|
77
77
|
# Словарное представление данных пользователя.
|
|
78
78
|
self.__Data = {
|
|
79
79
|
"username": None,
|
|
@@ -129,6 +129,21 @@ class UserData:
|
|
|
129
129
|
# Сохранение данных.
|
|
130
130
|
self.__SaveData()
|
|
131
131
|
|
|
132
|
+
def create_property(self, key: str, value: any, force: bool = True):
|
|
133
|
+
"""
|
|
134
|
+
Создаёт свойство пользователя и задаёт ему значение, если такового ещё не существует.
|
|
135
|
+
key – ключ свойства;
|
|
136
|
+
value – значение;
|
|
137
|
+
force – указывает, необходимо ли перезаписывать значение уже существующего ключа.
|
|
138
|
+
"""
|
|
139
|
+
|
|
140
|
+
# Если свойства не существует.
|
|
141
|
+
if key not in self.__Data["data"].keys() or force:
|
|
142
|
+
# Создание свойства.
|
|
143
|
+
self.__Data["data"][key] = value
|
|
144
|
+
# Сохранение данных.
|
|
145
|
+
self.__SaveData()
|
|
146
|
+
|
|
132
147
|
def get_property(self, key: str) -> any:
|
|
133
148
|
"""
|
|
134
149
|
Возвращает значение свойства пользователя.
|
|
@@ -182,19 +197,32 @@ class UserData:
|
|
|
182
197
|
# Сохранение данных.
|
|
183
198
|
self.__SaveData()
|
|
184
199
|
|
|
200
|
+
def remove_property(self, key: str):
|
|
201
|
+
"""
|
|
202
|
+
Удаляет свойство пользователя.
|
|
203
|
+
key – ключ свойства.
|
|
204
|
+
"""
|
|
205
|
+
|
|
206
|
+
# Если свойство существует.
|
|
207
|
+
if key in self.__Data["data"].keys():
|
|
208
|
+
# Удаление свойства.
|
|
209
|
+
del self.__Data["data"][key]
|
|
210
|
+
# Сохранение данных.
|
|
211
|
+
self.__SaveData()
|
|
212
|
+
|
|
185
213
|
def set_property(self, key: str, value: any):
|
|
186
214
|
"""
|
|
187
|
-
Обновляет значение свойства пользователя.
|
|
215
|
+
Обновляет значение существующего свойства пользователя.
|
|
188
216
|
key – ключ свойства;
|
|
189
217
|
value – значение.
|
|
190
218
|
"""
|
|
191
219
|
|
|
192
|
-
# Если
|
|
193
|
-
if
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
220
|
+
# Если свойство существует.
|
|
221
|
+
if key in self.__Data["data"].keys():
|
|
222
|
+
# Обновление данных.
|
|
223
|
+
self.__Data["data"][key] = value
|
|
224
|
+
# Сохранение данных.
|
|
225
|
+
self.__SaveData()
|
|
198
226
|
|
|
199
227
|
def update(self, user: User):
|
|
200
228
|
"""
|
|
@@ -298,26 +326,26 @@ class UsersManager:
|
|
|
298
326
|
# Загрузка данных пользователей.
|
|
299
327
|
self.__LoadUsers()
|
|
300
328
|
|
|
301
|
-
def auth(self,
|
|
329
|
+
def auth(self, user: User) -> UserData:
|
|
302
330
|
"""
|
|
303
331
|
Выполняет идентификацию и обновление данных существующего пользователя или создаёт локальный файл для нового.
|
|
304
|
-
|
|
332
|
+
user – структура описания пользователя Telegram.
|
|
305
333
|
"""
|
|
306
334
|
|
|
307
335
|
# Текущий пользователь.
|
|
308
|
-
|
|
336
|
+
CurrentUser = None
|
|
309
337
|
|
|
310
338
|
# Если пользователь ещё не существует.
|
|
311
|
-
if
|
|
339
|
+
if user.id not in self.__Users.keys():
|
|
312
340
|
# Создание нового пользователя.
|
|
313
|
-
self.__Users[
|
|
341
|
+
self.__Users[user.id] = UserData(self.__StorageDirectory, user.id, user)
|
|
314
342
|
|
|
315
343
|
# Обновление данных пользователя.
|
|
316
|
-
self.__Users[
|
|
344
|
+
self.__Users[user.id].update(user)
|
|
317
345
|
# Установка текущего пользователя.
|
|
318
|
-
|
|
346
|
+
CurrentUser = self.__Users[user.id]
|
|
319
347
|
|
|
320
|
-
return
|
|
348
|
+
return CurrentUser
|
|
321
349
|
|
|
322
350
|
def get_user(self, user_id: int | str) -> UserData:
|
|
323
351
|
"""
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|