3 Commits

Author SHA1 Message Date
Tulir Asokan
7786f03b03 Bump version to 1.1.0 2019-03-06 15:43:24 +02:00
Tulir Asokan
c1b15a82a1 Fix pluralization in ping 2019-03-06 15:43:22 +02:00
Tulir Asokan
25b9340266 Round to seconds when time is over a minute in !ping 2019-03-06 14:53:50 +02:00
2 changed files with 15 additions and 6 deletions

19
echo.py
View File

@@ -1,3 +1,4 @@
from typing import Optional
from time import time
from maubot import Plugin, MessageEvent
@@ -6,20 +7,28 @@ from maubot.handlers import command
class EchoBot(Plugin):
@staticmethod
def time_since(ms: int) -> str:
def plural(num: int, unit: str, decimals: Optional[int] = None) -> str:
num = round(num, decimals)
if num == 1:
return f"{num} {unit}"
else:
return f"{num} {unit}s"
@classmethod
def time_since(cls, ms: int) -> str:
diff = int(time() * 1000) - ms
if abs(diff) < 10 * 1_000:
return f"{diff} ms"
elif abs(diff) < 60 * 1_000:
return f"{round(diff / 1_000, 1)} seconds"
return cls.plural(diff / 1_000, 'second', decimals=1)
minutes, seconds = divmod(diff / 1_000, 60)
if abs(minutes) < 60:
return f"{minutes} minutes and {seconds} seconds"
return f"{cls.plural(minutes, 'minute')} and {cls.plural(seconds, 'second')}"
hours, minutes = divmod(minutes, 60)
if abs(hours) < 24:
return f"{hours} hours, {minutes} minutes and {seconds} seconds"
return f"{cls.plural(hours, 'hour')}, {cls.plural(minutes, 'minute')} and {cls.plural(seconds, 'second')}"
days, hours = divmod(hours, 24)
return f"{days} days, {hours} hours, {minutes} minutes and {seconds} seconds"
return f"{cls.plural(days, 'day')}, {cls.plural(hours, 'hour')}, {cls.plural(minutes, 'minute')} and {cls.plural(seconds, 'second')}"
@command.new("ping", help="Ping")
async def ping_handler(self, evt: MessageEvent) -> None:

View File

@@ -1,6 +1,6 @@
maubot: 0.1.0
id: xyz.maubot.echo
version: 1.0.0
version: 1.1.0
license: MIT
modules:
- echo