subtitulos_downloader 0.6.1 → 0.6.2
Sign up to get free protection for your applications and to get access to all the features.
@@ -32,7 +32,8 @@ module SubtitulosDownloader
|
|
32
32
|
|
33
33
|
begin
|
34
34
|
subs = get_subtitles(lang, episode_subs_table, show_sub)
|
35
|
-
|
35
|
+
translators = get_translators(show_sub)
|
36
|
+
subtitle = Subtitle.new subs, language, show_episode, @translators, @direct_link, @provider_link, @provider_name, @provider_language
|
36
37
|
rescue SDException => e
|
37
38
|
if language == 'es'
|
38
39
|
if lang == 'España'
|
@@ -55,8 +56,39 @@ module SubtitulosDownloader
|
|
55
56
|
|
56
57
|
protected
|
57
58
|
|
59
|
+
def get_translators(show_sub)
|
60
|
+
open(@provider_link,
|
61
|
+
"User-Agent" => @user_agent,
|
62
|
+
"Referer" => "#{@base_uri}/show/#{show_sub[:id_show]}" ) { |f|
|
63
|
+
|
64
|
+
cont = f.read
|
65
|
+
|
66
|
+
ep_doc = Hpricot(cont)
|
67
|
+
split = @direct_link.split('/')
|
68
|
+
sub_id = [split.pop, split.pop].reverse.join('/')
|
69
|
+
ep_doc.search('span.descargar').each do |green|
|
70
|
+
a = green.search('a').at(0)
|
71
|
+
if a and a.attributes['href'] == @direct_link
|
72
|
+
translated = green.next_sibling.next_sibling.next_sibling
|
73
|
+
@translators = translated.search('a').count
|
74
|
+
return @translators
|
75
|
+
|
76
|
+
end
|
77
|
+
# title = (episode_table/"tr/td[@colspan='5']/a").inner_html.force_encoding('utf-8')
|
78
|
+
# episode_str = "%02d" % show_episode.episode
|
79
|
+
# episode_number = "#{show_episode.season}x#{episode_str}"
|
80
|
+
# if title =~ /#{episode_number}/i
|
81
|
+
# ep_t = episode_table
|
82
|
+
# break
|
83
|
+
# end
|
84
|
+
end
|
85
|
+
@translators = -1
|
86
|
+
}
|
87
|
+
end
|
88
|
+
|
58
89
|
def get_subtitles(language, episode_table, show_sub)
|
59
90
|
@provider_link = (episode_table/"td.NewsTitle/a").first.attributes['href']
|
91
|
+
|
60
92
|
translation_unfinished = false
|
61
93
|
(episode_table/"tr/td.language").each do |lang|
|
62
94
|
language_sub = lang.inner_html.strip.force_encoding('utf-8')
|
@@ -2,9 +2,9 @@ module SubtitulosDownloader
|
|
2
2
|
|
3
3
|
class Subtitle
|
4
4
|
|
5
|
-
attr_accessor :subtitles, :language, :show_episode, :direct_link, :provider, :provider_link, :provider_language
|
5
|
+
attr_accessor :subtitles, :translators, :language, :show_episode, :direct_link, :provider, :provider_link, :provider_language
|
6
6
|
|
7
|
-
def initialize(subs, language, show_episode, direct_link, provider_link, provider, provider_language)
|
7
|
+
def initialize(subs, language, show_episode, translators, direct_link, provider_link, provider, provider_language)
|
8
8
|
@subtitles = subs
|
9
9
|
@language = language
|
10
10
|
@show_episode = show_episode
|
@@ -12,6 +12,7 @@ module SubtitulosDownloader
|
|
12
12
|
@provider_link = provider_link
|
13
13
|
@direct_link = direct_link
|
14
14
|
@provider = provider
|
15
|
+
@translators = translators
|
15
16
|
@provider_language = provider_language
|
16
17
|
end
|
17
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, 'direct_link', 'provider_link', 'provider', 'provider_language')
|
36
|
+
subtitle = SubtitulosDownloader::Subtitle.new('subs', 'es', episode, 10, '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, 'direct_link', 'provider_link', 'provider', 'provider_language')
|
12
|
+
sub = SubtitulosDownloader::Subtitle.new('subs', 'en', @ep, 10, '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, 'direct_link', 'provider_link', 'provider', 'provider_language')
|
21
|
+
sub = SubtitulosDownloader::Subtitle.new('subs', 'en', @ep, 10, '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, 'direct_link', 'provider_link', 'provider', 'provider_language')
|
23
|
+
sub = SubtitulosDownloader::Subtitle.new('subs', 'es', @ep, 10, '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, 'direct_link', 'provider_link', 'provider', 'provider_language')
|
25
|
+
sub = SubtitulosDownloader::Subtitle.new('subs', 'ca', @ep, 10, '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
|
|
data/spec/subtitulos_es_spec.rb
CHANGED
@@ -9,7 +9,19 @@ describe SubtitulosDownloader::SubtitulosEs do
|
|
9
9
|
@ep = SubtitulosDownloader::ShowEpisode.new_from_file_name("Fringe.S04E07.HDTV.XviD-LOL.avi.avi")
|
10
10
|
@simpsons = SubtitulosDownloader::ShowEpisode.new_from_file_name("The Simpsons - 20x05 - Dangerous Curves")
|
11
11
|
@simpsons2 = SubtitulosDownloader::ShowEpisode.new_from_file_name("The Simpsons - 20x07 - Mypods and Boomsticks")
|
12
|
+
@breaking_bad = SubtitulosDownloader::ShowEpisode.new_from_file_name("Breaking Bad - 5x07 - Say My Name")
|
12
13
|
@provider = SubtitulosDownloader::SubtitulosEs.new()
|
14
|
+
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'should fetch number of translators' do
|
18
|
+
subtitle = @provider.fetch(@breaking_bad, 'es')
|
19
|
+
subtitle.translators.should == 30
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'should fetch -1 for translators' do
|
23
|
+
subtitle = @provider.fetch(@breaking_bad, 'en')
|
24
|
+
subtitle.translators.should == -1
|
13
25
|
end
|
14
26
|
|
15
27
|
it 'should fetch spanish subtitle' do
|
@@ -60,6 +72,7 @@ describe SubtitulosDownloader::SubtitulosEs do
|
|
60
72
|
subtitle.show_episode.should == episode
|
61
73
|
subs = (subtitle.subtitles =~ /el reverendo R.G. Wendell/) > 1
|
62
74
|
end
|
75
|
+
|
63
76
|
end
|
64
77
|
|
65
78
|
context "Rasing Exceptions" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: subtitulos_downloader
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -115,7 +115,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
115
115
|
version: '0'
|
116
116
|
segments:
|
117
117
|
- 0
|
118
|
-
hash:
|
118
|
+
hash: -4045992027944727546
|
119
119
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
120
120
|
none: false
|
121
121
|
requirements:
|
@@ -124,7 +124,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
124
124
|
version: '0'
|
125
125
|
segments:
|
126
126
|
- 0
|
127
|
-
hash:
|
127
|
+
hash: -4045992027944727546
|
128
128
|
requirements: []
|
129
129
|
rubyforge_project: subtitulos_downloader
|
130
130
|
rubygems_version: 1.8.24
|