ShowFeature
¶ ↑
A library to find the relevant features in a tv show filename
(e.g. [name].S[season]E.hdtv-.avi)
Usage¶ ↑
Example 1¶ ↑
require 'showfeature' sf = ShowFeature::Processor.new('foo.125.x264-bar.mkv') sf.parse puts sf.to_hsh # prints {:name=>"foo", :season=>"01", :episode=>"05", :team=>"bar"}
Example 2¶ ↑
require 'showfeature' require 'fileutils' include ShowFeature def file_elements in_directory, to_directory = File.expand_path(".") FileUtils.chdir in_directory do Dir.glob('*').each do |file| # if file is a video or a subtitles file if [:video_file_type?,:subtitles_file_type?].any?{|mth| Processor.send(mth,file)} sf = Processor.new (file) sf.parse unless sf.to_hsh.empty? # create a directory whose name is built with the name of the tv show show_dir = File.join to_directory, sf.name.gsub(' ','_'), sf.season FileUtils.mkdir_p show_dir unless Dir.exists? show_dir # mv FileUtils.mv sf.raw_name, File.join(show_dir,sf.raw_name), :verbose => true end end end end end system "tree" # Produces: # . # |-- foobar.101.x264-raboof.avi # |-- foo.s01e01.hdtv-bar.mp4 # |-- foo.s01e02.hdtv-bar.mp4 # `-- foo.s01e02.hdtv-bar.srt # # 0 directories, 4 files file_elements File.expand_path('~/Vidéos'), File.expand_path('~/Vidéos') system "tree" # Produces: # . # |-- foo # | `-- 01 # | |-- foo.s01e01.hdtv-bar.mp4 # | |-- foo.s01e02.hdtv-bar.mp4 # | `-- foo.s01e02.hdtv-bar.srt # `-- foobar # `-- 01 # `-- foobar.101.x264-raboof.avi # 4 directories, 4 files
Author : Allan Seymour
Version : 0.1.3
Release Date : December 25, 2012
Copyright : MIT License