add some old scripts
This commit is contained in:
parent
365d224418
commit
7d8e70e55e
6 changed files with 213 additions and 0 deletions
72
rss-title-filter
Executable file
72
rss-title-filter
Executable file
|
@ -0,0 +1,72 @@
|
|||
#!/usr/bin/env ruby
|
||||
#
|
||||
# Copyright (c) 2009, neingeist <neingeist@bl0rg.net>
|
||||
# Copyright (c) 2005, Joe Mason <joe@notcharles.ca>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a
|
||||
# copy of this software and associated documentation files (the
|
||||
# "Software"), to deal in the Software without restriction, including
|
||||
# without limitation the rights to use, copy, modify, merge, publish,
|
||||
# distribute, sublicense, and/or sell copies of the Software, and to permit
|
||||
# persons to whom the Software is furnished to do so, subject to the
|
||||
# following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included
|
||||
# in all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
|
||||
# NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
# DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
||||
# OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
||||
# USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
# Usage: rss-title-filter <list of titles to include>
|
||||
#
|
||||
# Skips all items which do NOT include the given titles.
|
||||
#
|
||||
# Example: to include all entries with the title "meme", "quiz" or
|
||||
# "picture post", do:
|
||||
#
|
||||
# rss-title-filter meme quiz "picture post"
|
||||
#
|
||||
# Requires the Ruby RSS module, which is included in Ruby 1.8.3 or
|
||||
# higher and available for older versions of Ruby at
|
||||
# http://raa.ruby-lang.org/project/rss/.
|
||||
#
|
||||
# based on "rss-tag-filter" by Joe Mason.
|
||||
|
||||
|
||||
require 'rss/2.0'
|
||||
|
||||
# if no titles were given, no parsing needed
|
||||
if ARGV.empty? then
|
||||
STDIN.each do |line|
|
||||
STDOUT.puts(line)
|
||||
end
|
||||
exit(0)
|
||||
end
|
||||
|
||||
# parse the RSS
|
||||
rss_source = STDIN.collect.join
|
||||
begin
|
||||
rss = RSS::Parser.parse(rss_source)
|
||||
rescue RSS::InvalidRSSError
|
||||
rss = RSS::Parser.parse(rss_source, false) # no validation
|
||||
end
|
||||
|
||||
# filter out all items NOT in the cmd-line args
|
||||
rss.channel.items.reject! do |item|
|
||||
found = false
|
||||
ARGV.each do |arg|
|
||||
if Regexp.new(arg, Regexp::IGNORECASE).match(item.title)
|
||||
found = true
|
||||
end
|
||||
end
|
||||
!found
|
||||
end
|
||||
|
||||
# write the modified rss
|
||||
STDOUT.puts(rss)
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue