소스 검색

Fix age logic.

tags/v0.2
Ben Kurtovic 9 년 전
부모
커밋
d82d7201e5
1개의 변경된 파일24개의 추가작업 그리고 12개의 파일을 삭제
  1. +24
    -12
      earwigbot/commands/registration.py

+ 24
- 12
earwigbot/commands/registration.py 파일 보기

@@ -20,7 +20,8 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.

import time
from datetime import datetime
from time import mktime

from earwigbot import exceptions
from earwigbot.commands import Command
@@ -46,8 +47,9 @@ class Registration(Command):
self.reply(data, msg.format(name))
return

date = time.strftime("%b %d, %Y at %H:%M:%S UTC", reg)
age = self.get_diff(time.mktime(reg), time.mktime(time.gmtime()))
dt = datetime.fromtimestamp(mktime(reg))
date = dt.strftime("%b %d, %Y at %H:%M:%S UTC")
age = self.get_age(dt)

if user.gender == "male":
gender = "He's"
@@ -59,14 +61,24 @@ class Registration(Command):
msg = "\x0302{0}\x0F registered on {1}. {2} {3} old."
self.reply(data, msg.format(name, date, gender, age))

def get_diff(self, t1, t2):
parts = [("year", 31536000), ("day", 86400), ("hour", 3600),
("minute", 60), ("second", 1)]
def get_age(self, birth):
msg = []
for name, size in parts:
num = int(t2 - t1) / size
t1 += num * size
if num:
chunk = "{0} {1}".format(num, name if num == 1 else name + "s")
msg.append(chunk)
def insert(unit, num):
if not num:
return
msg.append("{0} {1}".format(num, unit if num == 1 else unit + "s"))

now = datetime.utcnow()
bd_passed = (now.month, now.day) < (birth.month, birth.day)
years = now.year - birth.year - bd_passed
delta = now - birth.replace(year=birth.year + years)
insert("year", years)
insert("day", delta.days)

seconds = delta.seconds
units = [("hour", 3600), ("minute", 60), ("second", 1)]
for unit, size in units:
num = seconds / size
seconds -= num * size
insert(unit, num)
return ", ".join(msg) if msg else "0 seconds"

불러오는 중...
취소
저장