X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~matthewv/git?a=blobdiff_plain;ds=sidebyside;f=commands.py;h=e7a0de3da12d7c37dd392471e760d16eeb498c6f;hb=5ec921a98112b8971747d0c84bdb4a35bdf0688d;hp=08faf54c7b0c386bee1699cef811dffef264f5c4;hpb=56f09a02484a55ec3b2da563cf85de582d343df4;p=irc.git diff --git a/commands.py b/commands.py index 08faf54..e7a0de3 100644 --- a/commands.py +++ b/commands.py @@ -187,24 +187,6 @@ def reloadq(bot, cmd, nick, conn, public): bot.automsg(public,nick, "Configuration can only be reloaded by my owner, by /msg.") -# lose the game and/or install a new trigger word -def gameq(bot, cmd, nick, conn, public, game): - #only install a new trigger if it's not too short. - if len(' '.join(cmd.split()[1:]))>2: - game.trigger=' '.join(cmd.split()[1:]) - if (time.time()> game.grace): - if not public: - if irc_lower(nick) == irc_lower(bot.owner): - conn.action(bot.channel,"loses the game!") - else: - conn.privmsg(bot.channel,nick+" just lost the game!") - else: - if not public: - conn.notice(nick, "It's a grace period!") - game.grace=time.time()+60*20 #20 minutes' grace - game.losetime=time.time()+random.randrange(game.minlose,game.maxlose) - conn.notice(bot.owner, str(game.losetime-time.time())+" "+game.trigger) - # quit irc def quitq(bot, cmd, nick, conn, public): if irc_lower(nick) == irc_lower(bot.owner): @@ -326,7 +308,10 @@ class UrlLog: return urlcomplaints[z] #(?:) is a regexp that doesn't group -urlre = re.compile("((?:(?:http)|(?:nsfw))s?://[^ ]+)( |$)") +urlre = re.compile(r"((?:(?:http)|(?:nsfw))s?://[^ ]+)( |$)") +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?://[^ ]+)( |$)") urlcomplaints = ["a contemporary","an interesting","a fascinating","an overused","a vastly overused"] ### Deal with /msg bot url or ~url in channel @@ -371,7 +356,8 @@ def dourl(bot,conn,nick,command,urldb): T=urldb[urlstring] message="observes %s URL, first mentioned %s by %s" % \ (T.urltype(),T.firstmen(),T.nick) - conn.action(bot.channel, message) + if shibboleth.search(command)==None: + conn.action(bot.channel, message) T.lastseen=time.time() T.count+=1 else: @@ -395,6 +381,17 @@ def canonical_url(urlstring): urlstring.replace(middle,"/hi/") return urlstring +# automatically make nsfw urls for you and pass them on to url +def nsfwq(bot,cmd,nick,conn,public,urldb): + if (not hturlre.search(cmd)): + bot.automsg(False,nick,"Please use 'nsfw' only with http or https URLs") + return + newcmd=hturlre.sub(nsfwify,cmd) + urlq(bot,newcmd,nick,conn,public,urldb) + +def nsfwify(match): + a,b,c=match.groups() + return 'nsfw'+b+c #get tweet text def twitterq(bot,cmd,nick,conn,public,twitapi):