Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

reorganized priorities of plugins and changed plugin config in main p…

…rogram
  • Loading branch information...
commit 185ba753c6d3bfd7145658e591a7cee232ffd9d1 1 parent 3c3a8dd
Philipp Böhm authored
182 bin/serienrenamer
View
@@ -21,11 +21,11 @@ FileUtils.mkdir(CONFIG_DIR) unless File.directory?(CONFIG_DIR)
###
# configuration
STANDARD_CONFIG = {
- :default_directory => File.join(File.expand_path("~"), "Downloads"),
- :store_episode_info => false,
- :store_path => File.join(CONFIG_DIR, "information_storage.yml"),
- :byte_count_for_md5 => 2048,
- :illegal_words => %w{ ML },
+ :default_directory => File.join(File.expand_path("~"), "Downloads"),
+ :store_episode_info => false,
+ :store_path => File.join(CONFIG_DIR, "information_storage.yml"),
+ :byte_count_for_md5 => 2048,
+ :illegal_words => %w{ ML },
}
config = STANDARD_CONFIG.merge_with_serialized(CONFIG_FILE)
@@ -41,40 +41,40 @@ opts.separator("")
opts.separator(" Options:")
opts.on( "-p", "--plugin STRING", String,
- "use only this plugin") do |opt|
- options[:plugin] = opt
+ "use only this plugin") do |opt|
+ options[:plugin] = opt
end
opts.on( "-s", "--series STRING", String,
- "series name that will be set for all episodes") do |opt|
- options[:series] = opt
+ "series name that will be set for all episodes") do |opt|
+ options[:series] = opt
end
-opts.on( "-S", "--[no-]season",
- "DIR contains episodes of one season of one series") do |opt|
- options[:is_single_season] = opt
+opts.on( "-S", "--[no-]season",
+ "DIR contains episodes of one season of one series") do |opt|
+ options[:is_single_season] = opt
end
-opts.on( "-i", "--[no-]ignore-filenamedata",
- "Always ask plugins for episode information") do |opt|
- options[:ignore_filenamedata] = opt
+opts.on( "-i", "--[no-]ignore-filenamedata",
+ "Always ask plugins for episode information") do |opt|
+ options[:ignore_filenamedata] = opt
end
-opts.on( "-a", "--[no-]all",
- "Process all files (including right formatted files)") do |opt|
- options[:process_all_files] = opt
+opts.on( "-a", "--[no-]all",
+ "Process all files (including right formatted files)") do |opt|
+ options[:process_all_files] = opt
end
opts.on( "--showconfig", "Prints the current configuration.") do |opt|
- puts "loaded configuration options:"
- puts config.to_yaml
- exit(0)
+ puts "loaded configuration options:"
+ puts config.to_yaml
+ exit(0)
end
opts.on( "-v", "--version",
- "Prints the version number.") do |opt|
- puts Serienrenamer::VERSION
- exit(0)
+ "Prints the version number.") do |opt|
+ puts Serienrenamer::VERSION
+ exit(0)
end
opts.separator("")
@@ -88,7 +88,7 @@ rest = opts.permute(ARGV)
###
# Load plugins #
Dir[File.join(File.dirname(__FILE__),"../lib/plugin/*.rb")].each do |plugin|
- load plugin
+ load plugin
end
Serienrenamer::Pluginbase.registered_plugins.sort! {|x,y| y.priority <=> x.priority }
@@ -99,93 +99,95 @@ puts ""
episode_directory = rest.pop || config[:default_directory]
fail "'#{episode_directory}' does not exist or is not a directory" unless
- Dir.exists?(episode_directory)
+ Dir.exists?(episode_directory)
Dir.chdir(episode_directory)
###
# Iterate through all directory entries
info_storage = Serienrenamer::InformationStore.new(
- config[:store_path], config[:byte_count_for_md5])
+ config[:store_path], config[:byte_count_for_md5])
begin
- for entry in Dir.entries('.').sort do
+ for entry in Dir.entries('.').sort do
- next if entry.match(/^\./)
- next unless Serienrenamer::Episode.determine_video_file(entry)
+ next if entry.match(/^\./)
+ next unless Serienrenamer::Episode.determine_video_file(entry)
- # skip files that already have the right format
- unless options[:process_all_files]
- next if entry.match(/^S\d+E\d+.-.\w+.*\.\w+$/)
- end
+ # skip files that already have the right format
+ unless options[:process_all_files]
+ next if entry.match(/^S\d+E\d+.-.\w+.*\.\w+$/)
+ end
+
+ begin
+ epi = Serienrenamer::Episode.new(entry)
+ if options[:series]
+ epi.series = options[:series]
+ end
+ rescue => e
+ next
+ end
- begin
- epi = Serienrenamer::Episode.new(entry)
- if options[:series]
- epi.series = options[:series]
- end
- rescue => e
- next
+ puts "<<< #{entry}"
+
+ # if episodename is empty than query plugins
+ if epi.episodename.match(/\w+/).nil? || options[:ignore_filenamedata]
+
+ Serienrenamer::Pluginbase.registered_plugins.each do |plugin|
+ # skip plugins that are not feasable
+ next unless plugin.usable
+ next unless plugin.respond_to?(:generate_episode_information)
+ if options[:plugin]
+ next unless plugin.plugin_name.match(/#{options[:plugin]}/i)
end
- puts "<<< #{entry}"
-
- # if episodename is empty than query plugins
- if epi.episodename.match(/\w+/).nil? || options[:ignore_filenamedata]
-
- Serienrenamer::Pluginbase.registered_plugins.each do |plugin|
- # skip plugins that are not feasable
- next unless plugin.usable
- next unless plugin.respond_to?(:generate_episode_information)
- if options[:plugin]
- next unless plugin.plugin_name.match(/#{options[:plugin]}/i)
- end
-
- # configure cleanup
- clean_data, extract_seriesname = false, false
- case plugin.plugin_name
- when "Textfile"
- clean_data, extract_seriesname = true, true
- when "SerienjunkiesOrgFeed"
- clean_data = true
- end
-
- extract_seriesname = false if options[:series]
-
- # ask plugin for information
- epiname = plugin.generate_episode_information(epi)[0]
- next if epiname == nil
-
- puts "[#{plugin.plugin_name}] - #{epiname}"
-
- epi.add_episode_information(epiname, clean_data, extract_seriesname)
- next unless epi.episodename.match(/\w+/)
-
- break
- end
+ # configure cleanup
+ clean_data, extract_seriesname = false, false
+ case plugin.plugin_name
+ when "Textfile"
+ clean_data, extract_seriesname = true, true
+ when "SerienjunkiesOrgFeed"
+ clean_data = true
+ when "SerienjunkiesOrg"
+ clean_data = true
end
- puts ">>> #{epi.to_s}"
-
- print "Filename okay ([jy]/n): "
- char = get_character
- print char.chr
+ extract_seriesname = false if options[:series]
- unless char.chr.match(/[jy\r]/i)
- puts "\nwill be skipped ...\n\n"
- next
- end
+ # ask plugin for information
+ epiname = plugin.generate_episode_information(epi)[0]
+ next if epiname == nil
- info_storage.store(epi) if config[:store_episode_info]
+ puts "[#{plugin.plugin_name}] - #{epiname}"
- puts "\n\n"
+ epi.add_episode_information(epiname, clean_data, extract_seriesname)
+ next unless epi.episodename.match(/\w+/)
- epi.rename()
+ break
+ end
end
+ puts ">>> #{epi.to_s}"
+
+ print "Filename okay ([jy]/n): "
+ char = get_character
+ print char.chr
+
+ unless char.chr.match(/[jy\r]/i)
+ puts "\nwill be skipped ...\n\n"
+ next
+ end
+
+ info_storage.store(epi) if config[:store_episode_info]
+
+ puts "\n\n"
+
+ epi.rename()
+ end
+
rescue Interrupt => e
- puts
+ puts
ensure
- info_storage.write() if config[:store_episode_info]
+ info_storage.write() if config[:store_episode_info]
end
2  lib/plugin/serienjunkies_de.rb
View
@@ -12,7 +12,7 @@ class SerienjunkiesDe < Serienrenamer::Pluginbase
def self.plugin_name; "SerienjunkiesDe" end
def self.plugin_url; "http://serienjunkies.de" end
def self.usable; true end
- def self.priority; 4 end
+ def self.priority; 50 end
# this method will be called from the main program
# with an Serienrenamer::Episode instance as parameter
2  lib/plugin/serienjunkies_feed.rb
View
@@ -11,7 +11,7 @@ class SerienjunkiesOrgFeed < Serienrenamer::Pluginbase
def self.plugin_name; "SerienjunkiesOrgFeed" end
def self.usable; true end
- def self.priority; 10 end
+ def self.priority; 80 end
@feed_url = 'http://serienjunkies.org/xml/feeds/episoden.xml'
2  lib/plugin/serienjunkies_org.rb
View
@@ -13,7 +13,7 @@ class SerienjunkiesOrg < Serienrenamer::Pluginbase
def self.plugin_name; "SerienjunkiesOrg" end
def self.plugin_url; "http://serienjunkies.org" end
def self.usable; true end
- def self.priority; 10 end
+ def self.priority; 60 end
# Public: tries to search for an appropriate episodename
#
2  lib/plugin/wikipedia.rb
View
@@ -11,7 +11,7 @@ class Wikipedia < Serienrenamer::Pluginbase
def self.plugin_name; "Wikipedia" end
def self.usable; true end
- def self.priority; 5 end
+ def self.priority; 30 end
@@WIKIPEDIA_URL = 'http://de.wikipedia.org/w/api.php'
2  lib/serienrenamer.rb
View
@@ -3,7 +3,7 @@
module Serienrenamer
- VERSION = '0.0.9'
+ VERSION = '0.0.10'
require 'serienrenamer/episode.rb'
require 'serienrenamer/information_store.rb'
Please sign in to comment.
Something went wrong with that request. Please try again.