Fixed bidding, while not being in raid (Nolonger throws an error)

Added default alias !list for !loot (bebot like)
Changed the layout of !notes, its more compact now.
fixed !count in the rare case of an empty private channel
This commit is contained in:
2021-08-15 15:47:06 +02:00
parent 46d0ba3634
commit d0c8c1744c
6 changed files with 32 additions and 33 deletions
+1 -1
View File
@@ -113,7 +113,7 @@ class DingController:
blob = self.text.format_page('Info', blob = self.text.format_page('Info',
f"<header>::: Information :::</header><br><br>" f"<header>::: Information :::</header><br><br>"
f"This automated message has been sent to you by:<br><br>" f"This automated message has been sent to you by:<br><br>"
f"<header2>Igncom</header2> <yellow>[<green>{sys}</green>]</yellow><br>" f"<header2>{self.bot.get_char_name()}</header2> <yellow>[<green>{sys}</green>]</yellow><br>"
f"<header2>Reason for this Message: " f"<header2>Reason for this Message: "
f"<highlight>You dinged {level}</highlight></header2><br><br>" f"<highlight>You dinged {level}</highlight></header2><br><br>"
f"<header2>Have you joined The Alliance Discord yet? " f"<header2>Have you joined The Alliance Discord yet? "
+12 -11
View File
@@ -101,7 +101,7 @@ class RaidbotController(BaseModule):
blob += f"Raidleader: " \ blob += f"Raidleader: " \
f"<highlight>" \ f"<highlight>" \
f"{self.leader.leader.name if self.leader.leader else '<red>not set - use !leader set<end>'}" \ f"{self.leader.leader.name if self.leader.leader else '<red>not set - use !leader set<end>'}" \
f"<end>" f"<end>\n"
blob += f"Started At: <highlight>{self.util.format_datetime(self.raid.started_at)}<end> " \ blob += f"Started At: <highlight>{self.util.format_datetime(self.raid.started_at)}<end> " \
f"({self.util.time_to_readable(t - self.raid.started_at)} ago)\n" f"({self.util.time_to_readable(t - self.raid.started_at)} ago)\n"
if self.raid.is_open: if self.raid.is_open:
@@ -483,21 +483,21 @@ class RaidbotController(BaseModule):
blob += f"End time: <highlight>{self.util.format_datetime(log_entry[0].raid_end)}<end>\n" blob += f"End time: <highlight>{self.util.format_datetime(log_entry[0].raid_end)}<end>\n"
blob += f"Run time: " \ blob += f"Run time: " \
f"<highlight>{self.util.time_to_readable(log_entry[0].raid_end - log_entry[0].raid_start)}<end>\n" f"<highlight>{self.util.time_to_readable(log_entry[0].raid_end - log_entry[0].raid_start)}<end>\n"
blob += f"Total points: <highlight>{pts_sum:d}<end>\n\n" blob += f"Total points: <highlight>{pts_sum}<end>\n\n"
if char and log_entry_spec: if char and log_entry_spec:
raider_name = self.character_service.resolve_char_to_name(log_entry_spec.raider_id) raider_name = self.character_service.resolve_char_to_name(log_entry_spec.raider_id)
main_info = self.account_service.get_main(log_entry_spec.raider_id) main_info = self.account_service.get_main(log_entry_spec.raider_id)
alt_link = "Alt of %s" % main_info.name if main_info.char_id != log_entry_spec.raider_id else "Alts" alt_link = f"Alt of {main_info.name}" if main_info.char_id != log_entry_spec.raider_id else "Alts"
alt_link = self.text.make_chatcmd(alt_link, "/tell <myname> alts %s" % main_info.name) alt_link = self.text.make_chatcmd(alt_link, f"/tell <myname> alts {main_info.name}")
blob += "<header2>Log entry for %s<end>\n" % raider_name blob += f"<header2>Log entry for {raider_name}<end>\n"
blob += "Raider: <highlight>%s<end> [%s]\n" % (raider_name, alt_link) blob += f"Raider: <highlight>{raider_name}<end> [{alt_link}]\n"
blob += "Left raid: %s\n" % ("n/a" blob += "Left raid: %s\n" % ("n/a"
if log_entry_spec.left_raid is None if log_entry_spec.left_raid is None
else self.util.format_datetime(log_entry_spec.left_raid)) else self.util.format_datetime(log_entry_spec.left_raid))
blob += "Was kicked: %s\n" % ("No" blob += "Was kicked: %s\n" % ("No"
if log_entry_spec.was_kicked is None if log_entry_spec.was_kicked is None
else "Yes [%s]" % (self.util.format_datetime(log_entry_spec.was_kicked))) else f"Yes [{self.util.format_datetime(log_entry_spec.was_kicked)}]")
blob += "Kick reason: %s\n\n" % ("n/a" blob += "Kick reason: %s\n\n" % ("n/a"
if log_entry_spec.was_kicked_reason is None if log_entry_spec.was_kicked_reason is None
else log_entry_spec.was_kicked_reason) else log_entry_spec.was_kicked_reason)
@@ -569,9 +569,9 @@ class RaidbotController(BaseModule):
def announce_raid(self, event_type, event_data): def announce_raid(self, event_type, event_data):
if self.raid: if self.raid:
if self.raid.is_open: if self.raid.is_open:
self.bot.send_private_channel_message("<highlight>Raid Running<end> " self.bot.send_private_channel_message(f"<highlight>Raid Running<end> "
"<yellow>::<end> <green>%s<end> <yellow>::<end> %s" % f"<yellow>::<end> <green>{self.raid.desc}<end> <yellow>::<end> %s" %
(self.raid.desc, (
f"<a href=\"text://{self.raid.raid_name}\">" f"<a href=\"text://{self.raid.raid_name}\">"
f"{self.get_raid_join_blob('Click to Join')}" f"{self.get_raid_join_blob('Click to Join')}"
f"</a>")) f"</a>"))
@@ -587,6 +587,7 @@ class RaidbotController(BaseModule):
self.bot.send_private_channel_message(f"<red>::</red> No Leader set <red>::</red> " self.bot.send_private_channel_message(f"<red>::</red> No Leader set <red>::</red> "
f"use <highlight>!leader set</highlight>") f"use <highlight>!leader set</highlight>")
return return
if not self.is_in_raid(leader.char_id): account = self.account_service.get_account(leader.char_id)
if not self.is_in_raid(account.main):
self.bot.send_private_channel_message(f"<red>::</red> Raidleader <highlight>{leader.name}</highlight> " self.bot.send_private_channel_message(f"<red>::</red> Raidleader <highlight>{leader.name}</highlight> "
f"is not in raid <red>::</red>") f"is not in raid <red>::</red>")
@@ -110,13 +110,9 @@ class AuctionStrategy:
raider: Raider = self.raid_controller.is_in_raid(main) raider: Raider = self.raid_controller.is_in_raid(main)
if type(raider) == Raider: if type(raider) == Raider:
if not raider.is_active: if not raider.is_active:
self.bot.send_mass_message(request.sender.char_id, return "You are not participating in the raid, and cannot add to the loot."
"You are not participating in the raid, and cannot add to the loot.")
return
elif raider is None: elif raider is None:
self.bot.send_mass_message(request.sender.char_id, return "You are not participating in the raid, and cannot add to the loot."
"You are not participating in the raid, and cannot add to the loot.")
return
if not account: if not account:
return "You do not have an active account with this bot." return "You do not have an active account with this bot."
elif account.disabled: elif account.disabled:
+7 -6
View File
@@ -49,6 +49,7 @@ class LootController:
self.alias.add_alias("flatroll", "loot roll") self.alias.add_alias("flatroll", "loot roll")
self.alias.add_alias("result", "loot roll") self.alias.add_alias("result", "loot roll")
self.alias.add_alias("results", "loot roll") self.alias.add_alias("results", "loot roll")
self.alias.add_alias("list", "loot")
self.alias.add_alias("win", "loot roll") self.alias.add_alias("win", "loot roll")
@command(command="loot", params=[], description="Show the list of added items", access_level="member") @command(command="loot", params=[], description="Show the list of added items", access_level="member")
@@ -292,9 +293,9 @@ class LootController:
for item in items: for item in items:
self.add_item_to_loot(item, item.comment, item.multiloot) self.add_item_to_loot(item, item.comment, item.multiloot)
self.bot.send_private_channel_message("%s table was added to loot." % category) self.bot.send_private_channel_message(f"{category} table was added to loot.")
else: else:
return "%s does not have any items registered in loot table." % category return f"{category} does not have any items registered in loot table."
@command(command="loot", @command(command="loot",
params=[Const("additem", is_optional=True), Int("item"), Int("item_count", is_optional=True)], params=[Const("additem", is_optional=True), Int("item"), Int("item_count", is_optional=True)],
@@ -308,7 +309,7 @@ class LootController:
item = self.items_controller.get_by_item_id(item_id) item = self.items_controller.get_by_item_id(item_id)
if not item: if not item:
return "Could not find item with ID <highlight>%d<end>." % item_id return f"Could not find item with ID <highlight>{item_id}<end>."
self.add_item_to_loot(item, item_count=item_count) self.add_item_to_loot(item, item_count=item_count)
@@ -337,7 +338,7 @@ class LootController:
loot += item loot += item
self.add_item_to_loot(item, item_count=item_count) self.add_item_to_loot(item, item_count=item_count)
self.bot.send_private_channel_message("<highlight>%s<end> was added to loot list." % loot) self.bot.send_private_channel_message(f"<highlight>{loot}<end> was added to loot list.")
@timerevent(budatime="1h", @timerevent(budatime="1h",
description="Periodically check when loot list was last modified, and clear it " description="Periodically check when loot list was last modified, and clear it "
@@ -384,10 +385,10 @@ class LootController:
[item[0][2], item[0][3]]) [item[0][2], item[0][3]])
if imgid is not None: if imgid is not None:
img = self.text.make_image(imgid.get("icon")) + " - " img = self.text.make_image(imgid.get("icon")) + " - "
blob += "%d. %s%s " % (i, img, item[0][0]) blob += f"{i:d}. {img}{item[0][0]} "
else: else:
blob += "%d. %s " % (i, loot_item.get_item_str()) blob += f"{i:d}. {loot_item.get_item_str()} "
blob += f"x{loot_item.count} [{self.text.make_chatcmd('Add', f'/tell <myname> loot add {i}')}]\n" blob += f"x{loot_item.count} [{self.text.make_chatcmd('Add', f'/tell <myname> loot add {i}')}]\n"
blob += "" blob += ""
if edit: if edit:
+5 -5
View File
@@ -33,11 +33,11 @@ class NotesController:
cnt += alt_cnt cnt += alt_cnt
if alt_cnt: if alt_cnt:
blob += "\n<header2>%s</header2>\n" % alt.name blob += f"\n<header2>{alt.name}</header2>\n"
for row in data: for row in data:
blob += "%s %s\n\n" % (row.note, self.text.make_tellcmd("Remove", "notes remove %d" % row.id)) blob += f"» {row.note} {self.text.make_tellcmd('Remove', f'notes remove {row.id:d}')}\n"
return ChatBlob("Notes for %s (%d)" % (alts[0].name, cnt), blob) return ChatBlob(f"Notes for {alts[0].name} ({cnt:d})", blob)
@command(command="notes", params=[Const("add"), Any("note")], access_level="member", @command(command="notes", params=[Const("add"), Any("note")], access_level="member",
description="Add a note") description="Add a note")
@@ -56,7 +56,7 @@ class NotesController:
[note_id]) [note_id])
if not note: if not note:
return f"Could not find note with ID <highlight>{note_id:d}</highlight>." return f"Could not find note with ID <highlight>{note_id}</highlight>."
if self.account_service.get_main(request.sender.char_id).char_id \ if self.account_service.get_main(request.sender.char_id).char_id \
!= self.account_service.get_main(note.char_id).char_id: != self.account_service.get_main(note.char_id).char_id:
@@ -64,4 +64,4 @@ class NotesController:
self.db.exec("DELETE FROM notes WHERE id = ?", [note_id]) self.db.exec("DELETE FROM notes WHERE id = ?", [note_id])
return f"Note with ID <highlight>{note_id:d}</highlight> deleted successfully." return f"Note with ID <highlight>{note_id}</highlight> deleted successfully."
+5 -4
View File
@@ -121,15 +121,16 @@ class OnlineController:
params = [self.bot.name, self.bot.get_char_id()] params = [self.bot.name, self.bot.get_char_id()]
if not option: if not option:
option = "prof" option = "prof"
output = ""
if option == "prof": if option == "prof":
return self.online_display.count_prof(query, params, filters) output = self.online_display.count_prof(query, params, filters)
elif option == "org": elif option == "org":
return self.online_display.count_org(query, params, filters) output = self.online_display.count_org(query, params, filters)
elif option == "tl": elif option == "tl":
if filters: if filters:
try: try:
filters = int(filters) filters = int(filters)
except ValueError: except ValueError:
return f"Invalid Title level: {filters}" return f"Invalid Title level: {filters}"
return self.online_display.count_tl(query, params, filters) output = self.online_display.count_tl(query, params, filters)
return output if output != "" else "Nobody is in my private channel, sorry..."