Compare commits

...

2 Commits

2 changed files with 11 additions and 11 deletions

View File

@ -1,6 +1,6 @@
import datetime
import operator
from typing import Tuple, List
from typing import Tuple, List, Callable
from token_bot.persistant_database import Alert, AlertType
from token_bot.token_database.flavor import Flavor
@ -29,13 +29,12 @@ class UpdateTrigger:
def squelched(self):
return self._squelched
def _find_next_trigger(self, comparison_operator: operator, starting_point: datetime.datetime, history: List[Tuple[datetime.datetime, int]]):
def _find_next_trigger(self, comparison_operator: Callable, starting_point: datetime.datetime, history: List[Tuple[datetime.datetime, int]]):
candidate_datum : Tuple[datetime.datetime, int] | None = None
for datum in history:
if candidate_datum is None:
candidate_datum = datum
if (datum[0] > starting_point and datum != history[-1]) and comparison_operator(datum[1], candidate_datum[1]):
candidate_datum = datum
if datum[0] > starting_point and datum != history[-1]:
if candidate_datum is None or comparison_operator(datum[1], candidate_datum[1]):
candidate_datum = datum
self._last_trigger = candidate_datum
def check_and_update(self, new_datum: Tuple[datetime.datetime, int], history: List[Tuple[datetime.datetime, int]]) -> bool:

View File

@ -76,7 +76,7 @@ class Tracker(Extension):
)]
alerts_by_flavor = await gather_alerts_by_flavor(users_alerts[user])
for flavor in alerts_by_flavor:
embeds.append(await self.render_alert_flavor(alerts_by_flavor[flavor]))
embeds.append(await self.render_alert_flavor(alerts_by_flavor[flavor], user=user))
await discord_user.send(embeds=embeds)
@ -197,7 +197,8 @@ class Tracker(Extension):
"Please register with /register before adding alerts",
ephemeral=True)
return
alerts = await self._users.list_alerts(ctx.user.id)
user = await self._users.get(ctx.user.id)
alerts = await self._users.list_alerts(user)
if len(alerts) == 0:
await ctx.send("You do not have any alerts registered", ephemeral=True)
return
@ -209,7 +210,7 @@ class Tracker(Extension):
)]
alerts_by_flavor = await gather_alerts_by_flavor(alerts)
for flavor in alerts_by_flavor:
embeds.append(await self.render_alert_flavor(alerts_by_flavor[flavor]))
embeds.append(await self.render_alert_flavor(alerts_by_flavor[flavor], user=user))
await ctx.send(embeds=embeds, ephemeral=True)
###################################
@ -360,7 +361,7 @@ class Tracker(Extension):
ephemeral=True)
return await self._alert_select_menu_handler(ctx, low_menu, low_message)
async def render_alert_flavor(self, alerts: List[Alert]) -> Embed:
async def render_alert_flavor(self, alerts: List[Alert], user: User | None = None) -> Embed:
region = alerts[0].region
flavor = alerts[0].flavor
fields: List[EmbedField] = []
@ -370,7 +371,7 @@ class Tracker(Extension):
if trigger.last_trigger is not None:
alert_str = (f"Last Alerting Price Value: {format(trigger.last_alerting[1], ",")}\n"
f"Last Alerting Time: {trigger.last_alerting[0].strftime('%Y-%m-%d %H:%M:%S UTC')}\n")
if is_owner():
if user is not None and user.user_id == 265678699435655169:
alert_str += (f"\nShowing you some internals since you are the bot owner:\n"
f"```history.last_price_datum:\n"
f"\t{history.last_price_datum[0].strftime('%Y-%m-%d %H:%M:%S UTC')}\n"