0.0
No commit activity in last 3 years
No release in over 3 years
This library allows to find the relevant features in a tv show filename (e.g. [name].S[season]E[episode].hdtv-[team].avi)
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

Runtime

>= 1.19
 Project Readme

ShowFeature

A library to find the relevant features in a tv show filename
(e.g. [name].S[season]E[episode].hdtv-[team].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