fix: Many typos

This commit is contained in:
2026-07-30 09:45:03 +03:00
parent 0923f32a82
commit a18885511a
6 changed files with 49 additions and 24 deletions
+2
View File
@@ -2,8 +2,10 @@ BEGIN;
-- Version dependency checks -- Version dependency checks
DO $$ DO $$
BEGIN
ASSERT current_module_version('PROFILES') = 1, 'Dependency version mismatch: PROFILES'; ASSERT current_module_version('PROFILES') = 1, 'Dependency version mismatch: PROFILES';
ASSERT current_module_version('EVENT_TRACKER') = 2, 'Dependency version mismatch: EVENT_TRACKER'; ASSERT current_module_version('EVENT_TRACKER') = 2, 'Dependency version mismatch: EVENT_TRACKER';
END;
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
-- Plugin version history -- Plugin version history
+15 -10
View File
@@ -2,6 +2,8 @@ from typing import Any, Optional
import datetime as dt import datetime as dt
from datetime import datetime, timedelta from datetime import datetime, timedelta
import aiohttp
from data import ORDER, Condition from data import ORDER, Condition
from data.conditions import NULL, condition from data.conditions import NULL, condition
from utils.lib import utc_now from utils.lib import utc_now
@@ -16,8 +18,9 @@ from . import logger
class RewardCampaign: class RewardCampaign:
def __init__(self, row: Campaign): def __init__(self, row: Campaign, session: aiohttp.ClientSession | None = None):
self.row = row self.row = row
self._session = session
self._webhook: ThreadedWebhook | None = None self._webhook: ThreadedWebhook | None = None
self._cached_webhookurl: str | None = None self._cached_webhookurl: str | None = None
@@ -33,7 +36,7 @@ class RewardCampaign:
if url is not None: if url is not None:
# TODO: I don't know if these needs a client # TODO: I don't know if these needs a client
# Might be hard if so given we need to run this from Twitch client as well # Might be hard if so given we need to run this from Twitch client as well
self._webhook = ThreadedWebhook.from_url(url) self._webhook = ThreadedWebhook.from_url(url, session=self._session)
else: else:
self._webhook = None self._webhook = None
return self._webhook return self._webhook
@@ -170,8 +173,10 @@ class RewardCampaign:
class CampaignRegistry: class CampaignRegistry:
VERSION = CampaignData.VERSION VERSION = CampaignData.VERSION
def __init__(self, data: CampaignData): def __init__(self, data: CampaignData, session: aiohttp.ClientSession | None = None):
self.data = data self.data = data
# TODO: Actually pass in a session
self._session = aiohttp.ClientSession()
async def init(self): async def init(self):
await self.data.init() await self.data.init()
@@ -183,7 +188,7 @@ class CampaignRegistry:
row = await Campaign.fetch(campaign_id) row = await Campaign.fetch(campaign_id)
if row is None: if row is None:
raise ValueError("Campign %s doesn't exist." % campaign_id) raise ValueError("Campign %s doesn't exist." % campaign_id)
camp = RewardCampaign(row) camp = RewardCampaign(row, session=self._session)
return camp return camp
async def fetch_campaigns( async def fetch_campaigns(
@@ -207,7 +212,7 @@ class CampaignRegistry:
condition = condition and ~active_condition condition = condition and ~active_condition
rows = await Campaign.fetch_where(condition) rows = await Campaign.fetch_where(condition)
campaigns = [RewardCampaign(row) for row in rows] campaigns = [RewardCampaign(row, session=self._session) for row in rows]
return campaigns return campaigns
@@ -221,13 +226,13 @@ class CampaignRegistry:
""" """
results = await Campaign.fetch_where( results = await Campaign.fetch_where(
Condition._expression_equality( Condition._expression_equality(
LOWER(Campaign.campaign_name.expr), LOWER(asexpr(name)) LOWER(Campaign.campaign_name), LOWER(asexpr(name))
), ),
campaignid=cid, communityid=cid,
) )
if results: if results:
row = results[0] row = results[0]
camp = RewardCampaign(row) camp = RewardCampaign(row, session=self._session)
else: else:
camp = None camp = None
return camp return camp
@@ -247,7 +252,7 @@ class CampaignRegistry:
campaign_name=campaign_name, campaign_name=campaign_name,
**kwargs **kwargs
) )
return RewardCampaign(row) return RewardCampaign(row, session=self._session)
async def update_campaign( async def update_campaign(
self, self,
@@ -261,4 +266,4 @@ class CampaignRegistry:
""" """
campaign = await Campaign.fetch(campaign_id) campaign = await Campaign.fetch(campaign_id)
await campaign.update(**kwargs) await campaign.update(**kwargs)
return RewardCampaign(campaign) return RewardCampaign(campaign, session=self._session)
+5 -3
View File
@@ -1,6 +1,7 @@
from typing import Optional from typing import Optional
import asyncio import asyncio
from aiohttp import client
import discord import discord
from discord.ext import commands as cmds from discord.ext import commands as cmds
from discord import Forbidden, User, app_commands as appcmds from discord import Forbidden, User, app_commands as appcmds
@@ -193,6 +194,7 @@ class CampaignCog(LionCog):
moderator_role_id=moderator_role.id if moderator_role else None, moderator_role_id=moderator_role.id if moderator_role else None,
logging_webhook_url=logging_webhook, logging_webhook_url=logging_webhook,
) )
await campaign.start()
# Ack creation # Ack creation
# TODO: Can also show dashboard # TODO: Can also show dashboard
@@ -256,7 +258,7 @@ class CampaignCog(LionCog):
# If logging webhook is given, check that it works # If logging webhook is given, check that it works
if logging_webhook is not None: if logging_webhook is not None:
webhook = ThreadedWebhook.from_url(logging_webhook) webhook = ThreadedWebhook.from_url(logging_webhook, client=self.bot)
try: try:
await webhook.test_webhook() await webhook.test_webhook()
except (discord.HTTPException, discord.Forbidden): except (discord.HTTPException, discord.Forbidden):
@@ -276,9 +278,9 @@ class CampaignCog(LionCog):
) )
# Ack creation # Ack creation
# TODO: Can also show dashboard
await ctx.reply( await ctx.reply(
f"Setup and started your reward campaign {campaign.row.campaign_name}! Good luck" "Updated your campaign, good luck!",
ephemeral=True
) )
campaign_configure_cmd.autocomplete("campaign_name")(_campaign_acmpl) campaign_configure_cmd.autocomplete("campaign_name")(_campaign_acmpl)
+3 -4
View File
@@ -16,9 +16,8 @@ from meta import LionBot
from meta.errors import UserInputError from meta.errors import UserInputError
from meta.config import conf from meta.config import conf
from utils.lib import tabulate, utc_now, MessageArgs, parse_duration from utils.lib import tabulate, utc_now, MessageArgs, parse_duration
from utils.ui import MessageUI, AButton, AsComponents, ConfigEditor from utils.ui import MessageUI
from utils.ui.micros import FastModal from utils.ui.micros import FastModal
from utils.ui.pagers import BasePager, Pager
from ...campaign import RewardCampaign from ...campaign import RewardCampaign
from ...data import EarnedReward from ...data import EarnedReward
@@ -54,7 +53,7 @@ class CampaignDashboard(MessageUI):
await widget.wait() await widget.wait()
self._slaves.remove(widget) self._slaves.remove(widget)
@button(emoji=conf.emojis.cancel, style=ButtonStyle.red) @button(emoji=conf.emojis.cancel)
async def quit_button(self, press: discord.Interaction, pressed: Button): async def quit_button(self, press: discord.Interaction, pressed: Button):
"""Close the UI and all children.""" """Close the UI and all children."""
await press.response.defer(thinking=False) await press.response.defer(thinking=False)
@@ -124,7 +123,7 @@ class CampaignDashboard(MessageUI):
embed.add_field( embed.add_field(
name="Rewards Summary", name="Rewards Summary",
value=blocks[0] or 'No Rewards Earned', value=blocks[0] if blocks else 'No Rewards Earned',
inline=True inline=True
) )
for block in blocks[1:]: for block in blocks[1:]:
+21 -4
View File
@@ -196,7 +196,7 @@ class RewardList(MessageUI):
self.pagen -= 1 self.pagen -= 1
await self.refresh() await self.refresh()
@button(emoji=conf.emojis.cancel, style=ButtonStyle.red) @button(emoji=conf.emojis.cancel)
async def quit_button(self, press: discord.Interaction, pressed: Button): async def quit_button(self, press: discord.Interaction, pressed: Button):
"""Close the UI and all children.""" """Close the UI and all children."""
await press.response.defer(thinking=False) await press.response.defer(thinking=False)
@@ -247,7 +247,7 @@ class RewardList(MessageUI):
value = reward.earned_id value = reward.earned_id
return SelectOption( return SelectOption(
label=name, value=value label=name, value=str(value)
) )
async def refresh_layout(self): async def refresh_layout(self):
@@ -256,7 +256,7 @@ class RewardList(MessageUI):
) )
await asyncio.gather(*to_refresh) await asyncio.gather(*to_refresh)
if self.page_count > 1: if self.page_count <= 1:
self.prev_page_button.disabled = True self.prev_page_button.disabled = True
self.next_page_button.disabled = True self.next_page_button.disabled = True
else: else:
@@ -270,7 +270,24 @@ class RewardList(MessageUI):
async def make_message(self) -> MessageArgs: async def make_message(self) -> MessageArgs:
embed = discord.Embed(title=f"{self.campaign.row.campaign_name} Reward List") embed = discord.Embed(title=f"{self.campaign.row.campaign_name} Reward List")
# embed.set_footer with last update embed.set_footer(text='Last Update')
embed.timestamp = utc_now()
campaign = self.campaign
all_rewards = await campaign.get_rewards()
rewards_earned = len(all_rewards)
reward_cap = campaign.row.target_rewards
if reward_cap is not None:
description = f"{rewards_earned} earned out of {reward_cap} available"
else:
description = f"{rewards_earned} earned so far"
embed.description = description
for reward in self.page:
name, value = self._format_reward_section(reward)
embed.add_field(name=name, value=value, inline=False)
return MessageArgs(embed=embed) return MessageArgs(embed=embed)
+1 -1
View File
@@ -62,4 +62,4 @@ class ThreadedWebhook(discord.Webhook):
) )
result = await self.send(embed=embed, wait=True, silent=True) result = await self.send(embed=embed, wait=True, silent=True)
asyncio.create_task(fire_and_forget(result.delete())) asyncio.create_task(fire_and_forget(result.delete()))
await result return result