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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dublib
3
- Version: 0.6.0
3
+ Version: 0.6.2
4
4
  Summary: Коллекция модулей от DUB1401.
5
5
  Author-email: DUB1401 <vlad.milosta@outlook.com>
6
6
  License: This is free and unencumbered software released into the public domain.
@@ -3,7 +3,7 @@ requires = ["setuptools", "cython"]
3
3
 
4
4
  [project]
5
5
  name = "dublib"
6
- version = "0.6.0"
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 Message, User
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, dir: str, user_id: int, data: dict | None = None):
63
+ def __init__(self, storage_dir: str, user_id: int, data: dict | None = None):
64
64
  """
65
65
  Объектное представление данных пользователя.
66
- dir – путь к директории хранения данных;
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 = dir.replace("\\", "/").rstrip("/")
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 "data" not in self.__Data.keys(): self.__Data["data"] = dict()
194
- # Помещение данных.
195
- self.__Data["data"][key] = value
196
- # Сохранение данных.
197
- self.__SaveData()
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, message: Message) -> UserData:
329
+ def auth(self, user: User) -> UserData:
302
330
  """
303
331
  Выполняет идентификацию и обновление данных существующего пользователя или создаёт локальный файл для нового.
304
- message – структура описания сообщения.
332
+ user – структура описания пользователя Telegram.
305
333
  """
306
334
 
307
335
  # Текущий пользователь.
308
- User = None
336
+ CurrentUser = None
309
337
 
310
338
  # Если пользователь ещё не существует.
311
- if message.from_user.id not in self.__Users.keys():
339
+ if user.id not in self.__Users.keys():
312
340
  # Создание нового пользователя.
313
- self.__Users[message.from_user.id] = UserData(self.__StorageDirectory, message.from_user.id, message.from_user)
341
+ self.__Users[user.id] = UserData(self.__StorageDirectory, user.id, user)
314
342
 
315
343
  # Обновление данных пользователя.
316
- self.__Users[message.from_user.id].update(message.from_user)
344
+ self.__Users[user.id].update(user)
317
345
  # Установка текущего пользователя.
318
- User = self.__Users[message.from_user.id]
346
+ CurrentUser = self.__Users[user.id]
319
347
 
320
- return User
348
+ return CurrentUser
321
349
 
322
350
  def get_user(self, user_id: int | str) -> UserData:
323
351
  """
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dublib
3
- Version: 0.6.0
3
+ Version: 0.6.2
4
4
  Summary: Коллекция модулей от DUB1401.
5
5
  Author-email: DUB1401 <vlad.milosta@outlook.com>
6
6
  License: This is free and unencumbered software released into the public domain.
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes