44 lines
1.2 KiB
Python
44 lines
1.2 KiB
Python
# coding=utf-8
|
|
|
|
from datetime import datetime
|
|
from datetime import timedelta
|
|
import random
|
|
|
|
BANLIST = []
|
|
|
|
class Credits:
|
|
def __init__ (self, name):
|
|
self.name = name
|
|
self.credits = 5
|
|
self.randsec = timedelta(seconds=random.randint(0, 55))
|
|
self.lastmessage = datetime.now() + self.randsec
|
|
self.iask = True
|
|
|
|
def ask(self):
|
|
if self.name in BANLIST:
|
|
return False
|
|
|
|
now = datetime.now() + self.randsec
|
|
if self.lastmessage.minute == now.minute and (self.lastmessage.second == now.second or self.lastmessage.second == now.second - 1):
|
|
print("\033[1;36mAUTOBAN\033[0m %s: too low time between messages" % self.name)
|
|
#BANLIST.append(self.name)
|
|
self.credits -= self.credits / 2 #Une alternative
|
|
return False
|
|
|
|
self.iask = True
|
|
return self.credits > 0 or self.lastmessage.minute != now.minute
|
|
|
|
def speak(self):
|
|
if self.iask:
|
|
self.iask = False
|
|
now = datetime.now() + self.randsec
|
|
if self.lastmessage.minute != now.minute:
|
|
self.credits = min (15, self.credits + 5)
|
|
self.lastmessage = now
|
|
|
|
self.credits -= 1
|
|
return self.credits > -3
|
|
|
|
def to_string(self):
|
|
print ("%s: %d ; reset: %d" % (self.name, self.credits, self.randsec.seconds))
|