def handle_forgetchan(bot, event): """" arguments: <item> and <matchstring> - set an information item. """ if not event.rest: event.missing("<item> and <match>") return try: (what, match) = event.rest.split(" and ", 2) except ValueError: what = event.rest match = None what = what.lower() items = PlugPersist(event.channel) got = False if not items.data: items.data = LazyDict() if items.data.has_key(what): if match == None: del items.data[what] got = True else: for i in range(len(items.data[what])): if match in items.data[what][i]: del items.data[what][i] got = True break if got: items.save() event.reply("item removed from %s database" % event.channel) else: event.reply("no %s item in channel database" % what)
def handle_learn(bot, event): """" arguments: <item> is <description> - set an information item. """ if not event.rest: event.missing("<item> is <description>") ; return try: (what, description) = event.rest.split(" is ", 1) except ValueError: event.missing("<item> is <description>") ; return what = what.lower() items = PlugPersist(event.channel) if not items.data: items.data = LazyDict() if not items.data.has_key(what): items.data[what] = [] if description not in items.data[what]: items.data[what].append(description) items.save() event.reply("%s item added to %s database" % (what, event.channel))
def handle_lte(bot, ievent): user = getuser(ievent) if not user: return ievent.reply(getmessage('unknown_nick')) item = LteItem(user) args = ievent.rest.upper().split(' ') lteusers = PlugPersist('lteusers') if not lteusers.data: lteusers.data = {} if len(ievent.args) == 3 or len(ievent.args) == 2: if args[1] == '0': dayitem = LteItem(args[0]) if user in dayitem.data.ltes.keys(): del dayitem.data.ltes[user] dayitem.save() return ievent.reply(getmessage('lte_removed') % (user, args[0])) if args[0] not in ('MO', 'DI', 'MI', 'DO', 'FR', 'SA', 'SO'): #, 'MO', 'TU', 'WE', 'TH', 'FR', 'SA', 'SU'): return ievent.reply('LTE syntax: !lte MO 1900') item.data.ltes[args[0]] = args item.save() dayitem = LteItem(args[0]) eta = " ".join(args[1:]) eta = re.sub(r'(\d\d):(\d\d)',r'\1\2', eta) dayitem.data.ltes[user] = eta dayitem.save() lteusers.data[user] = time.time() lteusers.save() ievent.reply(getmessage('lte_set') % (user, eta)) elif len(ievent.args) == 1: if args[0] in ('MO', 'DI', 'MI', 'DO', 'FR', 'SA', 'SO'): dayitem = LteItem(args[0]) if len(dayitem.data.ltes.keys()) > 0: reply = 'LTEs für %s: ' % args[0] for user in dayitem.data.ltes.keys(): reply += '%s [%s] ' % (user, dayitem.data.ltes[user]) ievent.reply(reply) else: ievent.reply(getmessage('err_unknown_day') % args[0]) elif len(ievent.args) == 0: reply = [] for day in weekdays: dayitem = LteItem(day) if len(dayitem.data.ltes.keys()) > 0: #reply += '%s: %s ' % (day, ', '.join(dayitem.data.ltes.keys())) reply.append('%s: %s ' % (day, ', '.join(dayitem.data.ltes.keys()))) ievent.reply(" | ".join(reply)) else: ievent.reply(str(len(ievent.rest.split(' '))))
def handle_forget(bot, event): """" arguments: <item> and <matchstring> - set an information item. """ if not event.rest: event.missing("<item> and <match>") ; return try: (what, match) = event.rest.split(" and ", 2) except ValueError: event.missing("<item> and <match>") ; return what = what.lower() items = PlugPersist(event.channel) if not items.data: items.data = LazyDict() if items.data.has_key(what): for i in range(len(items.data[what])): if match in items.data[what][i]: del items.data[what][i] items.save() break event.reply("item removed from %s database" % event.channel)
def handle_learnchan(bot, event): """" arguments: <item> is <description> - set an information item. """ if not event.rest: event.missing("<item> is <description>") return try: (what, description) = event.rest.split(" is ", 1) except ValueError: event.missing("<item> is <description>") return what = what.lower() items = PlugPersist(event.channel) if not items.data: items.data = LazyDict() if not items.data.has_key(what): items.data[what] = [] if description not in items.data[what]: items.data[what].append(description) items.save() event.reply("%s item added to %s database" % (what, event.channel))
def handle_definechan(bot, event): """" arguments: <item> <description> - set an information item. """ if not event.rest: event.missing("<item> <description>") ; return if event.rest.startswith('"'): result = re.search(r'"(.*?)" (.*)$', event.rest) else: result = re.search(r'(.*?) (.*)$', event.rest) try: what = result.group(0) description = result.group(1) except ValueError: event.missing("<item> <description>") ; return what = what.lower() items = PlugPersist(event.channel) if not items.data: items.data = LazyDict() if not items.data.has_key(what): items.data[what] = [] if description not in items.data[what]: items.data[what] = [description] items.save() event.reply("definition for %s updated" % (what, event.channel))
def handle_forgetchan(bot, event): """" arguments: <item> and <matchstring> - set an information item. """ if not event.rest: event.missing("<item> and <match>") ; return try: (what, match) = event.rest.split(" and ", 2) except ValueError: what = event.rest ; match = None what = what.lower() items = PlugPersist(event.channel) got = False if not items.data: items.data = LazyDict() if items.data.has_key(what): if match == None: del items.data[what] ; got = True else: for i in range(len(items.data[what])): if match in items.data[what][i]: del items.data[what][i] got = True break if got: items.save() ; event.reply("item removed from %s database" % event.channel) else: event.reply("no %s item in channel database" % what)
def handle_forget(bot, event): """" set an information item. """ if not event.rest: event.missing("<item> and <match>") return try: (what, match) = event.rest.split(" and ", 2) except ValueError: event.missing("<item> and <match>") return what = what.lower() items = PlugPersist(event.channel) if not items.data: items.data = LazyDict() if items.data.has_key(what): for i in range(len(items.data[what])): if match in items.data[what][i]: del items.data[what][i] items.save() break event.reply("item removed from %s database" % event.channel)
from jsb.lib.examples import examples from jsb.lib.persist import PlugPersist ## basic imports import time import os import logging ## defines changed = False idle = PlugPersist('idle.data') if not idle.data: idle.data = {} ## save on shutdown def ticksave(bot, event): global idle global changed if changed: idle.save() changed = False callbacks.add("TICK60", ticksave) ## callbacks
from jsb.lib.commands import cmnds from jsb.lib.callbacks import callbacks from jsb.lib.examples import examples from jsb.lib.persist import PlugPersist ## basic imports import time import os import logging ## defines idle = PlugPersist('idle.data') if not idle.data: idle.data = {} ## save on shutdown def shutdown(): global idle idle.save() ## callbacks def preidle(bot, event): """ idle precondition aka check if it is not a command """ if not event.iscmnd(): return True if bot.isgae and event.userhost in bot.cfg.followlist: return True def idlecb(bot, event):