fix for raid_loot.sql

Added "ALT" status for !raid list
!icc is now correctable by using !icc set <currently running weekly mission>
This commit is contained in:
2022-08-29 00:02:34 +02:00
parent 6b4cb275b3
commit 872e05f622
4 changed files with 76 additions and 18 deletions
File diff suppressed because one or more lines are too long
+43 -6
View File
@@ -2,13 +2,16 @@ import time
import typing
from datetime import datetime
from core.aochat.BaseModule import BaseModule
from core.buddy_service import BuddyService
from core.chat_blob import ChatBlob
from core.command_alias_service import CommandAliasService
from core.command_param_types import Options, Const
from core.db import DB
from core.decorators import instance, command
from core.decorators import instance, command, setting
from core.job_scheduler import JobScheduler
from core.logger import Logger
from core.setting_types import TimeSettingType, NumberSettingType
from core.text import Text
from core.igncore import IgnCore
from core.util import Util
@@ -23,15 +26,12 @@ if typing.TYPE_CHECKING:
@instance()
class WeeklyController:
class WeeklyController(BaseModule):
# dates = {"ai": [1618704000, 1619395200],
# "bs": [1619913600, 1620604800],
# "dio": [1621123200, 1621814400],
# }
dates = {"ai": [1627171200, 1627862400],
"bs": [1628380800, 1629072000],
"dio": [1629590400, 1630281600],
}
dates = {}
duration = 60 * 60 * 24 * 42 # 3628800
def inject(self, registry):
@@ -53,6 +53,43 @@ class WeeklyController:
self.alias_controller: OrgAliasController = registry.get_instance("org_alias_controller")
self.account_service: AccountService = registry.get_instance("account_service")
def start(self):
self.setup_timers(self.weekly_timer().get_value())
@setting("weekly_timer", 1659225600, "Basis timer for ICC Daily calculations")
def weekly_timer(self):
return NumberSettingType()
@command(command="icc", params=[Const("set"), Options(["ai", "bs", "dio"])], description="Adjust the ICC Weekly timer (set currently active week)", access_level="moderator", sub_command="modify")
def set_icc_cmd(self, _, _1, daily):
# magic numbers:
offset = 138240
no_weekly = 518400
daily = daily.lower()
timer = time.time()
new = (timer//offset) * offset
if daily == "ai":
pass
elif daily == "bs":
new -= 14*24*60*60
elif daily == "dio":
new -= 2*14*24*60*60
new = int(new)
self.setup_timers(new)
self.weekly_timer().set_value(new)
return f"ICC Weekly timers adjusted. Currently running mission: {daily.upper()}"
def setup_timers(self, ai):
basis = ai
duration = 691200
none = 518400
self.dates.clear()
for x in ['ai', 'bs', 'dio']:
self.dates[x] = [basis, basis+duration]
basis += duration+none
@command(command="icc", params=[], description="ICC Weekly", access_level="member")
def show_raids(self, _):
events = [self.get_next_bs(),