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
@@ -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
|
-
|
90
|
-
|
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
|
|
data/spec/show_episode_spec.rb
CHANGED
@@ -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'
|
data/spec/subtitle_spec.rb
CHANGED
@@ -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
|
-
|
14
|
-
|
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:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
18
17
|
none: false
|
19
|
-
requirements:
|
20
|
-
- -
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version:
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
23
22
|
type: :development
|
24
23
|
prerelease: false
|
25
|
-
version_requirements:
|
26
|
-
|
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:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
29
33
|
none: false
|
30
|
-
requirements:
|
34
|
+
requirements:
|
31
35
|
- - ~>
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version:
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '2.0'
|
34
38
|
type: :development
|
35
39
|
prerelease: false
|
36
|
-
version_requirements:
|
37
|
-
|
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:
|
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:
|
48
|
-
|
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:
|
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:
|
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
|
-
|
102
|
-
segments:
|
112
|
+
requirements:
|
113
|
+
- - ! '>='
|
114
|
+
- !ruby/object:Gem::Version
|
115
|
+
version: '0'
|
116
|
+
segments:
|
103
117
|
- 0
|
104
|
-
|
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
|
-
|
111
|
-
segments:
|
121
|
+
requirements:
|
122
|
+
- - ! '>='
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
segments:
|
112
126
|
- 0
|
113
|
-
|
127
|
+
hash: -1144419666492793032
|
114
128
|
requirements: []
|
115
|
-
|
116
129
|
rubyforge_project: subtitulos_downloader
|
117
|
-
rubygems_version: 1.8.
|
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
|