mention => counter

This commit is contained in:
klemek
2021-01-14 18:02:06 +01:00
parent f0df0501e5
commit 4505d7acbd
4 changed files with 11 additions and 23 deletions
+1 -1
View File
@@ -2,4 +2,4 @@ from .emote import Emote, get_emote_dict
from .frequency import Frequency
from .composition import Composition
from .presence import Presence
from .mention import Mention
from .counter import Counter
@@ -5,7 +5,7 @@ from datetime import datetime
from utils import plural, from_now, percent
class Mention:
class Counter:
def __init__(self):
self.usages = 0
self.last_used = None
@@ -25,11 +25,7 @@ class Mention:
)
def to_string(
self,
i: int,
name: str,
*,
total_usage: int,
self, i: int, name: str, *, total_usage: int, counted: str = "time"
) -> str:
# place
output = ""
@@ -41,5 +37,5 @@ class Mention:
output += ":third_place:"
else:
output += f"**#{i + 1}**"
output += f" {name} - {plural(self.usages, 'time')} ({percent(self.usages/total_usage)}) (last {from_now(self.last_used)})"
output += f" {name} - {plural(self.usages, counted)} ({percent(self.usages/total_usage)}) (last {from_now(self.last_used)})"
return output
+4 -12
View File
@@ -7,16 +7,8 @@ import discord
from logs import ChannelLogs, MessageLog
from .scanner import Scanner
from data_types import Mention
from utils import (
COMMON_HELP_ARGS,
plural,
precise,
mention,
alt_mention,
role_mention,
channel_mention,
)
from data_types import Counter
from utils import COMMON_HELP_ARGS, plural, precise, mention, alt_mention
class MentionedScanner(Scanner):
@@ -55,7 +47,7 @@ class MentionedScanner(Scanner):
return False
self.all_mentions = "all" in args
# Create mentions dict
self.mentions = defaultdict(Mention)
self.mentions = defaultdict(Counter)
return True
def compute_message(self, channel: ChannelLogs, message: MessageLog):
@@ -86,7 +78,7 @@ class MentionedScanner(Scanner):
@staticmethod
def analyse_message(
message: MessageLog,
mentions: Dict[str, Mention],
mentions: Dict[str, Counter],
raw_members: List[int],
*,
all_mentions: bool,
+3 -3
View File
@@ -7,7 +7,7 @@ import discord
from logs import ChannelLogs, MessageLog
from .scanner import Scanner
from data_types import Mention
from data_types import Counter
from utils import (
COMMON_HELP_ARGS,
plural,
@@ -51,7 +51,7 @@ class MentionsScanner(Scanner):
# check other args
self.all_mentions = "all" in args
# Create mentions dict
self.mentions = defaultdict(Mention)
self.mentions = defaultdict(Counter)
return True
def compute_message(self, channel: ChannelLogs, message: MessageLog):
@@ -82,7 +82,7 @@ class MentionsScanner(Scanner):
@staticmethod
def analyse_message(
message: MessageLog,
mentions: Dict[str, Mention],
mentions: Dict[str, Counter],
raw_members: List[int],
*,
all_mentions: bool,