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
@@ -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
|