import time import os import logging import thread from os import path from datetime import datetime ## locks outlock = thread.allocate_lock() outlocked = lockdec(outlock) ## defines cfg = PersistConfig() cfg.define('channels', []) cfg.define('format', 'log') cfg.define('basepath', getdatadir()) cfg.define('nologprefix', '[nolog]') cfg.define('nologmsg', '-= THIS MESSAGE NOT LOGGED =-') cfg.define('backend', 'log') logfiles = {} backends = {} stopped = False db = None eventstolog = [ "OUTPUT", "PRIVMSG", "CONSOLE", "PART", "JOIN", "QUIT", "PRESENCE", "MESSAGE", "NOTICE", "MODE", "TOPIC", "KICK" ]
from jsb.lib.datadir import getdatadir from jsb.lib.examples import examples from jsb.lib.fleet import fleet from jsb.utils.pdod import Pdod from jsb.lib.persistconfig import PersistConfig from jsb.lib.threads import start_new_thread ## basic imports import os import socket import time ## defines cfg = PersistConfig() cfg.define('server-host', '127.0.0.1') cfg.define('server-port', 6600) cfg.define('server-pass', '') cfg.define('socket-timeout', 15) cfg.define('watcher-interval', 10) cfg.define('watcher-enabled', 0) cfg.define('song-status', 'now playing: %(artist)s - %(title)s on "%(album)s" (duration: %(time)s)') ## classes class MPDError(Exception): """ exception to raise. """ pass class MPDDict(dict):
from jsb.lib.persistconfig import PersistConfig from jsb.lib.callbacks import first_callbacks ## basic imports import socket import re import time import Queue import logging # defines udplistener = None cfg = PersistConfig() cfg.define('udp', 0) # set to 0 to disnable cfg.define('udpparty', 0) cfg.define('udpipv6', 0) cfg.define('udpmasks', ['192.168*', ]) cfg.define('udphost', "localhost") cfg.define('udpport', 5500) cfg.define('udpallow', ["127.0.0.1", ]) cfg.define('udpallowednicks', ["#dunkbots", "#jsb", "dunk_"]) cfg.define('udppassword', "mekker", exposed=False) cfg.define('udpseed', "blablablablablaz", exposed=False) # needs to be 16 chars wide cfg.define('udpstrip', 1) # strip all chars < char(32) cfg.define('udpsleep', 0) # sleep in sendloop .. can be used to delay pack cfg.define('udpdblog', 0) cfg.define('udpbots', [cfg['udpbot'] or 'default-irc', ])
from jsb.lib.commands import cmnds from jsb.lib.datadir import datadir from jsb.utils.pdod import Pdod from jsb.lib.persistconfig import PersistConfig from jsb.lib.examples import examples ## basic imports import os import time import re import logging ## defines cfg = PersistConfig() cfg.define('cmd_req', 0) cfg.define('channels', []) sed_expression = r'^s([/|#.:;])(.*?)\1(.*?)\1?([gi]*)$' sedre = re.compile(sed_expression) ## LastLine class class LastLine(Pdod): def __init__(self): self.datadir = os.path.join(datadir, 'plugs', 'jsb.plugs.common.sed') Pdod.__init__(self, os.path.join(self.datadir, 'sed.data')) if not self.data: self.data = {} def handle_sed(self, bot, ievent):
import time import os import logging import thread from os import path from datetime import datetime ## locks outlock = thread.allocate_lock() outlocked = lockdec(outlock) ## defines cfg = PersistConfig() cfg.define('channels', []) cfg.define('format', 'log') cfg.define('basepath', getdatadir()) cfg.define('nologprefix', '[nolog]') cfg.define('nologmsg', '-= THIS MESSAGE NOT LOGGED =-') cfg.define('backend', 'log') logfiles = {} backends = {} stopped = False db = None eventstolog = ["OUTPUT", "PRIVMSG", "CONSOLE", "PART", "JOIN", "QUIT", "PRESENCE", "MESSAGE", "NOTICE", "MODE", "TOPIC", "KICK", "CONVORE", "TORNADO"] ## logging part
from jsb.utils.url import striphtml, useragent from jsb.lib.examples import examples from jsb.utils.exception import handle_exception from jsb.lib.persistconfig import PersistConfig ## google imports try: import waveapi from google.appengine.api.memcache import get, set except ImportError: from jsb.lib.cache import get, set ## defines plugcfg = PersistConfig() plugcfg.define("url", 'http://tinyurl.com/create.php') ## simpljejson from jsb.imports import getjson json = getjson() ## basic imports import urllib import urllib2 import urlparse import re import logging
from jsb.utils.exception import handle_exception from jsb.lib.commands import cmnds from jsb.lib.examples import examples from jsb.utils.pdod import Pdod from jsb.lib.datadir import getdatadir from jsb.lib.persistconfig import PersistConfig from jsb.lib.threads import start_new_thread from jsb.lib.fleet import fleet from jsb.lib.persist import PlugPersist ## basic imports import re, random import os, time cfg = PersistConfig() cfg.define('meeting-timeout', 72000) userpath = '/home/smile/users' usermap = eval(open('%s/usermap' % cfg.get('datadir')).read()) class MeetItem(PlugPersist): def __init__(self, name, default={}): PlugPersist.__init__(self, name) self.data.name = name self.data.meetings = self.data.meetings or {} self.data.meetingtimestamps = self.data.meetingtimestamps or {} self.data.meetingsubs = self.data.meetingsubs or [] self.data.opensubs = self.data.opensubs or [] meetingitem = MeetItem('meeting')
from jsb.lib.persistconfig import PersistConfig from jsb.lib.users import getusers from jsb.utils.exception import handle_exception from jsb.imports import getfeedparser, getjson from jsb.utils.lazydict import LazyDict import copy import os import re import urllib, urllib2 import xml.dom.minidom feedparser = getfeedparser() json = getjson() cfg = PersistConfig() cfg.define('sep', '..') class BugTrackerNotFound(Exception): pass class BugTrackerNotImplemented(Exception): pass class BugTrackerNotSupported(Exception): pass class BugTracker: bugurls = [] # regexp patterns that could match a bugtracker url
from jsb.lib.commands import cmnds from jsb.lib.examples import examples from jsb.lib.callbacks import callbacks from jsb.lib.persistconfig import PersistConfig from jsb.utils.generic import fromenc, toenc from jsb.lib.errors import BotNotEnabled ## basic imports import logging import time import socket ## defines cfg = PersistConfig() cfg.define("botnames", ["default-sxmpp", "default-irc"]) cfg.define("host", "localhost") cfg.define("port", "54321") cfg.define("aliases", {}) cfg.define("enable", False) ## SocketServer imports import SocketServer from SocketServer import ThreadingMixIn, StreamRequestHandler ## defines shared_data = {}
from jsb.utils.generic import getwho from jsb.lib.commands import cmnds from jsb.lib.examples import examples from jsb.lib.callbacks import callbacks from jsb.lib.users import users from jsb.lib.persistconfig import PersistConfig ## basic imports import time import logging ## defines cfg = PersistConfig() cfg.define('oponsplit', 0) ## onjoincb callback def opjoincb(bot, ievent): """ see if we should op a user on join """ # don't try to op the bot if ievent.nick == bot.nick: return chan = ievent.channel.lower() if chan in bot.state['no-op']: return time.sleep(1) if cfg.get('oponsplit') or ievent.nick.lower() not in bot.splitted: if users.status(ievent.userhost, ievent.channel.upper()): if chan not in bot.state['opchan']: return bot.doop(chan, ievent.nick)
from jsb.lib.threads import start_new_thread from jsb.lib.fleet import fleet from jsb.lib.persist import PlugPersist from jsb.lib.threadloop import TimedLoop from jsb.lib.persist import PlugPersist ## basic imports import os, time, datetime import logging import uuid import jsonrpclib cfg = PersistConfig() # CONFIG SECTION ####################################################################### logindelta = 2342 cfg.define('watcher-interval', 5) cfg.define('watcher-enabled', 0) cfg.define('channel', "#c-base") channel = "#c-base" class Announce2342Error(Exception): pass class Announce2342Watcher(TimedLoop):
from jsb.lib.fleet import fleet from jsb.lib.persist import PlugPersist from jsb.lib.threadloop import TimedLoop from jsb.lib.persist import PlugPersist ## basic imports import re, random import os, time, datetime import logging import uuid #import jsonrpclib from jsonrpc.proxy import ServiceProxy cfg = PersistConfig() # CONFIG SECTION ####################################################################### usermap = eval(open('%s/usermap' % cfg.get('datadir')).read()) # load i18n for messages ;) messagefile = '%s/userlist_messages' % cfg.get('datadir') messages = {} if os.path.exists(messagefile): try: messages = eval(open(messagefile).read()) except: logging.error('error in userlist_messages')
from jsb.lib.commands import cmnds from jsb.lib.datadir import datadir from jsb.utils.pdod import Pdod from jsb.lib.persistconfig import PersistConfig from jsb.lib.examples import examples ## basic imports import os import time import re import logging ## defines cfg = PersistConfig() cfg.define('cmd_req', 0) cfg.define('channels', []) sed_expression = r'^s([/|#.:;])(.*?)\1(.*?)\1?([gi]*)$' sedre = re.compile(sed_expression) ## LastLine class class LastLine(Pdod): def __init__(self): self.datadir = os.path.join(datadir, 'plugs', 'jsb.plugs.common.sed') Pdod.__init__(self, os.path.join(self.datadir, 'sed.data')) if not self.data: self.data = {}
from jsb.lib.callbacks import callbacks from jsb.lib.commands import cmnds from jsb.lib.datadir import getdatadir from jsb.utils.pdod import Pdod from jsb.lib.persistconfig import PersistConfig from jsb.lib.examples import examples ## basic imports import os import time ## defines cfg = PersistConfig() cfg.define('tz', '+0100') ## classes class Seen(Pdod): def __init__(self): self.datadir = getdatadir( ) + os.sep + 'plugs' + os.sep + 'jsb.plugs.common.seen' Pdod.__init__(self, os.path.join(self.datadir, 'seen.data')) def handle_seen(self, bot, ievent): if not ievent.args: ievent.missing('<nick>') return
from jsb.lib.persist import PlugPersist ## basic imports import re import random import os import urllib import sys import jsonrpclib import datetime ## defines cfg = PersistConfig() cfg.define('rpcurl', 'http://shout2:1775') usermap = eval(open('%s/usermap' % cfg.get('datadir')).read()) c_outlog = '%s/botlogs/c_out.log' % cfg.get('datadir') jsonrpclib.config.version = 1.0 server = jsonrpclib.Server(cfg.get('rpcurl')) def getuser(ievent): if ievent.channel in usermap: return usermap[ievent.channel] elif ievent.fromm and ievent.fromm in usermap: return usermap[ievent.fromm] elif ievent.nick and ievent.nick in usermap: return usermap[ievent.nick]
from jsb.lib.persistconfig import PersistConfig from jsb.lib.plugins import plugs as plugins ## basic imports import urllib import urllib2 import urlparse import copy import re import socket ## defines cfg = PlugPersist('snarf.cfg') pcfg = PersistConfig() pcfg.define('allow', ['text/plain', 'text/html', 'application/xml']) re_html_title = re.compile(u'<title>(.*?)</title>', re.I | re.M | re.S) re_url_match = re.compile(u'((?:http|https)://\S+)') re_html_valid = { 'result': re.compile('(Failed validation, \d+ errors?|Passed validation)', re.I | re.M), 'modified': re.compile('<th>Modified:</th><td colspan="2">([^<]+)</td>', re.I | re.M), 'server': re.compile('<th>Server:</th><td colspan="2">([^<]+)</td>', re.I | re.M), 'size':
from jsb.lib.eventbase import EventBase from jsb.utils.exception import handle_exception from jsb.lib.examples import examples ## basic imports import socket import re import logging ## defines enable = False try: cfg = PersistConfig() cfg.define('enable', 0) cfg.define('host' , socket.gethostbyname(socket.getfqdn())) cfg.define('name' , socket.getfqdn()) cfg.define('port' , 11111) cfg.define('disable', []) hp = "%s:%s" % (cfg.get('host'), cfg.get('port')) url = "http://%s" % hp if cfg.enable: enable = True except AttributeError: enable = False # we are on GAE ## server part server = None ## functions
from jsb.lib.examples import examples from jsb.plugs.common.tinyurl import get_tinyurl from jsb.lib.persistconfig import PersistConfig ## basic import import re import urlparse import xmlrpclib import socket import logging ## defines cfg = PlugPersist('urlinfo', {}) plugcfg = PersistConfig() plugcfg.define("showpictures", 1) ## sanitize function def sanitize(text): """ Remove non-urls word by word. """ text = text.strip() text = re.sub('\s\s+', ' ', text) tmp = '' for i in text.split(' '): if len(i) >= 5: if i.find('www.') != -1 or i.find('http') != -1: tmp += i + ' ' tmp = tmp.strip() tmp2 = '' for i in tmp.split(' '):
import os import string import random import httplib import datetime import re #import jsonrpclib from jsonrpc.proxy import ServiceProxy ## defines channel = "#c-base" events = [] cfg = PersistConfig() cfg.define('watcher-interval', 5) cfg.define('watcher-enabled', 0) cfg.define('channel', "#c-base") cfg.define('c-beam-url', 'http://127.0.0.1:4254/rpc/') ## #jsonrpclib.config.version = 1.0 #server = jsonrpclib.Server(cfg.get('c-beam-url')) server = ServiceProxy(cfg.get('c-beam-url')) class EventError(Exception): pass class EventWatcher(TimedLoop):
from jsb.lib.plugins import plugs as plugins from jsb.lib.threads import start_new_thread from jsb.utils.limlist import Limlist from jsb.lib.persist import PersistCollection, Persist from jsb.utils.exception import handle_exception from os.path import join as _j import time import re import random import types import logging import os from jsb.lib.persistconfig import PersistConfig cfg = PersistConfig() cfg.define('enable', []) cfg.define('command', 0) cfg.define('onjoin', []) cfg.define("target", "jsonbot") def enabled(botname, channel): if jsonstring([botname, channel]) in cfg['enable']: return True # Markers (is Marker the correct name for this?) class Marker: pass
## basic imports import logging import re import random from jsb.lib.persiststate import PlugState ## defines RE_SEIN = re.compile(r'\b(bin|bist|gewesen|ist|sei|seid|seien|seiend|seiest|seiet|sein|sein sie|sein wir|seist|sind|war|waren|warst|wart|werde sein|werden sein|werdest sein|werdet sein|wird sein|wirst sein|wäre|wären|wärest|wäret|wärst|wärt|würde sein|würden sein|würdet sein)\b', re.IGNORECASE) initdone = False cfg = PersistConfig() usermap = eval(open('%s/usermap' % cfg.get('datadir')).read()) ## Cprime class class Cprime(LazyDict): def __init__(self, rating=0): self.rating = rating pass ## CprimeItem class class CprimeItem(PlugPersist): def __init__(self, name, default={}): PlugPersist.__init__(self, name)
from jsb.lib.examples import examples from jsb.lib.fleet import fleet from jsb.utils.pdod import Pdod from jsb.lib.persistconfig import PersistConfig from jsb.lib.threads import start_new_thread ## basic imports import os import socket import time import urllib ## defines cfg = PersistConfig() cfg.define('server-host', '127.0.0.1') cfg.define('server-port', 6600) cfg.define('server-pass', '') cfg.define('socket-timeout', 15) cfg.define('watcher-interval', 10) cfg.define('watcher-enabled', 0) cfg.define('song-status', 'now playing: %(artist)s - %(title)s on "%(album)s" (duration: %(time)s)') cfg.define('whatsnext-song-status', 'next playing: %(artist)s - %(title)s on "%(album)s" (duration: %(time)s)') cfg.define('whatsnext-file-status', 'next playing: %(file)s (duration: %(time)s)') cfg.define('filelink', 'now playing: http://your.url.here/%s') ## classes class MPDError(Exception): """ exception to raise. """
from jsb.lib.eventbase import EventBase from jsb.utils.exception import handle_exception from jsb.lib.examples import examples ## basic imports import socket import re import logging ## defines enable = False try: cfg = PersistConfig() cfg.define('enable', 0) cfg.define('host' , socket.gethostbyname(socket.getfqdn())) cfg.define('name' , socket.getfqdn()) cfg.define('port' , 11111) cfg.define('disable', []) hp = "%s:%s" % (cfg.get('host'), cfg.get('port')) url = "http://%s" % hp if cfg.enable: enable = True except AttributeError: # we are on the GAE enable = False ## server part
from jsb.lib.plugins import plugs as plugins from jsb.lib.threads import start_new_thread from jsb.utils.limlist import Limlist from jsb.lib.persist import PersistCollection, Persist from jsb.utils.exception import handle_exception from os.path import join as _j import time import re import random import types import logging import os from jsb.lib.persistconfig import PersistConfig cfg = PersistConfig() cfg.define('enable', []) cfg.define('command', 0) cfg.define('onjoin', []) cfg.define("target", "jsonbot") def enabled(botname, channel): if jsonstring([botname, channel]) in cfg['enable']: return True # Markers (is Marker the correct name for this?) class Marker: pass class BeginMarker(Marker): pass class EndMarker(Marker): pass class NickMarker(Marker): pass
from jsb.utils.generic import getwho from jsb.lib.commands import cmnds from jsb.lib.examples import examples from jsb.lib.callbacks import callbacks from jsb.lib.users import getusers from jsb.lib.persistconfig import PersistConfig ## basic imports import time import logging ## defines cfg = PersistConfig() cfg.define('oponsplit', 0) ## onjoincb callback def opjoincb(bot, ievent): """ see if we should op a user on join """ # don't try to op the bot if ievent.nick == bot.nick: return #if bot.state.has_key('no-op') and chan in bot.state['no-op']: return import time time.sleep(1) if (ievent.user and 'OPER' in ievent.user.data.perms) or ( ievent.chan and ievent.userhost in ievent.chan.data.ops): bot.doop(ievent.channel.lower(), ievent.nick)
import logging import pickle ## check for pycrypto dependancy try: import Crypto.Cipher.Blowfish import Crypto.Cipher.AES except ImportError: raise RequireError( "PyCrypto is required for FiSH. Please install this library if you want to use this plug" ) ## defines cfg = PersistConfig() cfg.define("enable", 0) users = getusers() ## KeyStore class class KeyStore(Persist): def __init__(self, keyname): Persist.__init__( self, getdatadir() + os.sep + 'keys' + os.sep + 'fish' + os.sep + stripname(keyname))
__author__ = "Wijnand 'tehmaze' Modderman - http://tehmaze.com" __license__ = 'BSD' ## jsb imports from jsb.lib.commands import cmnds from jsb.utils.url import striphtml, useragent from jsb.lib.examples import examples from jsb.utils.exception import handle_exception from jsb.lib.persistconfig import PersistConfig from jsb.lib.cache import get, set ## plug config plugcfg = PersistConfig() plugcfg.define("url", 'http://tinyurl.com/create.php') ## simpljejson from jsb.imports import getjson json = getjson() ## basic imports import urllib import urllib2 import urlparse import re import logging
from jsb.lib.persistconfig import PersistConfig from jsb.lib.callbacks import first_callbacks ## basic imports import socket import re import time import Queue import logging # defines udplistener = None cfg = PersistConfig() cfg.define('udp', 0) # set to 0 to disnable cfg.define('udpparty', 0) cfg.define('udpipv6', 0) cfg.define('udpmasks', [ '192.168*', ]) cfg.define('udphost', "localhost") cfg.define('udpport', 5500) cfg.define('udpallow', [ "127.0.0.1", ]) cfg.define('udpallowednicks', ["#dunkbots", "#jsb", "dunk_"]) cfg.define('udppassword', "mekker", exposed=False) cfg.define('udpseed', "blablablablablaz", exposed=False) # needs to be 16 chars wide
# """ music player daemon control. """ __version__ = '2007111601' import os, socket, time from jsb.lib.commands import cmnds from jsb.lib.datadir import getdatadir from jsb.lib.examples import examples from jsb.lib.fleet import fleet from jsb.utils.pdod import Pdod from jsb.lib.persistconfig import PersistConfig from jsb.lib.threads import start_new_thread cfg = PersistConfig() cfg.define('server-host', '127.0.0.1') cfg.define('server-port', 6600) cfg.define('server-pass', '') cfg.define('socket-timeout', 15) cfg.define('watcher-interval', 10) cfg.define('watcher-enabled', 0) cfg.define( 'song-status', 'now playing: %(artist)s - %(title)s on "%(album)s" (duration: %(time)s)') class MPDError(Exception): pass
json = getjson() ## basic imports import os import logging import uuid import time import StringIO import gzip import urllib ## defines cfg = PersistConfig() cfg.define("enable", 0) cfg.define("sleep", 5) state = PlugState() state.define("ids", {}) state.define("seen", []) state.define("names", {}) state.define("watch", []) teller = 0 dostop = False ## plugin init def init_threaded():
from jsb.lib.callbacks import callbacks from jsb.lib.commands import cmnds from jsb.lib.datadir import getdatadir from jsb.utils.pdod import Pdod from jsb.lib.persistconfig import PersistConfig from jsb.lib.examples import examples ## basic imports import os import time ## defines cfg = PersistConfig() cfg.define('tz', '+0100') ## classes class Seen(Pdod): def __init__(self): self.datadir = getdatadir() + os.sep + 'plugs' + os.sep + 'jsb.plugs.common.seen' Pdod.__init__(self, os.path.join(self.datadir, 'seen.data')) def handle_seen(self, bot, ievent): if not ievent.args: ievent.missing('<nick>') return nick = ievent.args[0].lower() if not self.data.has_key(nick):
from jsb.lib.commands import cmnds from jsb.lib.examples import examples from jsb.lib.persist import PlugPersist, PlugPersistCollection from jsb.utils.statdict import StatDict from jsb.lib.persistconfig import PersistConfig ## basic imports import logging import re ## defines RE_KARMA = re.compile(r'^(?P<item>\([^\)]+\)|\[[^\]]+\]|\w+)(?P<mod>\+\+|--)( |$)') cfg = PersistConfig() cfg.define('verbose', '1') ## KarmaItem class class KarmaItem(PlugPersist): """ Item holding karma data. """ def __init__(self, name, default={}): PlugPersist.__init__(self, name) self.data.name = name self.data.count = self.data.count or 0 self.data.whoup = self.data.whoup or {} self.data.whodown = self.data.whodown or {} self.data.whyup = self.data.whyup or []
json = getjson() ## basic imports import os import logging import uuid import time import StringIO import gzip import urllib ## defines cfg = PersistConfig() cfg.define("enable", 0) cfg.define("sleep", 5) state = PlugState() state.define("ids", {}) state.define("seen", []) state.define("names", {}) state.define("watch", []) teller = 0 dostop = False ## plugin init
## basic imports import re import random import os import urllib import sys import jsonrpclib import datetime from jsonrpc.proxy import ServiceProxy ## defines cfg = PersistConfig() cfg.define('rpcurl', 'http://10.0.1.27:1775') cfg.define('local', False) usermap = eval(open('%s/usermap' % cfg.get('datadir')).read()) ttsdata = eval(open('%s/ttsdata' % cfg.get('datadir')).read()) ttslog = '%s/botlogs/tts.log' % cfg.get('datadir') #jsonrpclib.config.version = 1.0 #server = jsonrpclib.Server(cfg.get('rpcurl')) server = ServiceProxy(cfg.get('rpcurl')) def getuser(ievent): if ievent.channel in usermap: return usermap[ievent.channel] elif ievent.fromm and ievent.fromm in usermap:
from jsb.lib.examples import examples from jsb.plugs.common.tinyurl import get_tinyurl from jsb.lib.persistconfig import PersistConfig ## basic import import re import urlparse import xmlrpclib import socket import logging ## defines cfg = PlugPersist('urlinfo', {}) plugcfg = PersistConfig() plugcfg.define("showpictures", 1) ## sanitize function def sanitize(text): """ Remove non-urls word by word. """ text = text.strip() text = re.sub('\s\s+', ' ', text) tmp = '' for i in text.split(' '): if len(i) >= 5: if i.find('www.') != -1 or i.find('http') != -1: tmp += i + ' ' tmp = tmp.strip() tmp2 = ''
from jsb.lib.examples import examples from jsb.lib.fleet import getfleet from jsb.lib.periodical import minutely, periodical from jsb.imports import getjson json = getjson() ## basic imports import os import logging import uuid ## defines cfg = PersistConfig() cfg.define("enable", 0) state = PlugState() state.define("ids", {}) state.define("seen", {}) teller = 0 ## getplus function def getplus(target): credentials = _import_byfile("credentials", getdatadir() + os.sep + "config" + os.sep + "credentials.py") url = "https://www.googleapis.com/plus/v1/people/%s/activities/public?alt=json&pp=1&key=%s" % (target, credentials.googleclient_apikey) result = geturl2(url) data = json.loads(result)
from jsb.lib.persist import PlugPersist from jsb.lib.fleet import getfleet from jsb.lib.commands import cmnds from jsb.lib.examples import examples from jsb.lib.callbacks import callbacks from jsb.lib.persistconfig import PersistConfig from jsb.utils.generic import fromenc, toenc ## basic imports import logging import time ## defines cfg = PersistConfig() cfg.define("botnames", ["default-sxmpp","default-irc"]) cfg.define("host", "localhost") cfg.define("port", "54321") cfg.define("aliases", {}) cfg.define("enable", False) ## SocketServer imports import SocketServer from SocketServer import ThreadingMixIn, StreamRequestHandler ## defines shared_data = {}
from jsb.lib.persistconfig import PersistConfig from jsb.lib.plugins import plugs as plugins ## basic imports import urllib import urllib2 import urlparse import copy import re import socket ## defines cfg = PlugPersist('snarf.cfg') pcfg = PersistConfig() pcfg.define('allow', ['text/plain', 'text/html', 'application/xml']) re_html_title = re.compile(u'<title>(.*?)</title>', re.I | re.M | re.S) re_url_match = re.compile(u'((?:http|https)://\S+)') re_html_valid = { 'result': re.compile('(Failed validation, \d+ errors?|Passed validation)', re.I | re.M), 'modified': re.compile('<th>Modified:</th><td colspan="2">([^<]+)</td>', re.I | re.M), 'server': re.compile('<th>Server:</th><td colspan="2">([^<]+)</td>', re.I | re.M), 'size': re.compile('<th>Size:</th><td colspan="2">([^<]+)</td>', re.I | re.M), 'content': re.compile('<th>Content-Type:</th><td colspan="2">([^<]+)</td>', re.I | re.M), 'encoding': re.compile('<td>([^<]+)</td><td><select name="charset" id="charset">', re.I | re.M), 'doctype': re.compile('<td>([^<]+)</td><td><select id="doctype" name="doctype">', re.I | re.M) }
from jsb.lib.examples import examples from jsb.lib.persist import PlugPersist, PlugPersistCollection from jsb.utils.statdict import StatDict from jsb.lib.persistconfig import PersistConfig ## basic imports import logging import re from operator import itemgetter ## defines RE_KARMA = re.compile(r'^(?P<item>\([^\)]+\)|\[[^\]]+\]|\w+)(?P<mod>\+\+|--)( |$)') cfg = PersistConfig() cfg.define('verbose', '1') ## KarmaItem class class KarmaItem(PlugPersist): """ Item holding karma data. """ def __init__(self, name, default={}): PlugPersist.__init__(self, name) self.data.name = name self.data.count = self.data.count or 0 self.data.whoup = self.data.whoup or {} self.data.whodown = self.data.whodown or {} self.data.whyup = self.data.whyup or []
from jsb.lib.persistconfig import PersistConfig from jsb.lib.users import getusers from jsb.utils.exception import handle_exception from jsb.imports import getfeedparser, getjson from jsb.utils.lazydict import LazyDict import copy import os import re import urllib, urllib2 import xml.dom.minidom feedparser = getfeedparser() json = getjson() cfg = PersistConfig() cfg.define('sep', '..') class BugTrackerNotFound(Exception): pass class BugTrackerNotImplemented(Exception): pass class BugTrackerNotSupported(Exception): pass