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.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): """ return ? on no existant entry. """
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', ]) ## functions
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): """ Perform substitution """
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 # BHJTW 21-02-2011 revamped to work with standard python logger
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 ## defines
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.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 bugtags = re.compile('(?:bug|ticket)*\s?#(\d+)', re.I)
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 = {} server = None
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) else: bot.splitted.remove(ievent.nick.lower())
## 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): def handle(self): if not cfg.get('watcher-enabled'): raise Announce2342Error('watcher not enabled, use "!%s-cfg watcher-enabled 1" to enable' % os.path.basename(__file__)[:-3]) #logging.warn("fleet: %s - %s" % (str(fleet), str(fleet.list()))) #print "fleet: %s - %s" % (str(fleet), str(fleet.list())) bot = 0
'subarrive_success': ['thank you for your arrival notification subscription'], 'unsubarrive_success': ['you have been unsubscribed from boarding notifications'], 'unsubopen_success': ['you have been unsubscribed from opening notifications'], 'err_timeparser': ['leider connte keine verwertbare ceitangabe aus deiner eingabe extrahiert werden.'], 'err_unknown_day': ['ich cenne den tag %s nicht.'], 'etd_removed': ['dein ETD wurde entfernt %s. [ETD: %s]'], 'etd_set': ['dein ETD wurde erfolgreich gespeichert %s. [ETD: %s]'], 'no_etds': ['niemand hat ein ETD eingetragen %s.'], 'whoami': ['du wirst %s gewesen worden sein.', 'du wirst %s gewesen sein.', 'du ähnelst einem clon von %s.', 'gruCfrequencen %s.', '%s.', '%s fummelt an c-beam.', 'deine dna weist spuren von %s auf.', 'deine moleculare structur gleicht der von %s.', 'ich dence du formst ein %s.', 'deiner mudder ihr spro:Cling, %s'], 'vlogged_in': ['im c-base village: '], 'vlogin_success': ['hallo %s, willkommen im c-base village!'], 'vlogout_success': ['scho:n daC du im c-base village vorbeigeschaut hast %s.'], } cfg.define('watcher-interval', 5) cfg.define('watcher-enabled', 0) cfg.define('eta-timeout', 120) cfg.define('etd-timeout', 180) cfg.define('tocendir', '/home/c-beam/usermap') cfg.define('suppress-subs', 0) cfg.define('use-c-beamd', 0) cfg.define('c-beam-url', 'http://127.0.0.1:4254') cfg.define('set-xmpp-presence', 0) cfg.define('achievement-channel', '#c-base-bots') cfg.define('achievement-bot', 'default-irc')
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):
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()
## 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] elif ievent.ruserhost in usermap:
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),
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.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(' '): if (i[0] == '(' and i[-1] == ')') or (i[0] == '[' and i[-1] == ']') or (i[0] == '<' and i[-1] == '>') or (i[0] == '{' and i[-1] == '}'):
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): def handle(self):
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
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.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. """ pass
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 server = None
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 # Tokens
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) try:
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)) ## make sure we get loaded
__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 ## defines
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)
""" 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 class MPDDict(dict):
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(): try:
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): alts = [x for x in self.data.keys() if nick in x]
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 [] self.data.whydown = self.data.whydown 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 def init_threaded():
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: return usermap[ievent.fromm]
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(' '):
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')
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 = {} server = None
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) res = []
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 [] self.data.whydown = self.data.whydown or []
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: