Esempio n. 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"
]
Esempio n. 2
0
File: mpd.py Progetto: code2u/jsb
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):
Esempio n. 3
0
File: udp.py Progetto: code2u/jsb
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', ])
Esempio n. 4
0
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):
Esempio n. 5
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", "CONVORE", "TORNADO"]

## logging part
Esempio n. 6
0
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
Esempio n. 7
0
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')
Esempio n. 8
0
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
Esempio n. 9
0
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 = {}
Esempio n. 10
0
File: ops.py Progetto: 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)
Esempio n. 11
0
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):
Esempio n. 12
0
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')
Esempio n. 13
0
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 = {}
Esempio n. 14
0
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
Esempio n. 15
0
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]
Esempio n. 16
0
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':
Esempio n. 17
0
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
Esempio n. 18
0
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(' '):
Esempio n. 19
0
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):
Esempio n. 20
0
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
Esempio n. 21
0

## 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)
Esempio n. 22
0
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. """
Esempio n. 23
0
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
Esempio n. 24
0
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
Esempio n. 25
0
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)
Esempio n. 26
0
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))

Esempio n. 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
Esempio n. 28
0
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
Esempio n. 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

Esempio n. 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():
Esempio n. 31
0
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):
Esempio n. 32
0
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 []
Esempio n. 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

Esempio n. 34
0
## 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:
Esempio n. 35
0
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 = ''
Esempio n. 36
0
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)
Esempio n. 37
0
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 = {}
Esempio n. 38
0
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)
    }
Esempio n. 39
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
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 []
Esempio n. 40
0
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