subtitulos_downloader 0.5.5 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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