Compare commits
2 Commits
5372ec1d94
...
895e50bdd3
Author | SHA1 | Date | |
---|---|---|---|
895e50bdd3 | |||
5d084dbae5 |
@ -1,6 +1,6 @@
|
|||||||
import datetime
|
import datetime
|
||||||
import operator
|
import operator
|
||||||
from typing import Tuple, List
|
from typing import Tuple, List, Callable
|
||||||
|
|
||||||
from token_bot.persistant_database import Alert, AlertType
|
from token_bot.persistant_database import Alert, AlertType
|
||||||
from token_bot.token_database.flavor import Flavor
|
from token_bot.token_database.flavor import Flavor
|
||||||
@ -29,12 +29,11 @@ class UpdateTrigger:
|
|||||||
def squelched(self):
|
def squelched(self):
|
||||||
return self._squelched
|
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
|
candidate_datum : Tuple[datetime.datetime, int] | None = None
|
||||||
for datum in history:
|
for datum in history:
|
||||||
if candidate_datum is None:
|
if datum[0] > starting_point and datum != history[-1]:
|
||||||
candidate_datum = datum
|
if candidate_datum is None or comparison_operator(datum[1], candidate_datum[1]):
|
||||||
if (datum[0] > starting_point and datum != history[-1]) and comparison_operator(datum[1], candidate_datum[1]):
|
|
||||||
candidate_datum = datum
|
candidate_datum = datum
|
||||||
self._last_trigger = candidate_datum
|
self._last_trigger = candidate_datum
|
||||||
|
|
||||||
|
@ -76,7 +76,7 @@ class Tracker(Extension):
|
|||||||
)]
|
)]
|
||||||
alerts_by_flavor = await gather_alerts_by_flavor(users_alerts[user])
|
alerts_by_flavor = await gather_alerts_by_flavor(users_alerts[user])
|
||||||
for flavor in alerts_by_flavor:
|
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)
|
await discord_user.send(embeds=embeds)
|
||||||
|
|
||||||
@ -197,7 +197,8 @@ class Tracker(Extension):
|
|||||||
"Please register with /register before adding alerts",
|
"Please register with /register before adding alerts",
|
||||||
ephemeral=True)
|
ephemeral=True)
|
||||||
return
|
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:
|
if len(alerts) == 0:
|
||||||
await ctx.send("You do not have any alerts registered", ephemeral=True)
|
await ctx.send("You do not have any alerts registered", ephemeral=True)
|
||||||
return
|
return
|
||||||
@ -209,7 +210,7 @@ class Tracker(Extension):
|
|||||||
)]
|
)]
|
||||||
alerts_by_flavor = await gather_alerts_by_flavor(alerts)
|
alerts_by_flavor = await gather_alerts_by_flavor(alerts)
|
||||||
for flavor in alerts_by_flavor:
|
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)
|
await ctx.send(embeds=embeds, ephemeral=True)
|
||||||
|
|
||||||
###################################
|
###################################
|
||||||
@ -360,7 +361,7 @@ class Tracker(Extension):
|
|||||||
ephemeral=True)
|
ephemeral=True)
|
||||||
return await self._alert_select_menu_handler(ctx, low_menu, low_message)
|
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
|
region = alerts[0].region
|
||||||
flavor = alerts[0].flavor
|
flavor = alerts[0].flavor
|
||||||
fields: List[EmbedField] = []
|
fields: List[EmbedField] = []
|
||||||
@ -370,7 +371,7 @@ class Tracker(Extension):
|
|||||||
if trigger.last_trigger is not None:
|
if trigger.last_trigger is not None:
|
||||||
alert_str = (f"Last Alerting Price Value: {format(trigger.last_alerting[1], ",")}\n"
|
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")
|
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"
|
alert_str += (f"\nShowing you some internals since you are the bot owner:\n"
|
||||||
f"```history.last_price_datum:\n"
|
f"```history.last_price_datum:\n"
|
||||||
f"\t{history.last_price_datum[0].strftime('%Y-%m-%d %H:%M:%S UTC')}\n"
|
f"\t{history.last_price_datum[0].strftime('%Y-%m-%d %H:%M:%S UTC')}\n"
|
||||||
|
Loading…
Reference in New Issue
Block a user