Move build_embed to tasks, better versioning
This commit is contained in:
parent
be3d5387a5
commit
fb9e85733d
4 changed files with 35 additions and 1 deletions
|
@ -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
7
jarvis_tasks/const.py
Normal 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"
|
|
@ -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()
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Add table
Reference in a new issue