me/here arguments

This commit is contained in:
klemek
2021-01-11 15:57:18 +01:00
parent 5563945dcc
commit bfe279095d
7 changed files with 24 additions and 14 deletions
+2 -2
View File
@@ -10,8 +10,8 @@ When you need statistics about your discord server
* `%info` - version and uptime * `%info` - version and uptime
* `%emotes` : Rank emotes by their usage * `%emotes` : Rank emotes by their usage
* arguments: * arguments:
* @member : filter for one or more member * @member/me : filter for one or more member
* #channel : filter for one or more channel * #channel/here : filter for one or more channel
* <n> : top <n> emojis, default is 20 * <n> : top <n> emojis, default is 20
* all : list all common emojis in addition to this guild's * all : list all common emojis in addition to this guild's
* members : show top member for each emote * members : show top member for each emote
+2 -2
View File
@@ -17,8 +17,8 @@ class CompositionScanner(Scanner):
return "```\n" return "```\n"
+"%comp : Show composition statistics\n" +"%comp : Show composition statistics\n"
+"arguments:\n" +"arguments:\n"
+"* @member : filter for one or more member\n" +"* @member/me : filter for one or more member\n"
+"* #channel : filter for one or more channel\n" +"* #channel/here : filter for one or more channel\n"
+"Example: %comp #mychannel1 @user\n" +"Example: %comp #mychannel1 @user\n"
+"```" +"```"
+2 -2
View File
@@ -17,8 +17,8 @@ class EmotesScanner(Scanner):
return "```\n" return "```\n"
+"%emotes : Rank emotes by their usage\n" +"%emotes : Rank emotes by their usage\n"
+"arguments:\n" +"arguments:\n"
+"* @member : filter for one or more member\n" +"* @member/me : filter for one or more member\n"
+"* #channel : filter for one or more channel\n" +"* #channel/here : filter for one or more channel\n"
+"* <n> : top <n> emojis, default is 20\n" +"* <n> : top <n> emojis, default is 20\n"
+"* all : list all common emojis in addition to this guild's\n" +"* all : list all common emojis in addition to this guild's\n"
+"* members : show top member for each emote\n" +"* members : show top member for each emote\n"
+2 -2
View File
@@ -16,8 +16,8 @@ class FrequencyScanner(Scanner):
return "```\n" return "```\n"
+"%freq : Show frequency-related statistics\n" +"%freq : Show frequency-related statistics\n"
+"arguments:\n" +"arguments:\n"
+"* @member : filter for one or more member\n" +"* @member/me : filter for one or more member\n"
+"* #channel : filter for one or more channel\n" +"* #channel/here : filter for one or more channel\n"
+"Example: %freq #mychannel1 @user\n" +"Example: %freq #mychannel1 @user\n"
+"```" +"```"
+3 -3
View File
@@ -17,8 +17,8 @@ class FullScanner(Scanner):
return "```\n" return "```\n"
+"%full : Show full statistics\n" +"%full : Show full statistics\n"
+"arguments:\n" +"arguments:\n"
+"* @member : filter for one or more member\n" +"* @member/me : filter for one or more member\n"
+"* #channel : filter for one or more channel\n" +"* #channel/here : filter for one or more channel\n"
+"Example: %full #mychannel1 @user\n" +"Example: %full #mychannel1 @user\n"
+"```" +"```"
@@ -61,6 +61,6 @@ class FullScanner(Scanner):
res += ["__Other__:"] res += ["__Other__:"]
res += self.other.to_string( res += self.other.to_string(
show_top_channel=len(self.channels) > 1, show_top_channel=len(self.channels) > 1,
show_mentioned=(len(self.members) != 1), show_mentioned=(len(self.members) > 0),
) )
return res return res
+2 -2
View File
@@ -16,8 +16,8 @@ class OtherScanner(Scanner):
return "```\n" return "```\n"
+"%other : Show other statistics\n" +"%other : Show other statistics\n"
+"arguments:\n" +"arguments:\n"
+"* @member : filter for one or more member\n" +"* @member/me : filter for one or more member\n"
+"* #channel : filter for one or more channel\n" +"* #channel/here : filter for one or more channel\n"
+"Example: %other #mychannel1 @user\n" +"Example: %other #mychannel1 @user\n"
+"```" +"```"
+11 -1
View File
@@ -44,7 +44,7 @@ class Scanner(ABC):
str_mentions = [member.mention for member in message.mentions] str_mentions = [member.mention for member in message.mentions]
for arg in args[1:]: for arg in args[1:]:
if ( if (
arg not in self.valid_args arg not in self.valid_args + ["me", "here"]
and (not arg.isdigit() or not self.has_digit_args) and (not arg.isdigit() or not self.has_digit_args)
and arg not in str_channel_mentions and arg not in str_channel_mentions
and arg not in str_mentions and arg not in str_mentions
@@ -56,6 +56,11 @@ class Scanner(ABC):
# Get selected channels or all of them if no channel arguments # Get selected channels or all of them if no channel arguments
self.channels = no_duplicate(message.channel_mentions) self.channels = no_duplicate(message.channel_mentions)
# transform the "here" arg
if "here" in args:
self.channels += [message.channel]
self.full = len(self.channels) == 0 self.full = len(self.channels) == 0
if self.full: if self.full:
self.channels = guild.text_channels self.channels = guild.text_channels
@@ -64,6 +69,11 @@ class Scanner(ABC):
self.members = no_duplicate(message.mentions) self.members = no_duplicate(message.mentions)
self.raw_members = no_duplicate(message.raw_mentions) self.raw_members = no_duplicate(message.raw_mentions)
# transform the "me" arg
if "me" in args:
self.members += [message.author]
self.raw_members += [message.author.id]
if not await self.init(message, *args): if not await self.init(message, *args):
return return