Ejemplo n.º 1
0
def handle_install(bot, ievent):
    """ install <server> <dir> <plugin> .. install plugin from server """
    try:
        (server, dirr, plug) = ievent.args
    except ValueError:
        if 'install-plug' in ievent.origtxt:
            ievent.missing("<server> <dir> <plug>")
        else:
            ievent.missing("<server> <dir> <plug> (maybe try install-plug ?)")
        return
    if plug.endswith('.py'):
        plug = plug[:-3]
    plug = plug.split(os.sep)[-1]
    url = 'http://%s/%s/%s' % (server, dirr, plug)
    try:
        readme = geturl2(url + '.README')
        if readme:
            readme = readme.replace('\n', ' .. ')
            readme = re.sub('\s+', ' ', readme)
            readme += ' (yes/no)'
            ievent.reply(readme)
            response = waitforuser(bot, ievent.userhost)
            if not response or response.txt != 'yes':
                ievent.reply('not installing %s' % plug)
                return
    except:
        pass
    installer = Installer()
    try:
        installer.install(plug, 'http://%s/%s' % (server, dirr))
    except InstallerException, e:
        ievent.reply('error installing %s: ' % plug, result=[str(x) for x \
in list(e)], dot=True)
        return
Ejemplo n.º 2
0
def handle_response(bot, ievent):
    """ check if we can get a reply of user. """

    ievent.reply("say something so i can see if i can get a \
response from you")
    reply = waitforuser(bot, ievent.userhost)

    if not reply:
        ievent.reply("can't get a response")
    else:
        ievent.reply("you said %s" % reply.txt)
Ejemplo n.º 3
0
def handle_ask_timezone(bot, ievent):
    """ ask for a users timezone. """

    ievent.reply('what is your timezone ? for example -1 or +4')
    response = waitforuser(bot, ievent.userhost)

    if response:
        return response.txt
    else:
        ievent.reply("can't determine timezone .. not setting it")
        return
Ejemplo n.º 4
0
def handle_response(bot, ievent):

    """ check if we can get a reply of user. """

    ievent.reply("say something so i can see if i can get a \
response from you")
    reply = waitforuser(bot, ievent.userhost)

    if not reply:
        ievent.reply("can't get a response")
    else:
        ievent.reply("you said %s" % reply.txt)
Ejemplo n.º 5
0
def handle_ask_timezone(bot, ievent):

    """ ask for a users timezone. """

    ievent.reply('what is your timezone ? for example -1 or +4')
    response = waitforuser(bot, ievent.userhost)

    if response:
        return response.txt
    else:
        ievent.reply("can't determine timezone .. not setting it")
        return
Ejemplo n.º 6
0
def handle_installplug(bot, ievent):
    """ remotely install a plugin """
    if not ievent.args:
        ievent.missing('<plugnames>')
        return
    notinstalled = []
    installed = []
    reloaded = []
    reloadfailed = []
    missing = []
    errors = {}
    reloaderrors = {}
    installer = Installer()
    for plug in ievent.args:
        ok = False
        url = ''
        plug = plug.split(os.sep)[-1]
        for site in installsites:
            try:
                readme = geturl2('%s/%s.README' % (site, plug))
                if readme:
                    readme = readme.replace('\n', ' .. ')
                    readme = re.sub('\s+', ' ', readme)
                    readme += ' (yes/no)'
                    ievent.reply(readme)
                    response = waitforuser(bot, ievent.userhost)
                    if not response or response.txt != 'yes':
                        ievent.reply('not installing %s' % plug)
                        notinstalled.append(plug)
                        break
            except:
                pass
            try:
                url = installer.install(plug, site)
                if url:
                    rlog(10, 'install', 'installed %s' % url)
                    installed.append(plug)
                    break  # stop iterating sites
            except NoGPGException, ex:
                ievent.reply("couldn't run gpg .. please install gnupg if you \
want to install remote plugins")
                return
            except Exception, ex:
                errors[site] = str(ex)