undertexter 0.1.8 → 0.1.9
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/.gitignore +1 -0
- data/Gemfile.lock +4 -2
- data/README.markdown +3 -1
- data/lib/subtitle.rb +7 -3
- data/lib/undertexter.rb +13 -9
- data/spec/array_spec.rb +4 -2
- data/spec/fixtures/vcr_cassettes/die-hard.yml +670 -0
- data/spec/fixtures/vcr_cassettes/non-existing.yml +594 -0
- data/spec/fixtures/vcr_cassettes/tt0499549.yml +645 -0
- data/spec/fixtures/vcr_cassettes/tt0840361.yml +2474 -0
- data/spec/spec_helper.rb +11 -0
- data/spec/subtitle_spec.rb +5 -13
- data/spec/undertexter_spec.rb +39 -21
- data/undertexter.gemspec +2 -1
- metadata +21 -4
- data/spec/data/127.Hours.2010.DVDSCR.XViD-MC8 +0 -0
data/spec/spec_helper.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require "rspec"
|
2
2
|
require "webmock/rspec"
|
3
3
|
require "undertexter"
|
4
|
+
require "vcr"
|
4
5
|
require "subtitle"
|
5
6
|
require "undertexter/error"
|
6
7
|
|
@@ -8,4 +9,14 @@ WebMock.allow_net_connect!
|
|
8
9
|
|
9
10
|
RSpec.configure do |config|
|
10
11
|
config.mock_with :rspec
|
12
|
+
config.extend VCR::RSpec::Macros
|
13
|
+
end
|
14
|
+
|
15
|
+
VCR.config do |c|
|
16
|
+
c.cassette_library_dir = "spec/fixtures/vcr_cassettes"
|
17
|
+
c.stub_with :webmock
|
18
|
+
c.default_cassette_options = {
|
19
|
+
record: :new_episodes
|
20
|
+
}
|
21
|
+
c.allow_http_connections_when_no_cassette = false
|
11
22
|
end
|
data/spec/subtitle_spec.rb
CHANGED
@@ -7,13 +7,15 @@ describe Subtitle do
|
|
7
7
|
@new_file = "/tmp/#{@title.gsub(/\s+/, '.')}.zip"
|
8
8
|
|
9
9
|
@subtitle = Subtitle.new({
|
10
|
-
:details => "http://www.undertexter.se
|
10
|
+
:details => "http://www.undertexter.se/23984/",
|
11
11
|
:downloads => 100,
|
12
12
|
:cds => 1,
|
13
13
|
:title => @title,
|
14
14
|
:movie_title => "127 Hours (127 Timmar)",
|
15
15
|
:language => :swedish
|
16
16
|
})
|
17
|
+
|
18
|
+
WebMock.allow_net_connect!
|
17
19
|
end
|
18
20
|
|
19
21
|
it "should be an instance of subtitle" do
|
@@ -21,7 +23,7 @@ describe Subtitle do
|
|
21
23
|
end
|
22
24
|
|
23
25
|
it "should have the right accessors" do
|
24
|
-
@subtitle.details.should eq("http://www.undertexter.se
|
26
|
+
@subtitle.details.should eq("http://www.undertexter.se/23984/")
|
25
27
|
@subtitle.downloads.should eq(100)
|
26
28
|
@subtitle.cds.should eq(1)
|
27
29
|
@subtitle.title.should eq("127 Hours 2010 DVDSCR XViD-MC8")
|
@@ -34,7 +36,7 @@ describe Subtitle do
|
|
34
36
|
end
|
35
37
|
|
36
38
|
it "should have created an existing file" do
|
37
|
-
FileUtils.rm(@new_file)
|
39
|
+
FileUtils.rm(@new_file) if File.exists?(@new_file)
|
38
40
|
@subtitle.download!
|
39
41
|
File.exists?(@new_file).should be_true
|
40
42
|
end
|
@@ -44,14 +46,4 @@ describe Subtitle do
|
|
44
46
|
@subtitle.download!(:to => '/tmp/new_dir')
|
45
47
|
%x{ls /tmp/new_dir}.should_not be_empty
|
46
48
|
end
|
47
|
-
|
48
|
-
it "should be able to download the file to a specific relative directory" do
|
49
|
-
folder = "#{Dir.pwd}/spec/data"
|
50
|
-
|
51
|
-
@subtitle.download!(:to => 'spec/data')
|
52
|
-
|
53
|
-
%x{ls #{folder}}.should_not be_empty
|
54
|
-
|
55
|
-
%x{cd #{folder} && rm 127.Hours.2010.DVDSCR.XViD-MC8.zip}
|
56
|
-
end
|
57
49
|
end
|
data/spec/undertexter_spec.rb
CHANGED
@@ -1,12 +1,14 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Undertexter do
|
4
|
-
|
4
|
+
use_vcr_cassette "tt0499549"
|
5
|
+
|
6
|
+
before(:each) do
|
5
7
|
@use = Undertexter.find("tt0499549")
|
6
8
|
end
|
7
9
|
|
8
10
|
it "should return return at least 31 subtitles" do
|
9
|
-
Undertexter.
|
11
|
+
Undertexter.find("tt0499549").count.should >= 31
|
10
12
|
end
|
11
13
|
|
12
14
|
it "should contain cds that is of the type Fixnum" do
|
@@ -25,6 +27,10 @@ describe Undertexter do
|
|
25
27
|
@use.reject {|subtitle| subtitle.downloads <= 0}.count.should_not be(0)
|
26
28
|
end
|
27
29
|
|
30
|
+
it "should not be empty" do
|
31
|
+
@use.should_not be_empty
|
32
|
+
end
|
33
|
+
|
28
34
|
it "should contain titles that does not have whitespace in the end of beginning" do
|
29
35
|
@use.each {|subtitle| subtitle.title.should_not match(/^\s+.+\s+$/)}
|
30
36
|
end
|
@@ -33,29 +39,29 @@ describe Undertexter do
|
|
33
39
|
@use.each {|subtitle| subtitle.title.should_not be_empty}
|
34
40
|
end
|
35
41
|
|
36
|
-
it "should contain the right
|
37
|
-
@use.each {|subtitle| subtitle.details.should match(/^http:\/\/www\.undertexter\.se
|
42
|
+
it "should contain the right details" do
|
43
|
+
@use.each {|subtitle| subtitle.details.should match(/^http:\/\/www\.undertexter\.se\/\d+\/$/)}
|
38
44
|
end
|
39
45
|
end
|
40
46
|
|
41
47
|
|
42
48
|
describe Undertexter, "trying to find a non existing movie" do
|
49
|
+
use_vcr_cassette "non-existing"
|
50
|
+
|
43
51
|
it "should not return any subtitles" do
|
44
52
|
Undertexter.find("some random name").count.should be(0)
|
45
53
|
end
|
46
54
|
end
|
47
55
|
|
48
56
|
describe Undertexter, "trying to search for a movie using a title" do
|
49
|
-
|
50
|
-
@use = Undertexter.find("die hard")
|
51
|
-
end
|
57
|
+
use_vcr_cassette "die-hard"
|
52
58
|
|
53
|
-
|
54
|
-
Undertexter.
|
59
|
+
before(:each) do
|
60
|
+
@use = Undertexter.find("die hard")
|
55
61
|
end
|
56
62
|
|
57
63
|
it "should return some subtitles when searching for a movie with whitespace" do
|
58
|
-
|
64
|
+
@use.count.should >= 41
|
59
65
|
end
|
60
66
|
|
61
67
|
it "should have 6 die hard movies that does not contain any title" do
|
@@ -63,7 +69,7 @@ describe Undertexter, "trying to search for a movie using a title" do
|
|
63
69
|
end
|
64
70
|
|
65
71
|
it "should contain the right details, again" do
|
66
|
-
@use.each {|subtitle| subtitle.details.should match(/^http:\/\/www\.undertexter\.se
|
72
|
+
@use.each {|subtitle| subtitle.details.should match(/^http:\/\/www\.undertexter\.se\/\d+\/$/)}
|
67
73
|
end
|
68
74
|
|
69
75
|
it "should have a movie title" do
|
@@ -80,7 +86,8 @@ describe Undertexter, "trying to search for a movie using a title" do
|
|
80
86
|
|
81
87
|
it "should return the same id for every link" do
|
82
88
|
@use.each_with_index do |subtitle, index|
|
83
|
-
subtitle.url.match(/id=(\d+)
|
89
|
+
subtitle.url.match(/id=(\d+)$/)[1].should
|
90
|
+
eq(@use[index].details.match(/^http:\/\/www\.undertexter\.se\/(\d+)\/$/)[1])
|
84
91
|
end
|
85
92
|
end
|
86
93
|
|
@@ -97,21 +104,32 @@ describe Undertexter, "trying to search for a movie using a title" do
|
|
97
104
|
end
|
98
105
|
end
|
99
106
|
|
100
|
-
describe
|
101
|
-
it "should
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
it "should return at least 8 subtitles" do
|
106
|
-
Undertexter.should have_at_least(8).find("tt0840361", :language => :swedish)
|
107
|
+
describe "deactivated" do
|
108
|
+
it "should raise an error if trying to fetch an english subtitle" do
|
109
|
+
lambda {
|
110
|
+
Undertexter.find("tt0840361", :language => :english)
|
111
|
+
}.should raise_error(ArgumentError, "Support for english subtitles are deactivated - for now.")
|
107
112
|
end
|
113
|
+
end
|
114
|
+
|
115
|
+
describe Undertexter, "should work when trying to fetch some english subtitles" do
|
116
|
+
use_vcr_cassette "tt0840361"
|
117
|
+
|
118
|
+
# Deactivated - for now - 2011-05-11
|
119
|
+
#
|
120
|
+
# it "should return at least 48 subtitles" do
|
121
|
+
# Undertexter.should have_at_least(48).find("tt0840361", :language => :english)
|
122
|
+
# end
|
123
|
+
# it "should return the right url when trying to fetch an english sub" do
|
124
|
+
# Undertexter.find("tt0840361", :language => :english).first.url.should match(/http:\/\/eng\.undertexter\.se\/subtitle\.php\?id=\d+/i)
|
125
|
+
# end
|
108
126
|
|
109
127
|
it "should return at least 8 subtitles" do
|
110
128
|
Undertexter.should have_at_least(8).find("tt0840361", :language => :strange)
|
111
129
|
end
|
112
130
|
|
113
|
-
it "should return
|
114
|
-
Undertexter.find("tt0840361", :language => :
|
131
|
+
it "should return at least 8 subtitles" do
|
132
|
+
Undertexter.should have_at_least(8).find("tt0840361", :language => :swedish)
|
115
133
|
end
|
116
134
|
|
117
135
|
it "should return the right url when trying to fetch an swedish sub" do
|
data/undertexter.gemspec
CHANGED
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
|
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = "undertexter"
|
6
|
-
s.version = "0.1.
|
6
|
+
s.version = "0.1.9"
|
7
7
|
s.platform = Gem::Platform::RUBY
|
8
8
|
s.authors = ["Linus Oleander"]
|
9
9
|
s.email = ["linus@oleander.nu"]
|
@@ -25,4 +25,5 @@ Gem::Specification.new do |s|
|
|
25
25
|
|
26
26
|
s.add_development_dependency("rspec", "2.4.0")
|
27
27
|
s.add_development_dependency("webmock")
|
28
|
+
s.add_development_dependency("vcr")
|
28
29
|
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: undertexter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.1.
|
5
|
+
version: 0.1.9
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Linus Oleander
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-05-
|
13
|
+
date: 2011-05-11 00:00:00 +02:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -79,6 +79,17 @@ dependencies:
|
|
79
79
|
version: "0"
|
80
80
|
type: :development
|
81
81
|
version_requirements: *id006
|
82
|
+
- !ruby/object:Gem::Dependency
|
83
|
+
name: vcr
|
84
|
+
prerelease: false
|
85
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
86
|
+
none: false
|
87
|
+
requirements:
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: "0"
|
91
|
+
type: :development
|
92
|
+
version_requirements: *id007
|
82
93
|
description: A basic API for Undertexter.se.
|
83
94
|
email:
|
84
95
|
- linus@oleander.nu
|
@@ -100,8 +111,11 @@ files:
|
|
100
111
|
- lib/undertexter/array.rb
|
101
112
|
- lib/undertexter/error.rb
|
102
113
|
- spec/array_spec.rb
|
103
|
-
- spec/data/127.Hours.2010.DVDSCR.XViD-MC8
|
104
114
|
- spec/fixtures/error.html
|
115
|
+
- spec/fixtures/vcr_cassettes/die-hard.yml
|
116
|
+
- spec/fixtures/vcr_cassettes/non-existing.yml
|
117
|
+
- spec/fixtures/vcr_cassettes/tt0499549.yml
|
118
|
+
- spec/fixtures/vcr_cassettes/tt0840361.yml
|
105
119
|
- spec/spec_helper.rb
|
106
120
|
- spec/subtitle_spec.rb
|
107
121
|
- spec/undertexter_spec.rb
|
@@ -136,8 +150,11 @@ specification_version: 3
|
|
136
150
|
summary: A basic API for Undertexter.se
|
137
151
|
test_files:
|
138
152
|
- spec/array_spec.rb
|
139
|
-
- spec/data/127.Hours.2010.DVDSCR.XViD-MC8
|
140
153
|
- spec/fixtures/error.html
|
154
|
+
- spec/fixtures/vcr_cassettes/die-hard.yml
|
155
|
+
- spec/fixtures/vcr_cassettes/non-existing.yml
|
156
|
+
- spec/fixtures/vcr_cassettes/tt0499549.yml
|
157
|
+
- spec/fixtures/vcr_cassettes/tt0840361.yml
|
141
158
|
- spec/spec_helper.rb
|
142
159
|
- spec/subtitle_spec.rb
|
143
160
|
- spec/undertexter_spec.rb
|
File without changes
|