Fix timestamps being wrong
This commit is contained in:
parent
b81ea66d12
commit
be6ce3ef8d
6 changed files with 52 additions and 27 deletions
|
@ -1,5 +1,5 @@
|
||||||
"""JARVIS database models."""
|
"""JARVIS database models."""
|
||||||
from datetime import datetime
|
from datetime import datetime, timezone
|
||||||
from typing import Any, List
|
from typing import Any, List
|
||||||
|
|
||||||
import marshmallow as ma
|
import marshmallow as ma
|
||||||
|
@ -11,6 +11,11 @@ from jarvis_core.db.models.modlog import Action, Modlog, Note
|
||||||
from jarvis_core.db.models.twitter import TwitterAccount, TwitterFollow
|
from jarvis_core.db.models.twitter import TwitterAccount, TwitterFollow
|
||||||
|
|
||||||
|
|
||||||
|
def get_now() -> datetime:
|
||||||
|
"""Get proper timestamp."""
|
||||||
|
return datetime.now(tz=timezone.utc)
|
||||||
|
|
||||||
|
|
||||||
class RawField(fields.BaseField, ma.fields.Raw):
|
class RawField(fields.BaseField, ma.fields.Raw):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@ -71,7 +76,7 @@ class Lock(Document):
|
||||||
guild: int = fields.IntegerField(required=True)
|
guild: int = fields.IntegerField(required=True)
|
||||||
reason: str = fields.StringField(required=True)
|
reason: str = fields.StringField(required=True)
|
||||||
original_perms: Permission = fields.EmbeddedField(Permission, required=False)
|
original_perms: Permission = fields.EmbeddedField(Permission, required=False)
|
||||||
created_at: datetime = fields.DateTimeField(default=datetime.utcnow)
|
created_at: datetime = fields.DateTimeField(default=get_now)
|
||||||
|
|
||||||
|
|
||||||
@JARVIS_INST.register
|
@JARVIS_INST.register
|
||||||
|
@ -84,7 +89,7 @@ class Lockdown(Document):
|
||||||
guild: int = fields.IntegerField(required=True)
|
guild: int = fields.IntegerField(required=True)
|
||||||
reason: str = fields.StringField(required=True)
|
reason: str = fields.StringField(required=True)
|
||||||
original_perms: int = fields.IntegerField(required=True)
|
original_perms: int = fields.IntegerField(required=True)
|
||||||
created_at: datetime = fields.DateTimeField(default=datetime.utcnow)
|
created_at: datetime = fields.DateTimeField(default=get_now)
|
||||||
|
|
||||||
|
|
||||||
@JARVIS_INST.register
|
@JARVIS_INST.register
|
||||||
|
@ -95,7 +100,7 @@ class Purge(Document):
|
||||||
channel: int = fields.IntegerField(required=True)
|
channel: int = fields.IntegerField(required=True)
|
||||||
guild: int = fields.IntegerField(required=True)
|
guild: int = fields.IntegerField(required=True)
|
||||||
count: int = fields.IntegerField(default=10)
|
count: int = fields.IntegerField(default=10)
|
||||||
created_at: datetime = fields.DateTimeField(default=datetime.utcnow)
|
created_at: datetime = fields.DateTimeField(default=get_now)
|
||||||
|
|
||||||
|
|
||||||
@JARVIS_INST.register
|
@JARVIS_INST.register
|
||||||
|
@ -108,7 +113,7 @@ class Reminder(Document):
|
||||||
channel: int = fields.IntegerField(required=True)
|
channel: int = fields.IntegerField(required=True)
|
||||||
message: str = fields.StringField(required=True)
|
message: str = fields.StringField(required=True)
|
||||||
remind_at: datetime = fields.DateTimeField(required=True)
|
remind_at: datetime = fields.DateTimeField(required=True)
|
||||||
created_at: datetime = fields.DateTimeField(default=datetime.utcnow)
|
created_at: datetime = fields.DateTimeField(default=get_now)
|
||||||
private: bool = fields.BooleanField(default=False)
|
private: bool = fields.BooleanField(default=False)
|
||||||
|
|
||||||
|
|
||||||
|
@ -137,7 +142,7 @@ class Roleping(Document):
|
||||||
guild: int = fields.IntegerField(required=True)
|
guild: int = fields.IntegerField(required=True)
|
||||||
admin: int = fields.IntegerField(required=True)
|
admin: int = fields.IntegerField(required=True)
|
||||||
bypass: Bypass = fields.EmbeddedField(Bypass)
|
bypass: Bypass = fields.EmbeddedField(Bypass)
|
||||||
created_at: datetime = fields.DateTimeField(default=datetime.utcnow)
|
created_at: datetime = fields.DateTimeField(default=get_now)
|
||||||
|
|
||||||
|
|
||||||
@JARVIS_INST.register
|
@JARVIS_INST.register
|
||||||
|
@ -161,7 +166,7 @@ class Star(Document):
|
||||||
guild: int = fields.IntegerField(required=True)
|
guild: int = fields.IntegerField(required=True)
|
||||||
admin: int = fields.IntegerField(required=True)
|
admin: int = fields.IntegerField(required=True)
|
||||||
star: int = fields.IntegerField(required=True)
|
star: int = fields.IntegerField(required=True)
|
||||||
created_at: datetime = fields.DateTimeField(default=datetime.utcnow)
|
created_at: datetime = fields.DateTimeField(default=get_now)
|
||||||
|
|
||||||
|
|
||||||
@JARVIS_INST.register
|
@JARVIS_INST.register
|
||||||
|
@ -171,4 +176,4 @@ class Starboard(Document):
|
||||||
channel: int = fields.IntegerField(required=True)
|
channel: int = fields.IntegerField(required=True)
|
||||||
guild: int = fields.IntegerField(required=True)
|
guild: int = fields.IntegerField(required=True)
|
||||||
admin: int = fields.IntegerField(required=True)
|
admin: int = fields.IntegerField(required=True)
|
||||||
created_at: datetime = fields.DateTimeField(default=datetime.utcnow)
|
created_at: datetime = fields.DateTimeField(default=get_now)
|
||||||
|
|
|
@ -1,11 +1,16 @@
|
||||||
"""User action models."""
|
"""User action models."""
|
||||||
from datetime import datetime
|
from datetime import datetime, timezone
|
||||||
|
|
||||||
from umongo import Document, fields
|
from umongo import Document, fields
|
||||||
|
|
||||||
from jarvis_core.db import JARVIS_INST
|
from jarvis_core.db import JARVIS_INST
|
||||||
|
|
||||||
|
|
||||||
|
def get_now() -> datetime:
|
||||||
|
"""Get proper timestamp."""
|
||||||
|
return datetime.now(tz=timezone.utc)
|
||||||
|
|
||||||
|
|
||||||
@JARVIS_INST.register
|
@JARVIS_INST.register
|
||||||
class Ban(Document):
|
class Ban(Document):
|
||||||
active: bool = fields.BooleanField(default=True)
|
active: bool = fields.BooleanField(default=True)
|
||||||
|
@ -13,11 +18,11 @@ class Ban(Document):
|
||||||
user: int = fields.IntegerField(required=True)
|
user: int = fields.IntegerField(required=True)
|
||||||
username: str = fields.StringField(required=True)
|
username: str = fields.StringField(required=True)
|
||||||
discrim: int = fields.IntegerField(required=True)
|
discrim: int = fields.IntegerField(required=True)
|
||||||
duration: int = fields.IntegerField(required=False)
|
duration: int = fields.IntegerField(required=False, default=None)
|
||||||
guild: int = fields.IntegerField(required=True)
|
guild: int = fields.IntegerField(required=True)
|
||||||
type: str = fields.StringField(default="perm")
|
type: str = fields.StringField(default="perm")
|
||||||
reason: str = fields.StringField(required=True)
|
reason: str = fields.StringField(required=True)
|
||||||
created_at: datetime = fields.DateTimeField(default=datetime.utcnow)
|
created_at: datetime = fields.DateTimeField(default=get_now)
|
||||||
|
|
||||||
|
|
||||||
@JARVIS_INST.register
|
@JARVIS_INST.register
|
||||||
|
@ -28,7 +33,7 @@ class Kick(Document):
|
||||||
guild: int = fields.IntegerField(required=True)
|
guild: int = fields.IntegerField(required=True)
|
||||||
reason: str = fields.StringField(required=True)
|
reason: str = fields.StringField(required=True)
|
||||||
user: int = fields.IntegerField(required=True)
|
user: int = fields.IntegerField(required=True)
|
||||||
created_at: datetime = fields.DateTimeField(default=datetime.utcnow)
|
created_at: datetime = fields.DateTimeField(default=get_now)
|
||||||
|
|
||||||
|
|
||||||
@JARVIS_INST.register
|
@JARVIS_INST.register
|
||||||
|
@ -41,7 +46,7 @@ class Mute(Document):
|
||||||
duration: int = fields.IntegerField(default=10)
|
duration: int = fields.IntegerField(default=10)
|
||||||
guild: int = fields.IntegerField(required=True)
|
guild: int = fields.IntegerField(required=True)
|
||||||
reason: str = fields.StringField(required=True)
|
reason: str = fields.StringField(required=True)
|
||||||
created_at: datetime = fields.DateTimeField(default=datetime.utcnow)
|
created_at: datetime = fields.DateTimeField(default=get_now)
|
||||||
|
|
||||||
|
|
||||||
@JARVIS_INST.register
|
@JARVIS_INST.register
|
||||||
|
@ -54,7 +59,7 @@ class Unban(Document):
|
||||||
guild: int = fields.IntegerField(required=True)
|
guild: int = fields.IntegerField(required=True)
|
||||||
admin: int = fields.IntegerField(required=True)
|
admin: int = fields.IntegerField(required=True)
|
||||||
reason: str = fields.StringField(required=True)
|
reason: str = fields.StringField(required=True)
|
||||||
created_at: datetime = fields.DateTimeField(default=datetime.utcnow)
|
created_at: datetime = fields.DateTimeField(default=get_now)
|
||||||
|
|
||||||
|
|
||||||
@JARVIS_INST.register
|
@JARVIS_INST.register
|
||||||
|
@ -67,4 +72,4 @@ class Warning(Document):
|
||||||
guild: int = fields.IntegerField(required=True)
|
guild: int = fields.IntegerField(required=True)
|
||||||
duration: int = fields.IntegerField(default=24)
|
duration: int = fields.IntegerField(default=24)
|
||||||
reason: str = fields.StringField(required=True)
|
reason: str = fields.StringField(required=True)
|
||||||
created_at: datetime = fields.DateTimeField(default=datetime.utcnow)
|
created_at: datetime = fields.DateTimeField(default=get_now)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
"""Modlog database models."""
|
"""Modlog database models."""
|
||||||
from datetime import datetime
|
from datetime import datetime, timezone
|
||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
from bson import ObjectId
|
from bson import ObjectId
|
||||||
|
@ -8,6 +8,11 @@ from umongo import Document, EmbeddedDocument, fields
|
||||||
from jarvis_core.db import JARVIS_INST
|
from jarvis_core.db import JARVIS_INST
|
||||||
|
|
||||||
|
|
||||||
|
def get_now() -> datetime:
|
||||||
|
"""Get proper timestamp."""
|
||||||
|
return datetime.now(tz=timezone.utc)
|
||||||
|
|
||||||
|
|
||||||
@JARVIS_INST.register
|
@JARVIS_INST.register
|
||||||
class Action(EmbeddedDocument):
|
class Action(EmbeddedDocument):
|
||||||
"""Modlog embedded action document."""
|
"""Modlog embedded action document."""
|
||||||
|
@ -22,7 +27,7 @@ class Note(EmbeddedDocument):
|
||||||
|
|
||||||
admin: int = fields.IntegerField(required=True)
|
admin: int = fields.IntegerField(required=True)
|
||||||
content: str = fields.StrField(required=True)
|
content: str = fields.StrField(required=True)
|
||||||
created_at: datetime = fields.DateTimeField(default=datetime.utcnow)
|
created_at: datetime = fields.DateTimeField(default=get_now)
|
||||||
|
|
||||||
|
|
||||||
@JARVIS_INST.register
|
@JARVIS_INST.register
|
||||||
|
@ -33,5 +38,5 @@ class Modlog(Document):
|
||||||
admin: int = fields.IntegerField(required=True)
|
admin: int = fields.IntegerField(required=True)
|
||||||
actions: List[Action] = fields.ListField(fields.EmbeddedField(Action), factory=list)
|
actions: List[Action] = fields.ListField(fields.EmbeddedField(Action), factory=list)
|
||||||
open: bool = fields.BoolField(default=True)
|
open: bool = fields.BoolField(default=True)
|
||||||
created_at: datetime = fields.DateTimeField(default=datetime.utcnow)
|
created_at: datetime = fields.DateTimeField(default=get_now)
|
||||||
notes: List[Note] = fields.ListField(fields.EmbeddedField(Note), factory=list)
|
notes: List[Note] = fields.ListField(fields.EmbeddedField(Note), factory=list)
|
||||||
|
|
|
@ -1,11 +1,16 @@
|
||||||
"""Twitter database models."""
|
"""Twitter database models."""
|
||||||
from datetime import datetime
|
from datetime import datetime, timezone
|
||||||
|
|
||||||
from umongo import Document, fields
|
from umongo import Document, fields
|
||||||
|
|
||||||
from jarvis_core.db import JARVIS_INST
|
from jarvis_core.db import JARVIS_INST
|
||||||
|
|
||||||
|
|
||||||
|
def get_now() -> datetime:
|
||||||
|
"""Get proper timestamp."""
|
||||||
|
return datetime.now(tz=timezone.utc)
|
||||||
|
|
||||||
|
|
||||||
@JARVIS_INST.register
|
@JARVIS_INST.register
|
||||||
class TwitterAccount(Document):
|
class TwitterAccount(Document):
|
||||||
"""Twitter Account object."""
|
"""Twitter Account object."""
|
||||||
|
@ -13,7 +18,7 @@ class TwitterAccount(Document):
|
||||||
handle: str = fields.StringField(required=True)
|
handle: str = fields.StringField(required=True)
|
||||||
twitter_id: int = fields.IntegerField(required=True)
|
twitter_id: int = fields.IntegerField(required=True)
|
||||||
last_tweet: int = fields.IntegerField(required=True)
|
last_tweet: int = fields.IntegerField(required=True)
|
||||||
last_sync: datetime = fields.DateTimeField(default=datetime.utcnow)
|
last_sync: datetime = fields.DateTimeField(default=get_now)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
collection_name = "twitteraccount"
|
collection_name = "twitteraccount"
|
||||||
|
@ -29,7 +34,7 @@ class TwitterFollow(Document):
|
||||||
guild: int = fields.IntegerField(required=True)
|
guild: int = fields.IntegerField(required=True)
|
||||||
retweets: bool = fields.BooleanField(default=True)
|
retweets: bool = fields.BooleanField(default=True)
|
||||||
admin: int = fields.IntegerField(required=True)
|
admin: int = fields.IntegerField(required=True)
|
||||||
created_at: datetime = fields.DateTimeField(default=datetime.utcnow)
|
created_at: datetime = fields.DateTimeField(default=get_now)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
collection_name = "twitterfollow"
|
collection_name = "twitterfollow"
|
||||||
|
|
|
@ -6,6 +6,8 @@ FORMAT = "[%(asctime)s] [%(name)s] [%(levelname)8s] %(message)s"
|
||||||
|
|
||||||
handler = logging.StreamHandler()
|
handler = logging.StreamHandler()
|
||||||
|
|
||||||
|
LOGGER = None
|
||||||
|
|
||||||
|
|
||||||
def get_logger(name: str, fmt: Optional[str] = FORMAT) -> logging.Logger:
|
def get_logger(name: str, fmt: Optional[str] = FORMAT) -> logging.Logger:
|
||||||
"""
|
"""
|
||||||
|
@ -14,8 +16,11 @@ def get_logger(name: str, fmt: Optional[str] = FORMAT) -> logging.Logger:
|
||||||
Args:
|
Args:
|
||||||
name: Name of the logger
|
name: Name of the logger
|
||||||
"""
|
"""
|
||||||
logger = logging.getLogger(name)
|
global LOGGER
|
||||||
formatter = logging.Formatter(fmt)
|
if not (logger := LOGGER):
|
||||||
handler.setFormatter(formatter)
|
logger = logging.getLogger(name)
|
||||||
logger.addHandler(handler)
|
formatter = logging.Formatter(fmt)
|
||||||
|
handler.setFormatter(formatter)
|
||||||
|
logger.addHandler(handler)
|
||||||
|
LOGGER = logger
|
||||||
return logger
|
return logger
|
||||||
|
|
4
poetry.lock
generated
4
poetry.lock
generated
|
@ -538,7 +538,7 @@ python-versions = "*"
|
||||||
name = "wrapt"
|
name = "wrapt"
|
||||||
version = "1.14.0"
|
version = "1.14.0"
|
||||||
description = "Module for decorators, wrappers and monkey patching."
|
description = "Module for decorators, wrappers and monkey patching."
|
||||||
category = "main"
|
category = "dev"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7"
|
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7"
|
||||||
|
|
||||||
|
@ -565,7 +565,7 @@ multidict = ">=4.0"
|
||||||
[metadata]
|
[metadata]
|
||||||
lock-version = "1.1"
|
lock-version = "1.1"
|
||||||
python-versions = "^3.10"
|
python-versions = "^3.10"
|
||||||
content-hash = "a07e2ba142cae04f133b170017335e96cb4076f0eff2ccbf6a37e080f865505d"
|
content-hash = "8edf07b473e9615a836f71510d792021c6760ef94abe4b720f9ff12a37c5dce5"
|
||||||
|
|
||||||
[metadata.files]
|
[metadata.files]
|
||||||
aiohttp = [
|
aiohttp = [
|
||||||
|
|
Loading…
Add table
Reference in a new issue