diff --git a/jarvis_tasks/__init__.py b/jarvis_tasks/__init__.py index b0fbf99..4975562 100644 --- a/jarvis_tasks/__init__.py +++ b/jarvis_tasks/__init__.py @@ -6,9 +6,11 @@ from dis_snek import Intents, Snake from jarvis_core.db import connect from jarvis_core.log import get_logger +from jarvis_tasks import const from jarvis_tasks.config import TaskConfig from jarvis_tasks.tasks import ban, lock, lockdown, reminder, twitter, warning +__version__ = const.__version__ logger = None diff --git a/jarvis_tasks/const.py b/jarvis_tasks/const.py new file mode 100644 index 0000000..159f1fc --- /dev/null +++ b/jarvis_tasks/const.py @@ -0,0 +1,7 @@ +"""JARVIS Task constants.""" +from importlib.metadata import version as _v + +try: + __version__ = _v("jarvis-tasks") +except Exception: + __version__ = "0.0.0" diff --git a/jarvis_tasks/tasks/twitter.py b/jarvis_tasks/tasks/twitter.py index 438e303..7afbe59 100644 --- a/jarvis_tasks/tasks/twitter.py +++ b/jarvis_tasks/tasks/twitter.py @@ -9,9 +9,9 @@ from dis_snek import Snake from dis_snek.models.discord.embed import Embed from jarvis_core.db import q from jarvis_core.db.models import TwitterAccount, TwitterFollow -from jarvis_core.util import build_embed from jarvis_tasks.config import TaskConfig +from jarvis_tasks.util import build_embed config = TaskConfig.from_yaml() diff --git a/jarvis_tasks/util.py b/jarvis_tasks/util.py index 82f49e5..6358058 100644 --- a/jarvis_tasks/util.py +++ b/jarvis_tasks/util.py @@ -4,6 +4,8 @@ from datetime import datetime, timezone from logging import Logger from typing import Coroutine +from dis_snek.models.discord.embed import Embed + async def runat(when: datetime, coro: Coroutine, logger: Logger) -> None: """ @@ -18,3 +20,26 @@ async def runat(when: datetime, coro: Coroutine, logger: Logger) -> None: delay = when - datetime.now(tz=timezone.utc) await asyncio.sleep(delay.total_seconds()) await coro + + +def build_embed( + title: str, + description: str, + fields: list, + color: str = "#FF0000", + timestamp: datetime = None, + **kwargs: dict, +) -> Embed: + """Embed builder utility function.""" + if not timestamp: + timestamp = datetime.now() + embed = Embed( + title=title, + description=description, + color=color, + timestamp=timestamp, + **kwargs, + ) + for field in fields: + embed.add_field(**field.to_dict()) + return embed