subtitulos_downloader 0.5.5 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -4,7 +4,7 @@ source "http://rubygems.org"
4
4
  gemspec
5
5
 
6
6
  group :development, :test do
7
- gem 'ruby-debug19'
7
+
8
8
  end
9
9
 
10
10
  group :test do
@@ -32,7 +32,7 @@ module SubtitulosDownloader
32
32
 
33
33
  begin
34
34
  subs = get_subtitles(lang, episode_subs_table, show_sub)
35
- subtitle = Subtitle.new subs, language, show_episode
35
+ subtitle = Subtitle.new subs, language, show_episode, @direct_link, @provider_link, @provider_name, @provider_language
36
36
  rescue SDException => e
37
37
  if language == 'es'
38
38
  if lang == 'España'
@@ -56,6 +56,7 @@ module SubtitulosDownloader
56
56
  protected
57
57
 
58
58
  def get_subtitles(language, episode_table, show_sub)
59
+ @provider_link = (episode_table/"td.NewsTitle/a").first.attributes['href']
59
60
  (episode_table/"tr/td.language").each do |lang|
60
61
  language_sub = lang.inner_html.strip.force_encoding('utf-8')
61
62
  if language_sub =~ /#{language}/i
@@ -65,6 +66,9 @@ module SubtitulosDownloader
65
66
  subtitle_a = lang.parent.search("a").at(0)
66
67
  subtitle_url = subtitle_a.attributes['href']
67
68
  # puts "Fetching #{language} subtitle file"
69
+ @provider_language = language_sub
70
+ @direct_link = subtitle_url
71
+ # @provider_link = "#{@base_uri}/show/#{show_sub[:id_show]}"
68
72
  open(subtitle_url,
69
73
  "User-Agent" => @user_agent,
70
74
  "Referer" => "#{@base_uri}/show/#{show_sub[:id_show]}") { |f|
@@ -83,15 +87,27 @@ module SubtitulosDownloader
83
87
 
84
88
  def search_show show_episode
85
89
  shows = []
90
+ old_name = show_episode.show_name
91
+ show_episode.show_name = 'Louie' if show_episode.show_name == 'Louie (2010)'
92
+ show_episode.show_name = 'Castle' if show_episode.show_name == 'Castle (2009)'
93
+ show_episode.show_name = 'The Newsroom' if show_episode.show_name == 'The Newsroom (2012)'
94
+ show_episode.show_name = 'The Office' if show_episode.show_name == 'The Office (US)' or show_episode.show_name == 'The Office (1995)'
95
+ show_episode.show_name = 'Spartacus: Blood and Sand' if show_episode.show_name =~ /Spartacus/i
86
96
  @shows_doc.search("a").each do |show_subs|
87
97
  show_name = show_subs.inner_html.force_encoding('utf-8')
88
98
  show_url = show_subs.attributes['href']
89
- if show_name =~ /#{show_episode.show_name}/i
90
- shows << { :show_episode => show_episode, :url => show_url, :id_show => show_url.split('/show/')[1].to_i }
99
+ show = { :show_episode => show_episode, :url => show_url, :id_show => show_url.split('/show/')[1].to_i }
100
+ if (show_name == show_episode.show_name)
101
+ shows << show
102
+ break
103
+ elsif show_name =~ /^#{show_episode.show_name}/i and (show_name != 'Scrubs Interns' and show_name != 'true blood minisodes')
104
+ shows << show
91
105
  end
92
106
  end
93
107
  raise ShowNotFound, "[#{@provider_name}] #{show_episode.show_name} not found" if shows.count == 0
94
108
  raise MoreThanOneShow, "[#{@provider_name}] Found #{shows.count} for #{show_episode.show_name}" if shows.count > 1
109
+ old_name = 'The Office (US)' if old_name == 'The Office (1995)'
110
+ show_episode.show_name = old_name
95
111
  shows
96
112
  end
97
113
 
@@ -104,7 +120,7 @@ module SubtitulosDownloader
104
120
  "Referer" =>"#{@base_uri}" ) { |f|
105
121
 
106
122
  cont = f.read
107
- raise SeasonNotFound, "[#{@provider_name}] Season for #{show_episode.full_name} not found" if cont == ''
123
+ raise SeasonNotFound, "[#{@provider_name}] Season for #{show_episode.full_name} not found" if not cont.match(/<table/)
108
124
 
109
125
  season_doc = Hpricot(cont)
110
126
 
@@ -139,4 +155,4 @@ module SubtitulosDownloader
139
155
 
140
156
  end
141
157
 
142
- end
158
+ end
@@ -2,13 +2,17 @@ module SubtitulosDownloader
2
2
 
3
3
  class Subtitle
4
4
 
5
- attr_accessor :subtitles, :language, :show_episode
5
+ attr_accessor :subtitles, :language, :show_episode, :direct_link, :provider, :provider_link, :provider_language
6
6
 
7
- def initialize(subs, language, show_episode)
7
+ def initialize(subs, language, show_episode, direct_link, provider_link, provider, provider_language)
8
8
  @subtitles = subs
9
9
  @language = language
10
10
  @show_episode = show_episode
11
11
  @show_episode.subtitles << self
12
+ @provider_link = provider_link
13
+ @direct_link = direct_link
14
+ @provider = provider
15
+ @provider_language = provider_language
12
16
  end
13
17
 
14
18
 
@@ -1,3 +1,3 @@
1
1
  module SubtitulosDownloader
2
- VERSION = "0.5.5"
2
+ VERSION = "0.6.0"
3
3
  end
@@ -33,7 +33,7 @@ describe SubtitulosDownloader::ShowEpisode do
33
33
 
34
34
  it 'should show the subtitle given a language' do
35
35
  episode = SubtitulosDownloader::ShowEpisode.new('fake show', 3, 3)
36
- subtitle = SubtitulosDownloader::Subtitle.new('subs', 'es', episode)
36
+ subtitle = SubtitulosDownloader::Subtitle.new('subs', 'es', episode, 'direct_link', 'provider_link', 'provider', 'provider_language')
37
37
  sub = episode.subtitle_language 'es'
38
38
  sub.should == subtitle
39
39
  sub.subtitles.should =='subs'
@@ -9,7 +9,7 @@ describe SubtitulosDownloader::Subtitle do
9
9
  end
10
10
 
11
11
  it 'should initialize' do
12
- sub = SubtitulosDownloader::Subtitle.new('subs', 'en', @ep)
12
+ sub = SubtitulosDownloader::Subtitle.new('subs', 'en', @ep, 'direct_link', 'provider_link', 'provider', 'provider_language')
13
13
  sub.subtitles.should == 'subs'
14
14
  sub.language.should == 'en'
15
15
  sub.show_episode.should == @ep
@@ -18,11 +18,11 @@ describe SubtitulosDownloader::Subtitle do
18
18
  end
19
19
 
20
20
  it 'should show the path to save' do
21
- sub = SubtitulosDownloader::Subtitle.new('subs', 'en', @ep)
21
+ sub = SubtitulosDownloader::Subtitle.new('subs', 'en', @ep, 'direct_link', 'provider_link', 'provider', 'provider_language')
22
22
  sub.save_path.should == 'Fringe/Season 4/Fringe - 4x07 - Wallflower-English.srt'
23
- sub = SubtitulosDownloader::Subtitle.new('subs', 'es', @ep)
23
+ sub = SubtitulosDownloader::Subtitle.new('subs', 'es', @ep, 'direct_link', 'provider_link', 'provider', 'provider_language')
24
24
  sub.save_path.should == 'Fringe/Season 4/Fringe - 4x07 - Wallflower-Spanish.srt'
25
- sub = SubtitulosDownloader::Subtitle.new('subs', 'ca', @ep)
25
+ sub = SubtitulosDownloader::Subtitle.new('subs', 'ca', @ep, 'direct_link', 'provider_link', 'provider', 'provider_language')
26
26
  sub.save_path.should == 'Fringe/Season 4/Fringe - 4x07 - Wallflower-ca.srt'
27
27
  end
28
28
 
metadata CHANGED
@@ -1,71 +1,87 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: subtitulos_downloader
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.6.0
4
5
  prerelease:
5
- version: 0.5.5
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - hector spc
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2011-11-20 00:00:00 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
12
+ date: 2012-10-27 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
16
15
  name: rake
17
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
18
17
  none: false
19
- requirements:
20
- - - ">="
21
- - !ruby/object:Gem::Version
22
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
23
22
  type: :development
24
23
  prerelease: false
25
- version_requirements: *id001
26
- - !ruby/object:Gem::Dependency
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
27
31
  name: rspec
28
- requirement: &id002 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
29
33
  none: false
30
- requirements:
34
+ requirements:
31
35
  - - ~>
32
- - !ruby/object:Gem::Version
33
- version: "2.0"
36
+ - !ruby/object:Gem::Version
37
+ version: '2.0'
34
38
  type: :development
35
39
  prerelease: false
36
- version_requirements: *id002
37
- - !ruby/object:Gem::Dependency
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: '2.0'
46
+ - !ruby/object:Gem::Dependency
38
47
  name: tvdb
39
- requirement: &id003 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
40
49
  none: false
41
- requirements:
42
- - - ">="
43
- - !ruby/object:Gem::Version
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
44
53
  version: 0.1.0
45
54
  type: :runtime
46
55
  prerelease: false
47
- version_requirements: *id003
48
- - !ruby/object:Gem::Dependency
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: 0.1.0
62
+ - !ruby/object:Gem::Dependency
49
63
  name: hpricot
50
- requirement: &id004 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
51
65
  none: false
52
- requirements:
53
- - - ">="
54
- - !ruby/object:Gem::Version
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
55
69
  version: 0.8.4
56
70
  type: :runtime
57
71
  prerelease: false
58
- version_requirements: *id004
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: 0.8.4
59
78
  description: Fetch subtitles from different providers and save them to a given path
60
- email:
79
+ email:
61
80
  - hector@aerstudio.com
62
81
  executables: []
63
-
64
82
  extensions: []
65
-
66
83
  extra_rdoc_files: []
67
-
68
- files:
84
+ files:
69
85
  - .gitignore
70
86
  - .rspec
71
87
  - Gemfile
@@ -87,38 +103,35 @@ files:
87
103
  - subtitulos_downloader.gemspec
88
104
  homepage: https://github.com/hecspc/Subtitulos-Downloader
89
105
  licenses: []
90
-
91
106
  post_install_message:
92
107
  rdoc_options: []
93
-
94
- require_paths:
108
+ require_paths:
95
109
  - lib
96
- required_ruby_version: !ruby/object:Gem::Requirement
110
+ required_ruby_version: !ruby/object:Gem::Requirement
97
111
  none: false
98
- requirements:
99
- - - ">="
100
- - !ruby/object:Gem::Version
101
- hash: 3007915900724619315
102
- segments:
112
+ requirements:
113
+ - - ! '>='
114
+ - !ruby/object:Gem::Version
115
+ version: '0'
116
+ segments:
103
117
  - 0
104
- version: "0"
105
- required_rubygems_version: !ruby/object:Gem::Requirement
118
+ hash: -1144419666492793032
119
+ required_rubygems_version: !ruby/object:Gem::Requirement
106
120
  none: false
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- hash: 3007915900724619315
111
- segments:
121
+ requirements:
122
+ - - ! '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ segments:
112
126
  - 0
113
- version: "0"
127
+ hash: -1144419666492793032
114
128
  requirements: []
115
-
116
129
  rubyforge_project: subtitulos_downloader
117
- rubygems_version: 1.8.11
130
+ rubygems_version: 1.8.24
118
131
  signing_key:
119
132
  specification_version: 3
120
133
  summary: Fetch subtitles focused on spanish language
121
- test_files:
134
+ test_files:
122
135
  - spec/show_episode_spec.rb
123
136
  - spec/spec_helper.rb
124
137
  - spec/subtitle_spec.rb