self.nick=nick
self.url=url
self.first=time.time()
+ self.localfirst=time.localtime(self.first)
self.count=1
self.lastseen=time.time()
self.lastasked=time.time()
def recenttime(self):
return max(self.lastseen,self.lastasked)
def firstmen(self):
- return nicetime(time.time()-self.first)
+ n=time.localtime(time.time())
+ s="%02d:%02d" % (self.localfirst.tm_hour,self.localfirst.tm_min)
+ if n.tm_yday != self.localfirst.tm_yday:
+ s+=time.strftime(" on %d %B", n)
+ return s
def urltype(self):
z=min(len(urlinfos)-1, self.count-1)
return urlinfos[z]
hturlre= re.compile(r"(http)(s?://[^ ]+)( |$)")
#matches \bre\:?\s+ before a regexp; (?i)==case insensitive match
shibboleth = re.compile(r"(?i)\bre\:?\s+((?:(?:http)|(?:nsfw))s?://[^ ]+)( |$)")
+#How long (in s) to wait since the most recent mention before commenting
+url_repeat_time = 300
urlinfos = ["a new",
"a fascinating",
"an interesting",
url=canonical_url(urlstring)
if (url in urldb):
T = urldb[url]
- complaint="That's %s URL that was first mentioned %s by %s" % \
- (T.urltype(),T.firstmen(),T.nick)
+ comment="I saw that URL in scrool, first mentioned by %s at %s" % \
+ (T.nick,T.firstmen())
if (public):
- complaint=complaint+". Furthermore it defeats the point of this command to use it other than via /msg."
+ comment=comment+". Furthermore it defeats the point of this command to use it other than via /msg."
T.count+=1
- bot.automsg(False,nick,complaint)
+ bot.automsg(False,nick,comment)
T.lastasked=time.time()
#URL suppressed, so mention in #urls
if urlstring != cmd.split()[1]: #first argument to URL was not the url
if urlstring in urldb:
T=urldb[urlstring]
- message="observes %s URL, first mentioned %s by %s" % \
- (T.urltype(),T.firstmen(),T.nick)
- if shibboleth.search(command)==None:
+ message="saw that URL in scrool, first mentioned by %s at %s" % \
+ (T.nick,T.firstmen())
+ if shibboleth.search(command)==None and \
+ time.time() - T.lastseen > url_repeat_time:
conn.action(bot.channel, message)
T.lastseen=time.time()
T.count+=1