Compare commits
22 Commits
9ae319cbb3
...
v0.1.2
Author | SHA1 | Date | |
---|---|---|---|
bfd99a44a6 | |||
d078ab37d8 | |||
ea0ab6443f | |||
04ee8e9c60
|
|||
2c15bbb4d2 | |||
99d621d90f | |||
dc389ac1b7 | |||
3f20fdb46a | |||
65e9e830c1 | |||
1c76c8d911 | |||
e307d60e8e | |||
0562521f0d | |||
7293cafd2e | |||
b5bfbcd375 | |||
de483cd450 | |||
94e229949d | |||
b7fc1715fd | |||
f6731d5734
|
|||
e3e9ec0cc8 | |||
b29d2467d3 | |||
7f3803b79b | |||
3925f66882 |
@@ -91,6 +91,7 @@ class PyroClient(LibPyroClient):
|
|||||||
]
|
]
|
||||||
|
|
||||||
async def check_updates(self) -> None:
|
async def check_updates(self) -> None:
|
||||||
|
"""Check for updates and send a message to the owner if newer version was found"""
|
||||||
if await self.updater.check_updates(
|
if await self.updater.check_updates(
|
||||||
self.__version__, self.config["strings"]["url_updater"]
|
self.__version__, self.config["strings"]["url_updater"]
|
||||||
):
|
):
|
||||||
|
@@ -88,8 +88,7 @@ class PyroUser:
|
|||||||
### Args:
|
### Args:
|
||||||
* locale (`Union[str, None]`): New locale to be set.
|
* locale (`Union[str, None]`): New locale to be set.
|
||||||
"""
|
"""
|
||||||
|
logger.info("%s's locale has been set to %s", self.id, locale)
|
||||||
logger.debug("%s's locale has been set to %s", self.id, locale)
|
|
||||||
|
|
||||||
await col_users.update_one({"_id": self._id}, {"$set": {"locale": locale}})
|
await col_users.update_one({"_id": self._id}, {"$set": {"locale": locale}})
|
||||||
|
|
||||||
@@ -98,7 +97,15 @@ class PyroUser:
|
|||||||
return self.locale
|
return self.locale
|
||||||
|
|
||||||
async def update_state(self, enabled: bool = False) -> bool:
|
async def update_state(self, enabled: bool = False) -> bool:
|
||||||
logger.debug("%s's state has been set to %s", self.id, enabled)
|
"""Update user's state (enabled/disabled)
|
||||||
|
|
||||||
|
### Args:
|
||||||
|
* enabled (`bool`, *optional*): Whether the user is enabled. Defaults to `False`.
|
||||||
|
|
||||||
|
### Returns:
|
||||||
|
* `bool`: User's current state
|
||||||
|
"""
|
||||||
|
logger.info("%s's state has been set to %s", self.id, enabled)
|
||||||
|
|
||||||
await col_users.update_one({"_id": self._id}, {"$set": {"enabled": enabled}})
|
await col_users.update_one({"_id": self._id}, {"$set": {"enabled": enabled}})
|
||||||
|
|
||||||
@@ -106,8 +113,16 @@ class PyroUser:
|
|||||||
|
|
||||||
return self.enabled
|
return self.enabled
|
||||||
|
|
||||||
async def update_location(self, location_id: int = 0) -> Location:
|
async def update_location(self, location_id: int) -> Location:
|
||||||
logger.debug("%s's location has been set to %s", self.id, location_id)
|
"""Update user's location and move their time to the new timezone (if the user had a location set previously)
|
||||||
|
|
||||||
|
### Args:
|
||||||
|
* location_id (`int`): ID of the location
|
||||||
|
|
||||||
|
### Returns:
|
||||||
|
`Location`: New location
|
||||||
|
"""
|
||||||
|
logger.info("%s's location has been set to %s", self.id, location_id)
|
||||||
|
|
||||||
await col_users.update_one(
|
await col_users.update_one(
|
||||||
{"_id": self._id}, {"$set": {"location": location_id}}
|
{"_id": self._id}, {"$set": {"location": location_id}}
|
||||||
@@ -136,7 +151,15 @@ class PyroUser:
|
|||||||
return self.location
|
return self.location
|
||||||
|
|
||||||
async def update_offset(self, offset: int = 1) -> int:
|
async def update_offset(self, offset: int = 1) -> int:
|
||||||
logger.debug("%s's offset has been set to %s", self.id, offset)
|
"""Update the offset of the reminder (in days)
|
||||||
|
|
||||||
|
### Args:
|
||||||
|
* offset (`int`, *optional*): Offset in days. Defaults to `1`.
|
||||||
|
|
||||||
|
### Returns:
|
||||||
|
* `int`: Offset in days
|
||||||
|
"""
|
||||||
|
logger.info("%s's offset has been set to %s", self.id, offset)
|
||||||
|
|
||||||
await col_users.update_one({"_id": self._id}, {"$set": {"offset": offset}})
|
await col_users.update_one({"_id": self._id}, {"$set": {"offset": offset}})
|
||||||
|
|
||||||
@@ -145,7 +168,16 @@ class PyroUser:
|
|||||||
return offset
|
return offset
|
||||||
|
|
||||||
async def update_time(self, hour: int = 16, minute: int = 0) -> Tuple[int, int]:
|
async def update_time(self, hour: int = 16, minute: int = 0) -> Tuple[int, int]:
|
||||||
logger.debug("%s's time has been set to %s h. %s m.", self.id, hour, minute)
|
"""Update the time of the reminder (hour and minute, for UTC timezone)
|
||||||
|
|
||||||
|
### Args:
|
||||||
|
* hour (`int`, *optional*): Hour of the reminder. Defaults to `16`.
|
||||||
|
* minute (`int`, *optional*): Minute of the reminder. Defaults to `0`.
|
||||||
|
|
||||||
|
### Returns:
|
||||||
|
* `Tuple[int, int]`: Hour and minute of the reminder
|
||||||
|
"""
|
||||||
|
logger.info("%s's time has been set to %s h. %s m.", self.id, hour, minute)
|
||||||
|
|
||||||
await col_users.update_one(
|
await col_users.update_one(
|
||||||
{"_id": self._id}, {"$set": {"time_hour": hour, "time_minute": minute}}
|
{"_id": self._id}, {"$set": {"time_hour": hour, "time_minute": minute}}
|
||||||
@@ -157,16 +189,27 @@ class PyroUser:
|
|||||||
return self.time_hour, self.time_minute
|
return self.time_hour, self.time_minute
|
||||||
|
|
||||||
async def delete(self) -> None:
|
async def delete(self) -> None:
|
||||||
logger.debug("%s's data has been deleted", self.id)
|
"""Delete the database record of the user"""
|
||||||
|
logger.info("%s's data has been deleted", self.id)
|
||||||
|
|
||||||
await col_users.delete_one({"_id": self._id})
|
await col_users.delete_one({"_id": self._id})
|
||||||
|
|
||||||
async def checkout(self) -> Mapping[str, Any]:
|
async def checkout(self) -> Mapping[str, Any]:
|
||||||
logger.debug("%s's data has been checked out", self.id)
|
"""Checkout the user's database record
|
||||||
|
|
||||||
|
### Raises:
|
||||||
|
* `KeyError`: Database record of the user was not found
|
||||||
|
|
||||||
|
### Returns:
|
||||||
|
* `Mapping[str, Any]`: Database record
|
||||||
|
"""
|
||||||
|
logger.info("%s's data has been checked out", self.id)
|
||||||
|
|
||||||
db_entry = await col_users.find_one({"_id": self._id})
|
db_entry = await col_users.find_one({"_id": self._id})
|
||||||
|
|
||||||
if db_entry is None:
|
if db_entry is None:
|
||||||
raise KeyError(
|
raise KeyError(
|
||||||
f"DB record with id {self._id} of user {self.id} is not found"
|
f"DB record with id {self._id} of user {self.id} was not found"
|
||||||
)
|
)
|
||||||
|
|
||||||
del db_entry["_id"] # type: ignore
|
del db_entry["_id"] # type: ignore
|
||||||
|
@@ -13,4 +13,4 @@ class Migration(BaseMigration):
|
|||||||
|
|
||||||
def downgrade(self):
|
def downgrade(self):
|
||||||
sync.config_delete("update_checker", missing_ok=True)
|
sync.config_delete("update_checker", missing_ok=True)
|
||||||
sync.config_delete("url_updater", "strings")
|
sync.config_delete("url_updater", "strings", missing_ok=True)
|
||||||
|
@@ -2,7 +2,7 @@ aiohttp~=3.9.5
|
|||||||
apscheduler~=3.10.4
|
apscheduler~=3.10.4
|
||||||
convopyro==0.5
|
convopyro==0.5
|
||||||
mongodb-migrations==1.3.1
|
mongodb-migrations==1.3.1
|
||||||
pytz<=2023.2
|
pytz>=2024.1
|
||||||
tgcrypto==1.2.5
|
tgcrypto==1.2.5
|
||||||
ujson>=5.0.0
|
ujson>=5.0.0
|
||||||
uvloop==0.19.0
|
uvloop==0.19.0
|
||||||
|
Reference in New Issue
Block a user