forced = true\r
m.params.gsub!(/^force /, '')\r
end\r
- feed = m.params.match(/^(\S+)\s+(\S+)$/)\r
- if feed.nil?\r
+ feed = m.params.scan(/\S+/)\r
+ if feed.nil? or feed.length < 2\r
m.reply("incorrect usage: " + help(m.plugin))\r
+ return\r
end\r
- handle = feed[1]\r
- url = feed[2]\r
- debug "Handle: #{handle.inspect}, Url: #{url.inspect}"\r
+ handle = feed[0]\r
+ handle.gsub!("|", '_')\r
+ url = feed[1]\r
+ type = feed[2] || nil\r
+ debug "Handle: #{handle.inspect}, Url: #{url.inspect}, Type: #{type.inspect}"\r
if @feeds.fetch(handle, nil) && !forced\r
m.reply("But there is already a feed named #{handle} with url #{@feeds[handle].url}")\r
return\r
end\r
- handle.gsub!("|", '_')\r
@@mutex.synchronize {\r
- @feeds[handle] = RssBlob.new(url,handle)\r
+ @feeds[handle] = RssBlob.new(url,handle,type)\r
}\r
- m.reply "RSS: Added #{url} with name #{handle}"\r
+ reply = "Added RSS #{url} named #{handle}"\r
+ if type\r
+ reply << " (format: #{type})"\r
+ end\r
+ m.reply reply\r
return handle\r
end\r
\r
debug "First run, we'll see next time"\r
firstRun = false\r
else\r
+ otxt = oldItems.map { |item| item.to_s }\r
dispItems = newItems.reject { |item|\r
- oldItems.include?(item)\r
+ otxt.include?(item.to_s)\r
}\r
if dispItems.length > 0\r
debug "Found #{dispItems.length} new items"\r
debug "No new items found"\r
end\r
end\r
- oldItems = newItems\r
+ oldItems = newItems.dup\r
rescue Exception => e\r
error "IO failed: #{e.inspect}"\r
debug e.backtrace.join("\n")\r