示例#1
0
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"
]
示例#2
0
文件: mpd.py 项目: code2u/jsb
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. """
示例#3
0
文件: udp.py 项目: code2u/jsb
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
示例#4
0
文件: sed.py 项目: NURDspace/jsonbot
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 """
示例#5
0
文件: chatlog.py 项目: code2u/jsb
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
示例#6
0
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
示例#7
0
文件: meet.py 项目: c-base/c-beam-bot
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')
示例#8
0
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)
示例#9
0
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
示例#10
0
文件: ops.py 项目: code2u/jsb
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())
示例#11
0
文件: 2342.py 项目: c-base/c-beam-bot
## 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
示例#12
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')
示例#13
0
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):
示例#14
0
文件: seen.py 项目: melmothx/jsonbot
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()
示例#15
0
## 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:
示例#16
0
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),
示例#17
0
文件: restserver.py 项目: code2u/jsb
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
示例#18
0
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] == '}'):
示例#19
0
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):
示例#20
0
文件: markov.py 项目: Petraea/jsonbot
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

示例#21
0
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)
    }
示例#22
0
文件: mpd.py 项目: NURDspace/jsonbot
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
示例#23
0
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
示例#24
0
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
示例#25
0
文件: ops.py 项目: Petraea/jsonbot
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:
示例#26
0
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
示例#27
0
__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
示例#28
0
文件: udp.py 项目: melmothx/jsonbot
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)
示例#29
0
""" 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):
示例#30
0
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:
示例#31
0
文件: seen.py 项目: melmothx/jsonbot
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]
示例#32
0
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 []
示例#33
0
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():
示例#34
0
文件: tts.py 项目: c-base/c-beam-bot
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]
示例#35
0
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(' '):
示例#36
0
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')
示例#37
0
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
示例#38
0
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 = []
示例#39
0
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 []
示例#40
0
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: