|
|
@@ -0,0 +1,63 @@ |
|
|
|
# -*- coding: utf-8 -*- |
|
|
|
|
|
|
|
import time |
|
|
|
|
|
|
|
from classes import BaseCommand |
|
|
|
import wiki |
|
|
|
|
|
|
|
class Command(BaseCommand): |
|
|
|
"""Return when a user registered.""" |
|
|
|
name = "registration" |
|
|
|
|
|
|
|
def check(self, data): |
|
|
|
commands = ["registration", "age"] |
|
|
|
if data.is_command and data.command in commands: |
|
|
|
return True |
|
|
|
return False |
|
|
|
|
|
|
|
def process(self, data): |
|
|
|
if not data.args: |
|
|
|
name = data.nick |
|
|
|
else: |
|
|
|
name = ' '.join(data.args) |
|
|
|
|
|
|
|
site = wiki.get_site() |
|
|
|
site._maxlag = None |
|
|
|
user = site.get_user(name) |
|
|
|
|
|
|
|
try: |
|
|
|
reg = user.registration() |
|
|
|
except wiki.UserNotFoundError: |
|
|
|
msg = "the user \x0302{0}\x0301 does not exist." |
|
|
|
self.connection.reply(data, msg.format(name)) |
|
|
|
return |
|
|
|
|
|
|
|
date = time.strftime("%b %m, %Y at %I:%M:%S %p", reg) |
|
|
|
age = self.get_diff(time.mktime(reg), time.mktime(time.gmtime())) |
|
|
|
|
|
|
|
g = user.gender() |
|
|
|
if g == "male": |
|
|
|
gender = "He's" |
|
|
|
elif g == "female": |
|
|
|
gender = "She's" |
|
|
|
else: |
|
|
|
gende = "They're" |
|
|
|
|
|
|
|
msg = "\x0302{0}\x0301 registered on {1}. {2} {3} old." |
|
|
|
self.connection.reply(data, msg.format(name, date, gender, age)) |
|
|
|
|
|
|
|
def get_diff(self, t1, t2): |
|
|
|
parts = {"years": 31536000, "days": 86400, "hours": 3600, |
|
|
|
"minutes": 60, "seconds": 1} |
|
|
|
msg = [] |
|
|
|
|
|
|
|
order = sorted(parts.items(), key=lambda x: x[1], reverse=True) |
|
|
|
for key, value in order: |
|
|
|
num = 0 |
|
|
|
while t2 - t1 > value: |
|
|
|
t1 += value |
|
|
|
num += 1 |
|
|
|
if num or (not num and msg): |
|
|
|
msg.append(" ".join((str(num), key))) |
|
|
|
|
|
|
|
return ", ".join(msg) |