mirror of https://github.com/stijndcl/didier
Reply to original message if command invocation was a reply
parent
0165700d9f
commit
b1fdd22058
|
@ -7,6 +7,7 @@ from data.menus import custom_commands
|
||||||
from data.snipe import Action, Snipe
|
from data.snipe import Action, Snipe
|
||||||
from decorators import help
|
from decorators import help
|
||||||
from enums.help_categories import Category
|
from enums.help_categories import Category
|
||||||
|
from functions.utils import reply_to_reference
|
||||||
from startup.didier import Didier
|
from startup.didier import Didier
|
||||||
|
|
||||||
|
|
||||||
|
@ -20,7 +21,7 @@ class Other(commands.Cog):
|
||||||
|
|
||||||
@commands.command(name="Link", usage="[Naam]")
|
@commands.command(name="Link", usage="[Naam]")
|
||||||
@help.Category(category=Category.Other)
|
@help.Category(category=Category.Other)
|
||||||
async def link(self, ctx, name: str):
|
async def link(self, ctx: commands.Context, name: str):
|
||||||
"""
|
"""
|
||||||
Send commonly used links
|
Send commonly used links
|
||||||
"""
|
"""
|
||||||
|
@ -29,7 +30,7 @@ class Other(commands.Cog):
|
||||||
if match is None:
|
if match is None:
|
||||||
return await ctx.reply(f"Geen match gevonden voor \"{name}\".", mention_author=False, delete_after=15)
|
return await ctx.reply(f"Geen match gevonden voor \"{name}\".", mention_author=False, delete_after=15)
|
||||||
|
|
||||||
return await ctx.reply(match, mention_author=False)
|
await reply_to_reference(ctx, content=match)
|
||||||
|
|
||||||
@commands.command(name="Custom")
|
@commands.command(name="Custom")
|
||||||
@help.Category(category=Category.Didier)
|
@help.Category(category=Category.Didier)
|
||||||
|
|
|
@ -9,6 +9,7 @@ from enums.help_categories import Category
|
||||||
from functions import config, les
|
from functions import config, les
|
||||||
from functions.stringFormatters import capitalize
|
from functions.stringFormatters import capitalize
|
||||||
from functions.timeFormatters import skip_weekends
|
from functions.timeFormatters import skip_weekends
|
||||||
|
from functions.utils import reply_to_reference
|
||||||
|
|
||||||
|
|
||||||
class School(commands.Cog):
|
class School(commands.Cog):
|
||||||
|
@ -101,7 +102,9 @@ class School(commands.Cog):
|
||||||
|
|
||||||
# Get the guide for the current year
|
# Get the guide for the current year
|
||||||
year = 2018 + int(config.get("year"))
|
year = 2018 + int(config.get("year"))
|
||||||
return await ctx.reply(f"https://studiekiezer.ugent.be/studiefiche/nl/{course.code}/{year}", mention_author=False)
|
link = f"https://studiekiezer.ugent.be/studiefiche/nl/{course.code}/{year}"
|
||||||
|
|
||||||
|
return await reply_to_reference(ctx, content=link)
|
||||||
|
|
||||||
@commands.command(name="Deadlines", aliases=["dl"])
|
@commands.command(name="Deadlines", aliases=["dl"])
|
||||||
@help.Category(category=Category.School)
|
@help.Category(category=Category.School)
|
||||||
|
|
|
@ -77,7 +77,7 @@
|
||||||
"year": 2
|
"year": 2
|
||||||
},
|
},
|
||||||
"Parallelle Computersystemen": {
|
"Parallelle Computersystemen": {
|
||||||
"abbreviations": ["PCS"],
|
"abbreviations": ["Paracomp", "Parallelle", "PCS"],
|
||||||
"alt": "Parallel Computer Systems",
|
"alt": "Parallel Computer Systems",
|
||||||
"code": "E034140",
|
"code": "E034140",
|
||||||
"year": 3
|
"year": 3
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
from typing import Union
|
from typing import Union, Optional
|
||||||
|
|
||||||
|
import discord
|
||||||
from discord import ApplicationContext
|
from discord import ApplicationContext
|
||||||
from discord.ext.commands import Context
|
from discord.ext.commands import Context
|
||||||
|
|
||||||
|
@ -31,3 +32,22 @@ def get_display_name(ctx: Union[ApplicationContext, Context], user_id: int) -> s
|
||||||
|
|
||||||
mem = ctx.guild.get_member(user_id)
|
mem = ctx.guild.get_member(user_id)
|
||||||
return mem.display_name
|
return mem.display_name
|
||||||
|
|
||||||
|
|
||||||
|
async def reply_to_reference(ctx: Context, content: Optional[str] = None, embed: Optional[discord.Embed] = None, always_mention=False):
|
||||||
|
"""Reply to a message
|
||||||
|
In case the message is a reply to another message, try to reply to that one instead and ping the author
|
||||||
|
otherwise, reply to the message that invoked the command & only mention the author if necessary
|
||||||
|
"""
|
||||||
|
# Message is a reply
|
||||||
|
if ctx.message.reference is not None:
|
||||||
|
cached = ctx.message.reference.cached_message
|
||||||
|
|
||||||
|
# Reference is not cached anymore: fetch it
|
||||||
|
if cached is None:
|
||||||
|
# Message is in the same channel, otherwise no way to reply to it
|
||||||
|
cached = await ctx.channel.fetch_message(ctx.message.reference.message_id)
|
||||||
|
|
||||||
|
return await cached.reply(content, embed=embed, mention_author=cached.author != ctx.author)
|
||||||
|
|
||||||
|
return await ctx.reply(content, embed=embed, mention_author=always_mention)
|
||||||
|
|
Loading…
Reference in New Issue