22 Commits

Author SHA1 Message Date
bfd99a44a6 Merge pull request 'Changed pytz<=2024.1 to pytz>=2024.1' (#61) from dev into main
Reviewed-on: #61
2024-05-31 00:55:30 +03:00
d078ab37d8 Changed pytz<=2024.1 to pytz>=2024.1 2024-05-31 00:55:07 +03:00
ea0ab6443f Merge pull request 'v0.1.2' (#60) from dev into main
Reviewed-on: #60
2024-05-31 00:46:09 +03:00
04ee8e9c60 Improved docstrings and set some logging events to INFO level instead of DEBUG 2024-05-30 23:41:52 +02:00
2c15bbb4d2 Merge pull request 'Update dependency pytz to v2024' (#59) from renovate/pytz-2024.x into dev
Reviewed-on: #59
2024-05-31 00:31:01 +03:00
99d621d90f Update dependency pytz to v2024 2024-05-31 00:28:46 +03:00
dc389ac1b7 Merge pull request 'Possibly fixed #8' (#57) from profitroll/timezones-fix into dev
Reviewed-on: #57
2024-05-31 00:25:53 +03:00
3f20fdb46a Removed wrong localize 2024-05-31 00:25:40 +03:00
65e9e830c1 Fixed possible bugs and renamed pytz imports 2024-05-31 00:25:40 +03:00
1c76c8d911 Added automatic timezone update on location change; Update methods now return changed values 2024-05-31 00:25:40 +03:00
e307d60e8e pytz.utc instead of datetime.timezone.utc 2024-05-31 00:25:40 +03:00
0562521f0d Improved typing 2024-05-31 00:25:40 +03:00
7293cafd2e Removed unnecessary checks 2024-05-31 00:25:40 +03:00
b5bfbcd375 Attempted a fix for #8 2024-05-31 00:25:40 +03:00
de483cd450 Default time is now 16:00 2024-05-31 00:25:40 +03:00
94e229949d Added get_reminder_date() and get_reminder_time() methods; update_* methods now also change the attributes of the object 2024-05-31 00:25:40 +03:00
b7fc1715fd Added pytz as a dependency 2024-05-31 00:25:40 +03:00
f6731d5734 Fixed downgrade for strings.url_updater config key 2024-05-30 12:51:47 +02:00
e3e9ec0cc8 Merge pull request 'Integrated Terms of service and Privacy policy' (#53) from dev into main
Reviewed-on: #53
2024-05-14 21:57:02 +03:00
b29d2467d3 Merge pull request 'Added missing files' (#47) from dev into main
Reviewed-on: #47
2024-05-11 12:37:26 +03:00
7f3803b79b Merge pull request 'v0.1.0' (#46) from dev into main
Reviewed-on: #46
2024-05-11 12:16:43 +03:00
3925f66882 Merge pull request 'Database changes, new translations' (#32) from dev into main
Reviewed-on: #32
2023-11-05 15:37:21 +02:00
4 changed files with 56 additions and 12 deletions

View File

@@ -91,6 +91,7 @@ class PyroClient(LibPyroClient):
]
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(
self.__version__, self.config["strings"]["url_updater"]
):

View File

@@ -88,8 +88,7 @@ class PyroUser:
### Args:
* locale (`Union[str, None]`): New locale to be set.
"""
logger.debug("%s's locale has been set to %s", self.id, locale)
logger.info("%s's locale has been set to %s", self.id, locale)
await col_users.update_one({"_id": self._id}, {"$set": {"locale": locale}})
@@ -98,7 +97,15 @@ class PyroUser:
return self.locale
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}})
@@ -106,8 +113,16 @@ class PyroUser:
return self.enabled
async def update_location(self, location_id: int = 0) -> Location:
logger.debug("%s's location has been set to %s", self.id, location_id)
async def update_location(self, location_id: int) -> Location:
"""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(
{"_id": self._id}, {"$set": {"location": location_id}}
@@ -136,7 +151,15 @@ class PyroUser:
return self.location
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}})
@@ -145,7 +168,16 @@ class PyroUser:
return offset
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(
{"_id": self._id}, {"$set": {"time_hour": hour, "time_minute": minute}}
@@ -157,16 +189,27 @@ class PyroUser:
return self.time_hour, self.time_minute
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})
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})
if db_entry is None:
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

View File

@@ -13,4 +13,4 @@ class Migration(BaseMigration):
def downgrade(self):
sync.config_delete("update_checker", missing_ok=True)
sync.config_delete("url_updater", "strings")
sync.config_delete("url_updater", "strings", missing_ok=True)

View File

@@ -2,7 +2,7 @@ aiohttp~=3.9.5
apscheduler~=3.10.4
convopyro==0.5
mongodb-migrations==1.3.1
pytz<=2023.2
pytz>=2024.1
tgcrypto==1.2.5
ujson>=5.0.0
uvloop==0.19.0