Skip to content

Commit

Permalink
feat: all log messages for error
Browse files Browse the repository at this point in the history
  • Loading branch information
lonnstyle committed Jun 5, 2022
1 parent 5633f35 commit 0adaddf
Show file tree
Hide file tree
Showing 6 changed files with 36 additions and 5 deletions.
16 changes: 12 additions & 4 deletions cmds/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ async def ping(self, ctx):
green = 255-red
color = discord.Colour.from_rgb(r=red, g=green, b=0)
embed = discord.Embed(title=lang['ping.embed.title'], description=lang['ping.latency'].format(latency=latency), color=color)
logger.info(f'[ping] {ctx.message.author} ping, latency:{latency}ms')
await ctx.send(embed=embed)

# @cog_ext.cog_slash(name="ping", description=lang['ping.description'])
Expand All @@ -56,19 +57,26 @@ async def ping(self, ctx):
async def sayd(self, ctx, *, msg):
try:
await ctx.message.delete()
except:
pass
logger.info('[sayd] deleted source message')
except Exception as e:
logger.error(f'[sayd] cannot delete source message, cuz {e}')
embed = discord.Embed(description=msg, color=0x3C879C)
for items in ctx.message.attachments:
print(items.url)
# print(items.url)
logger.info(f'[sayd] attachment found: {items.url}')
embed.set_image(url=items.url)
message = await ctx.send(embed=embed)
if ctx.channel.id == jdata['publish']:
logger.info('[sayd] message published')
await message.publish()

@commands.command(name='poll', aliases=lang['poll.aliases'], brief=lang['poll.brief'], description=lang['poll.description'])
async def poll(self, ctx, topic, option1, emoji1, option2, emoji2):
await ctx.message.delete()
try:
await ctx.message.delete()
logger.info('[poll] deleted source message')
except Exception as e:
logger.error(f'[poll] cannot delete source message, cuz {e}')
match1 = re.match(r'<(a?):([a-zA-Z0-9\_]+):([0-9]+)>$', emoji1)
match2 = re.match(r'<(a?):([a-zA-Z0-9\_]+):([0-9]+)>$', emoji2)
if (emoji.get(emoji1, None) != None or match1) and (emoji.get(emoji2, None) != None or match2):
Expand Down
11 changes: 10 additions & 1 deletion cmds/event.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,20 +38,27 @@ class event(Cog_Extension):
async def rr(self, ctx, message: int):
with open("role/rr.txt", "a") as rr:
rr.write(f"{message}\n")
logger.info(f'[rr] listening {message}')
await ctx.message.add_reaction("✅")
await ctx.message.delete(delay=5)
try:
await ctx.message.delete(delay=5)
logger.info(f'[rr] deleted command message')
except Exception as e:
logger.error(f'[rr] cannot delete command message, cuz {e}')

@commands.command(name='role', aliases=lang['role.aliases'], brief=lang['role.brief'], description=lang['role.description'])
async def role(self, ctx, role: str, emoji):
match = re.match(r'<(a?):([a-zA-Z0-9\_]+):([0-9]+)>$', emoji)
if (emojimap.get(emoji, None) != None or match) and ctx.author.guild_permissions.administrator == True:
with open("role/roles.txt", "a") as roles:
roles.write(f"{emoji},{role}\n")
logger.info('[role] listening {emoji} as role:{role}')
await ctx.message.add_reaction("✅")
await ctx.message.delete(delay=5)
else:
await ctx.message.delete()
await ctx.send(embed=discord.Embed(title=lang['role.error.title'], description=lang['role.error.description']))
logger.error(f'[role] failed to listen {emoji} as role:{role}, please check if {ctx.message.author} have administrator permission')

@commands.Cog.listener()
async def on_raw_reaction_add(self, payload):
Expand All @@ -67,6 +74,7 @@ async def on_raw_reaction_add(self, payload):
for role in payload.member.guild.roles:
if (role.name == roles.get(payload.emoji.name) or role.name == roles.get(f"<:{payload.emoji.name}:{payload.emoji.id}>")) and str(payload.message_id) in message:
await payload.member.add_roles(role)
logger.info(f'[on_raw_reaction_add] added {role.name} to {payload.member}')

@commands.Cog.listener()
async def on_raw_reaction_remove(self, payload):
Expand All @@ -84,6 +92,7 @@ async def on_raw_reaction_remove(self, payload):
for role in member.roles:
if (role.name == roles.get(payload.emoji.name) or role.name == roles.get(f"<:{payload.emoji.name}:{payload.emoji.id}>")) and str(payload.message_id) in message:
await member.remove_roles(role)
logger.info(f'[on_raw_reaction_remove] removed {role.name} to {payload.member}')


def setup(bot):
Expand Down
4 changes: 4 additions & 0 deletions cmds/rivenPrice.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,23 +57,27 @@ async def rivenPrice(self, ctx, *weapon):
weapon, ratio = process.extractOne(name, Weapons.keys())
if ratio < 75:
embed = discord.Embed(title=lang['riven.error.title'], description=lang['riven.error.description'].format(self=jdata['self']), color=0xff0000)
logger.warning(f'[riven] failed to search weapon: {name}')
for match, score in process.extractBests(name, localWeapons.keys()):
if score > 50:
embed.add_field(name=match, value=score, inline=False)
logger.info(f'[riven] suggested weapon name: {match}')
await ctx.send(embed=embed)
else:
name = weapon
weapon = Weapons[weapon]
else:
name = weapon
weapon = localWeapons[weapon]
logger.info(f'[riven] searching weapon: {weapon}')
url = 'https://api.warframe.market/v1/auctions/search?type=riven&weapon_url_name=' + weapon + '&sort_by=price_asc'
html = requests.get(url)
weapon = weapon.replace("_", " ")
if html.status_code != 200:
await ctx.send(embed=discord.Embed(title=lang['riven.error.title'],
description=lang['riven.error.description'].format(self=jdata['self']),
color=0xff0000))
logger.error(f'[riven] failed to search {weapon}, status code: {html.status_code}, reason: {html.reason}')
return ()
else:
rivenData = json.loads(html.text)
Expand Down
6 changes: 6 additions & 0 deletions cmds/wfm.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ async def translate(self, ctx, *item):
if translate == item:
message = lang['translate.error.noTrans'].format(self=jdata['self'])
await ctx.send(message)
logger.warning(f'[translate] failed to search translation for {item}')
return
else:
language = lang['translate.language.local']
Expand Down Expand Up @@ -111,8 +112,10 @@ async def market(self, ctx, *args):
action = 'sell'
else:
await ctx.send(lang['wfm.error.unknownOrder'].format(user=jdata['user']))
logger.warning(f'[market] failed to search orders for {args}')
else:
await ctx.send(lang['wfm.error.tooManyArgs'].format(user=jdata['user'], self=jdata['self']))
logger.warning(f'[market] too many arguments: {args}')
count = 5
items = ' '.join(word.capitalize() for word in (items.split()))
item = localDict.get(items, items)
Expand All @@ -124,6 +127,7 @@ async def market(self, ctx, *args):
itemsDetail = json.loads(requests.get("https://api.warframe.market/v1/items/" + item).text.encode(encoding="UTF-8"))["payload"]["item"]["items_in_set"]
except:
await ctx.send(lang["wfm.error.unknownItem"].format(self=jdata['self']))
logger.warning(f'[market] failed to search orders for {args}')
return
max_rank = None
for itemDetail in itemsDetail:
Expand All @@ -133,11 +137,13 @@ async def market(self, ctx, *args):
itemrank = int(itemrank)
if itemrank > max_rank:
await ctx.send(lang["wfm.error.outOfRank"].format(user=jdata['user']))
logger.warning(f"[market] {item}'s maxrank is {max_rank} while attempting to search rank{itemrank}")
return
url = "https://api.warframe.market/v1/items/" + item + "/orders"
raw = requests.get(url)
if raw.status_code != 200:
await ctx.send(lang["wfm.error.API"].format(self=jdata['self'], user=jdata['user']))
logger.warning(f'[market] failed to search item info, cuz {raw.status_code} {raw.reason}')
return
else:
raw = json.loads(raw.text.encode(encoding='UTF-8'))
Expand Down
1 change: 1 addition & 0 deletions cmds/wiki.py
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@ async def wiki(self, ctx, *page):
URL = f"https://{enURL}/wiki/{title}"
else:
await ctx.send(lang['wiki.error.notFound'].format(self=jdata['self'], user=jdata['user']))
logger.warning(f'[wiki] failed to search {title}')
return
embed = discord.Embed(title=title, url=URL.replace(" ", "_"))
embed.set_footer(text=footer)
Expand Down
3 changes: 3 additions & 0 deletions cmds/worldState.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import json
import logging
import os
from datetime import datetime
from operator import itemgetter

Expand All @@ -16,6 +17,8 @@

lang = lang.langpref()['worldState']

dirname = os.path.dirname(__file__)

logger = logging.getLogger('worldState')
logger.setLevel(-1)
handler = logging.FileHandler(file=os.path.join(dirname, '../log/runtime.log'), encoding='utf-8', mode='a')
Expand Down

0 comments on commit 0adaddf

Please sign in to comment.