diff options
Diffstat (limited to 'devtools')
-rwxr-xr-x | devtools/testparser.rb | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/devtools/testparser.rb b/devtools/testparser.rb new file mode 100755 index 0000000..2b29544 --- /dev/null +++ b/devtools/testparser.rb @@ -0,0 +1,73 @@ +#!/usr/bin/ruby -w + +# This script takes a lot of .xml files, parse them, and ensure that each of them has at least +# channel : a title, a link +# each item : a title, a link, a content + +$:.unshift File.join(File.dirname(__FILE__), '..', 'lib') +require 'channel' + +XMLDIR = '../opml/output/' +DETAILED = true +def do_dir(dir) + Dir.foreach(dir) do |f| + next if f !~ /.xml$/ + do_file(XMLDIR + f) + end +end + +def do_file(file) + print "#{file} : " + str = File::read(file) + if str.length == 0 + puts "EMPTY" + return + end + begin + chan = Channel::new(str) + rescue UnknownFeedTypeException + puts "UNKNOWNFEEDTYPE" + return + rescue Exception + puts "EXCEPTION" + puts $! + return + end + ok = true + if chan.title.nil? + ok = false + puts "Channel Title Empty" if DETAILED + end + if chan.link.nil? + ok = false + puts "Channel Link Empty" if DETAILED + end + if chan.items.length == 0 + ok = false + puts "Channel Items Empty" if DETAILED + end + chan.items.each do |i| + if i.title.nil? + ok = false + puts "Item Title Empty" if DETAILED + end + if i.link.nil? + ok = false + puts "Item Link Empty" if DETAILED + end + if i.content.nil? + ok = false + puts "Item Content Empty" if DETAILED + end + end + if ok + puts "OK" + else + puts "ERROR" + end +end + +STDOUT.sync = true +#do_file('../opml/output/112.xml') +do_dir(XMLDIR) + |