diff --git a/plugins/Config/plugin.py b/plugins/Config/plugin.py index d7fa3e435..f065474d2 100644 --- a/plugins/Config/plugin.py +++ b/plugins/Config/plugin.py @@ -239,7 +239,19 @@ class Config(callbacks.Plugin): s = group.help() if s: if hasattr(group, 'value') and not group._private: - s += _(' (Current value: %s)') % group + channel = msg.args[0] + if irc.isChannel(channel) and \ + channel in group._children: + globvalue = str(group) + chanvalue = str(group.get(channel)) + if chanvalue != globvalue: + s += _(' (Current global value: %s; ' + 'current channel value: %s)') % \ + (globvalue, chanvalue) + else: + s += _(' (Current value: %s)') % group + else: + s += _(' (Current value: %s)') % group irc.reply(s) else: irc.reply(_('That configuration group exists, but seems to ' diff --git a/plugins/PluginDownloader/plugin.py b/plugins/PluginDownloader/plugin.py index 86f6c1465..2eced820d 100644 --- a/plugins/PluginDownloader/plugin.py +++ b/plugins/PluginDownloader/plugin.py @@ -301,6 +301,10 @@ repositories = { 'GLolol', 'SupyPlugins', ), + 'Iota': GithubRepository( + 'IotaSpencer', + 'supyplugins', + ), } class PluginDownloader(callbacks.Plugin): diff --git a/src/httpserver.py b/src/httpserver.py index b07d25e03..688349417 100644 --- a/src/httpserver.py +++ b/src/httpserver.py @@ -361,15 +361,15 @@ class Favicon(SupyHTTPServerCallback): file_path = conf.supybot.servers.http.favicon() found = False if file_path: + response = None try: - icon = open(file_path, 'r') - found = True + icon = open(file_path, 'rb') + response = icon.read() except IOError: pass finally: icon.close() - if found: - response = icon.read() + if response is not None: filename = file_path.rsplit(os.sep, 1)[1] if '.' in filename: ext = filename.rsplit('.', 1)[1] diff --git a/src/log.py b/src/log.py index b5425e4e9..63abafeba 100644 --- a/src/log.py +++ b/src/log.py @@ -209,7 +209,10 @@ class ValidLogLevel(registry.String): def set(self, s): s = s.upper() try: - level = logging._levelNames[s] + try: + level = logging._levelNames[s] + except AttributeError: + level = logging._nameToLevel[s] except KeyError: try: level = int(s)