Move build_embed to tasks, better versioning

This commit is contained in:
Zeva Rose 2022-04-19 19:56:38 -06:00
parent be3d5387a5
commit fb9e85733d
4 changed files with 35 additions and 1 deletions

View file

@ -6,9 +6,11 @@ from dis_snek import Intents, Snake
from jarvis_core.db import connect from jarvis_core.db import connect
from jarvis_core.log import get_logger from jarvis_core.log import get_logger
from jarvis_tasks import const
from jarvis_tasks.config import TaskConfig from jarvis_tasks.config import TaskConfig
from jarvis_tasks.tasks import ban, lock, lockdown, reminder, twitter, warning from jarvis_tasks.tasks import ban, lock, lockdown, reminder, twitter, warning
__version__ = const.__version__
logger = None logger = None

7
jarvis_tasks/const.py Normal file
View file

@ -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"

View file

@ -9,9 +9,9 @@ from dis_snek import Snake
from dis_snek.models.discord.embed import Embed from dis_snek.models.discord.embed import Embed
from jarvis_core.db import q from jarvis_core.db import q
from jarvis_core.db.models import TwitterAccount, TwitterFollow from jarvis_core.db.models import TwitterAccount, TwitterFollow
from jarvis_core.util import build_embed
from jarvis_tasks.config import TaskConfig from jarvis_tasks.config import TaskConfig
from jarvis_tasks.util import build_embed
config = TaskConfig.from_yaml() config = TaskConfig.from_yaml()

View file

@ -4,6 +4,8 @@ from datetime import datetime, timezone
from logging import Logger from logging import Logger
from typing import Coroutine from typing import Coroutine
from dis_snek.models.discord.embed import Embed
async def runat(when: datetime, coro: Coroutine, logger: Logger) -> None: 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) delay = when - datetime.now(tz=timezone.utc)
await asyncio.sleep(delay.total_seconds()) await asyncio.sleep(delay.total_seconds())
await coro 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