Initial Template Commit
This commit is contained in:
@@ -0,0 +1 @@
|
|||||||
|
from .plugin import setup, twitch_setup
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
BEGIN;
|
||||||
|
|
||||||
|
-- Version dependency checks
|
||||||
|
DO $$
|
||||||
|
ASSERT current_module_version('PROFILES') = 1, 'Dependency version mismatch: PROFILES';
|
||||||
|
$$ LANGUAGE plpgsql;
|
||||||
|
|
||||||
|
-- Plugin version history
|
||||||
|
INSERT INTO version_history (component, from_version, to_version, author) VALUES ('AWESOME_PLUGIN', 0, 1, 'Initial Creation');
|
||||||
|
|
||||||
|
COMMIT;
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
import logging
|
||||||
|
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
from .discord import setup
|
||||||
|
from .twitch import setup as twitch_setup
|
||||||
|
|
||||||
|
__all__ = (
|
||||||
|
'setup',
|
||||||
|
'twitch_setup',
|
||||||
|
)
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
from typing import Optional
|
||||||
|
from .data import (
|
||||||
|
AwesomeData,
|
||||||
|
AwesomeTable,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class AwesomeRegistry:
|
||||||
|
VERSION = AwesomeData.VERSION
|
||||||
|
|
||||||
|
def __init__(self, data: AwesomeData):
|
||||||
|
self.data = data
|
||||||
|
|
||||||
|
async def init(self):
|
||||||
|
await self.data.init()
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
from data import Registry, RowModel, Table
|
||||||
|
from data.columns import String, Timestamp, Integer, Bool
|
||||||
|
|
||||||
|
|
||||||
|
class AwesomeTable(RowModel):
|
||||||
|
_tablename_ = "awesome_table"
|
||||||
|
_cache_ = {}
|
||||||
|
|
||||||
|
userid = String(primary=True)
|
||||||
|
_timestamp = Timestamp()
|
||||||
|
|
||||||
|
|
||||||
|
class AwesomeData(Registry):
|
||||||
|
VERSION = ("AWESOME", 1)
|
||||||
|
|
||||||
|
AwesomeTable = AwesomeTable
|
||||||
|
awesome_table = AwesomeTable.table
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
from .. import logger
|
||||||
|
|
||||||
|
|
||||||
|
async def setup(bot):
|
||||||
|
from .cog import AwesomeCog
|
||||||
|
|
||||||
|
await bot.add_cog(AwesomeCog(bot))
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
from typing import Optional
|
||||||
|
import asyncio
|
||||||
|
|
||||||
|
import discord
|
||||||
|
from discord.ext import commands as cmds
|
||||||
|
from discord import app_commands as appcmds
|
||||||
|
|
||||||
|
from meta import LionBot, LionCog, LionContext
|
||||||
|
from meta.logger import log_wrap
|
||||||
|
from utils.lib import utc_now
|
||||||
|
|
||||||
|
from ..data import AwesomeData
|
||||||
|
from ..awesome import AwesomeRegistry
|
||||||
|
|
||||||
|
|
||||||
|
class AwesomeCog(LionCog):
|
||||||
|
def __init__(self, bot: LionBot):
|
||||||
|
self.bot = bot
|
||||||
|
|
||||||
|
self.data = bot.db.load_registry(AwesomeData())
|
||||||
|
self.profiles = AwesomeRegistry(self.data)
|
||||||
|
|
||||||
|
async def cog_load(self):
|
||||||
|
await self.data.init()
|
||||||
|
await self.bot.version_check(*self.data.VERSION)
|
||||||
|
await self.profiles.init()
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
from typing import TYPE_CHECKING
|
||||||
|
from .. import logger
|
||||||
|
|
||||||
|
if TYPE_CHECKING:
|
||||||
|
from meta.bot import Bot
|
||||||
|
|
||||||
|
|
||||||
|
async def setup(bot: "Bot"):
|
||||||
|
from .component import AwesomeComponent
|
||||||
|
|
||||||
|
await bot.add_component(AwesomeComponent(bot))
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
from typing import Optional
|
||||||
|
import asyncio
|
||||||
|
|
||||||
|
import twitchio
|
||||||
|
from twitchio.ext import commands as cmds
|
||||||
|
|
||||||
|
from meta import Bot
|
||||||
|
from meta.logger import log_wrap
|
||||||
|
from utils.lib import utc_now
|
||||||
|
|
||||||
|
from . import logger
|
||||||
|
|
||||||
|
from ..data import AwesomeData
|
||||||
|
from ..awesome import AwesomeRegistry
|
||||||
|
|
||||||
|
|
||||||
|
class AwesomeComponent(cmds.Component):
|
||||||
|
def __init__(self, bot: Bot):
|
||||||
|
self.bot = bot
|
||||||
|
|
||||||
|
self.data = bot.dbconn.load_registry(AwesomeData())
|
||||||
|
self.awesome = AwesomeRegistry(self.data)
|
||||||
|
|
||||||
|
# ----- API -----
|
||||||
|
async def component_load(self):
|
||||||
|
await self.data.init()
|
||||||
|
await self.bot.version_check(*self.data.VERSION)
|
||||||
|
await self.profiles.init()
|
||||||
|
|
||||||
|
async def component_teardown(self):
|
||||||
|
pass
|
||||||
|
|
||||||
|
# ------ Commands -----
|
||||||
Reference in New Issue
Block a user