require 'iconv'
class UnicodePlugin < Plugin
- BotConfig.register BotConfigBooleanValue.new(
+ Config.register Config::BooleanValue.new(
'encoding.enable', :default => true,
:desc => "Support for non-ascii charsets",
:on_change => Proc.new { |bot, v| reconfigure_filter(bot) })
- BotConfig.register BotConfigArrayValue.new(
- 'encoding.charsets', :default => ['utf-8', 'cp1252'],
+ Config.register Config::ArrayValue.new(
+ 'encoding.charsets', :default => ['utf-8', 'cp1252', 'iso-8859-15'],
:desc => "Ordered list of iconv(3) charsets the bot should try",
:on_change => Proc.new { |bot, v| reconfigure_filter(bot) })
o = oenc.dup
o += '//ignore' if !o.include?('/')
i = iencs[0].dup
- i += '//ignore' if !i.include?('/')
+ # i += '//ignore' if !i.include?('/')
@iencs = iencs.dup
@iconvs = @iencs.map { |_| Iconv.new('utf-8', _) }
debug "*** o = #{o}, i = #{i}, iencs = #{iencs.inspect}"
- @default_in = Iconv.new('utf-8', i)
- @default_out = Iconv.new(o, 'utf-8')
+ @default_in = Iconv.new('utf-8//ignore', i)
+ @default_out = Iconv.new(o, 'utf-8//ignore')
end
def in(data)
}
rv = @default_in.iconv(data) if !rv
- debug ">> #{rv}"
+ debug ">> #{rv.inspect}"
return rv
end
debug "cleaning up encodings"
@bot.socket.filter = nil
$KCODE = @old_kcode
+ super
end
def UnicodePlugin.reconfigure_filter(bot)