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
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)
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
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)