subtitle_source 0.0.3

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.
@@ -0,0 +1,4 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
data/.rspec ADDED
@@ -0,0 +1,5 @@
1
+ --color
2
+ -fs
3
+ -Ilib
4
+ -Ispec
5
+ --require spec_helper
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in subtitle_source.gemspec
4
+ gemspec
@@ -0,0 +1,98 @@
1
+ # Subtitle Source
2
+
3
+ Ruby bindings for [subtitlesource.org](http://www.subtitlesource.org/).
4
+
5
+ Follow me on [Twitter](http://twitter.com/linusoleander) or [Github](https://github.com/oleander/) for more info and updates.
6
+
7
+ ## How to use
8
+
9
+ ### Request an API key
10
+
11
+ You can easily request an API key at the [Subtitle Source API page](http://www.subtitlesource.org/help/contact).
12
+
13
+ ### Initialize
14
+
15
+ Pass your API key to the constructor.
16
+ *This is just an example.*
17
+
18
+ ```` ruby
19
+ @subtitles = SubtitleSource.new("6894b779456d330e")
20
+ ````
21
+
22
+ ### Search for a subtitle
23
+
24
+ ```` ruby
25
+ @subtitles.query("Heroes.S03E09.HDTV.XviD-LOL").fetch
26
+ ````
27
+
28
+ ### Specify a language
29
+
30
+ ```` ruby
31
+ @subtitles.language("english").query("Heroes.S03E09.HDTV.XviD-LOL").fetch
32
+ ````
33
+
34
+ ### Find by IMDb id
35
+
36
+ ```` ruby
37
+ @subtitles.imdb("tt0813715").fetch
38
+ ````
39
+
40
+ ### Specify a page
41
+
42
+ Default is *1*.
43
+ *20* results per page.
44
+
45
+ ```` ruby
46
+ @subtitles.imdb("tt0813715").page(2).fetch
47
+ ````
48
+
49
+ ### Find subtitle based on a release name
50
+
51
+ ```` ruby
52
+ @subtitles.imdb("tt0813715").fetch.based_on("The Town EXTENDED 2010 480p BRRip XviD AC3 FLAWL3SS").title
53
+ # => "The Town"
54
+ ````
55
+
56
+ ### Sensitive
57
+
58
+ Specify how sensitive the `based_on` method should be, `0.0` to `1.0`. Default is `0.4`.
59
+
60
+ ```` ruby
61
+ @subtitles.imdb("tt0813715").fetch.based_on("The Town EXTENDED 2010 480p BRRip XviD AC3 FLAWL3SS", limit: 0.0).release_name
62
+ # => "The Town EXTENDED 2010 480p BRRip XviD AC3 FLAWL3SS"
63
+ ````
64
+
65
+ ## Data to work with
66
+
67
+ The `fetch` method returns a list for subtitles. Each subtitle has the following accessors.
68
+
69
+ ```` ruby
70
+ @subtitles.imdb("tt0813715").fetch.first.release_name
71
+ # => "Heroes.S03E09.HDTV.XviD-LOL"
72
+ ````
73
+
74
+ - **title** (*String*) Movie/TV serie title.
75
+ - **imdb** (*String*) IMDb id.
76
+ - **id** (*Fixnum*) Subtitle Source id.
77
+ - **rid** (*Fixnum*) Same as above, I think.
78
+ - **language** (*String*) Subtitle language.
79
+ - **season** (*Fixnum*) Season for the given TV serie.
80
+ - **episode** (*Fixnum*) Episode for the given TV serie.
81
+ - **release_name** (*String*) Subtitle release name.
82
+ - **fps** (*Fixnum*) Frames per second.
83
+ - **cd** (*Fixnum*) The amount of cd's for the given TV serie.
84
+ - **details** (*String*) Url to the details page. [Example](http://www.subtitlesource.org/subs/73538/Source.Code.(2011).DVDRip.XviD-MAXSPEED).
85
+ - **url** (*String*) Url to the zipped subtitle. [Example](http://www.subtitlesource.org/download/zip/73538).
86
+ - **hi** (*Fixnum*)
87
+
88
+ ## How to install
89
+
90
+ [sudo] gem install subtitlesource
91
+
92
+ ## Requirements
93
+
94
+ *Subtitle Source* is tested in *OS X 10.6.8* using Ruby *1.9.2*.
95
+
96
+ ## License
97
+
98
+ *Subtitle Source* is released under the *MIT license*.
@@ -0,0 +1,2 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
@@ -0,0 +1,101 @@
1
+ require "rest_client"
2
+ require "subtitle_source/array"
3
+ require "nokogiri"
4
+ require "uri"
5
+ require "cgi"
6
+
7
+ class SubtitleSource
8
+ attr_reader :api_key
9
+
10
+ def initialize(api_key)
11
+ @api_key = api_key
12
+ unless @api_key
13
+ raise ArgumentError.new("You must specify an Subtitle Source API key.")
14
+ end
15
+ end
16
+
17
+ def query(query)
18
+ tap do
19
+ @query = URI.escape(query)
20
+ @imdb = nil
21
+ end
22
+ end
23
+
24
+ def language(language)
25
+ tap do
26
+ @language = language.to_s.downcase
27
+ @imdb = nil
28
+ end
29
+ end
30
+
31
+ def imdb(imdb)
32
+ tap do
33
+ @imdb = imdb.to_s.match(/^(tt)?(\d+)/).to_a[2]
34
+ @language = nil; @query = nil
35
+ end
36
+ end
37
+
38
+ def page(page)
39
+ tap { @page = page - 1 }
40
+ end
41
+
42
+ def fetch
43
+ content
44
+ end
45
+
46
+ private
47
+
48
+ def content
49
+ subtitle = Struct.new(
50
+ :title,
51
+ :imdb,
52
+ :id,
53
+ :rid,
54
+ :language,
55
+ :season,
56
+ :episode,
57
+ :release_name,
58
+ :fps,
59
+ :cd,
60
+ :hi,
61
+ :details,
62
+ :url
63
+ )
64
+
65
+ subtitles = Nokogiri::XML(get).css("subtitlesource xmlsearch sub").map do |sub|
66
+ subtitle.new(
67
+ sub.at_css("title").content,
68
+ "tt#{sub.at_css("imdb").content}",
69
+ sub.at_css("id").content.to_i,
70
+ sub.at_css("rid").content.to_i,
71
+ sub.at_css("language").content,
72
+ sub.at_css("season").content.to_i,
73
+ sub.at_css("episode").content.to_i,
74
+ sub.at_css("releasename").content,
75
+ sub.at_css("fps").content.to_i,
76
+ sub.at_css("cd").content.to_i,
77
+ sub.at_css("hi").content.to_i,
78
+ "http://www.subtitlesource.org/subs/#{sub.at_css("id").content}/#{sub.at_css("releasename").content}",
79
+ "http://www.subtitlesource.org/download/zip/#{sub.at_css("id").content}"
80
+ )
81
+ end
82
+
83
+ SubtitleSourceModule::Subtitles.new(subtitles)
84
+ end
85
+
86
+ def get
87
+ (@get ||= {})[url] ||= RestClient.get(url, timeout: 10)
88
+ end
89
+
90
+ def url
91
+ if @query
92
+ part = "#{@query}/#{@language || "all"}"
93
+ elsif @imdb
94
+ part = "#{@imdb}/imdb"
95
+ end
96
+
97
+ "http://www.subtitlesource.org/api/#{@api_key}/3.0/xmlsearch/#{part}/#{@page.to_i * 20}".gsub(/\{|\}|\||\\|\^|\[|\]|\`|\s+/) do |m|
98
+ CGI::escape(m)
99
+ end
100
+ end
101
+ end
@@ -0,0 +1,30 @@
1
+ require 'levenshteinish'
2
+
3
+ module SubtitleSourceModule
4
+ class Subtitles < Array
5
+ def based_on(string, args = {})
6
+ result = self.any? ? self.map do |s|
7
+ [Levenshtein.distance(s.release_name, string, args[:limit] || 0.4), s]
8
+ end.reject do |value|
9
+ value.first.nil?
10
+ end.sort_by do |value|
11
+ value.first
12
+ end.map(&:last).first : nil
13
+
14
+ return if result.nil?
15
+
16
+ # If the string contains a release date, then the results should do it to
17
+ if result.release_name =~ /(s\d{2}e\d{2})/i
18
+ return unless string.match(/#{$1}/i)
19
+ end
20
+
21
+ # If the {string} contains a year, then the found movie should return one to
22
+ if result.release_name =~ /((19|20)\d{2})/
23
+ return unless string.match(/#{$1}/)
24
+ end
25
+
26
+ # Yes i know, return isn't needed
27
+ return result
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,46 @@
1
+ require "spec_helper"
2
+
3
+ describe SubtitleSourceModule::Subtitles do
4
+ use_vcr_cassette "tt0840361"
5
+
6
+ before(:each) do
7
+ @subtitles = SubtitleSource.new(ENV["API_KEY"]).imdb("0813715").fetch
8
+ end
9
+
10
+ it "should have a based_on method" do
11
+ lambda{
12
+ @subtitles.based_on("some args")
13
+ }.should_not raise_error(NoMethodError)
14
+ end
15
+
16
+ it "return the best result" do
17
+ string = "Heroes.S04E18.720p.HDTV.X264-DIMENSION"
18
+ @subtitles.based_on(string).release_name.should eq(string)
19
+ end
20
+
21
+ it "should not return anything if the limit is set to low" do
22
+ @subtitles.based_on("Heroes.S04E18.720p.HDTV.X264", limit: 0).should be_nil
23
+ end
24
+
25
+ it "should not return the right movie if to litle info i passed" do
26
+ @subtitles.based_on("heroes").should be_nil
27
+ end
28
+
29
+ it "should return nil if trying to fetch an non existing imdb id" do
30
+ SubtitleSourceModule::Subtitles.new([]).based_on("some random argument").should be_nil
31
+ end
32
+
33
+ it "should raise an exception when the array does not contain any subtitle objects" do
34
+ lambda {
35
+ [1,2,2,3].based_on("some args")
36
+ }.should raise_error(NoMethodError)
37
+ end
38
+
39
+ it "should return nil due to the release date {S04E18}" do
40
+ @subtitles.based_on("Heroes.S04E49.720p.HDTV.X264").should be_nil
41
+ end
42
+
43
+ it "should not return anything due to the wrong year" do
44
+ @subtitles.based_on("Heroes.S04E49.720p.HDTV.X264.2011").should be_nil
45
+ end
46
+ end
@@ -0,0 +1,368 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :get
5
+ uri: http://www.subtitlesource.org:80/subs/58699/Heroes.S04E19.720p.HDTV.X264-DIMENSION
6
+ body:
7
+ headers:
8
+ accept:
9
+ - "*/*; q=0.5, application/xml"
10
+ accept-encoding:
11
+ - gzip, deflate
12
+ response: !ruby/struct:VCR::Response
13
+ status: !ruby/struct:VCR::ResponseStatus
14
+ code: 200
15
+ message: OK
16
+ headers:
17
+ date:
18
+ - Mon, 11 Jul 2011 14:23:52 GMT
19
+ server:
20
+ - Apache
21
+ x-powered-by:
22
+ - PHP/5.3.6
23
+ expires:
24
+ - Thu, 19 Nov 1981 08:52:00 GMT
25
+ cache-control:
26
+ - no-store, no-cache, must-revalidate, post-check=0, pre-check=0
27
+ pragma:
28
+ - no-cache
29
+ set-cookie:
30
+ - PHPSESSID=1da199c2d4649dd5773bcaae4d550866; path=/
31
+ - phpbb3_s6tmy_k=; expires=Tue, 10-Jul-2012 14:23:52 GMT; path=/; domain=.subtitlesource.org; HttpOnly
32
+ - phpbb3_s6tmy_sid=a332ddb67be130872811899139344db7; expires=Tue, 10-Jul-2012 14:23:52 GMT; path=/; domain=.subtitlesource.org; HttpOnly
33
+ - phpbb3_s6tmy_u=1; expires=Tue, 10-Jul-2012 14:23:52 GMT; path=/; domain=.subtitlesource.org; HttpOnly
34
+ transfer-encoding:
35
+ - chunked
36
+ content-type:
37
+ - text/html; charset=utf-8
38
+ body: |
39
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
40
+ <html lang="en">
41
+ <head>
42
+ <title>Heroes 4x19 DIMENSION undertexter - SubtitleSource</title>
43
+ <meta name="verify-v1" content="+f2li6lY32KIxy05WwSLfS8od2CwEb2SrV0ox64WHJg=" />
44
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
45
+ <meta http-equiv="Content-Language" content="en-GB" />
46
+ <meta HTTP-EQUIV=REFRESH CONTENT=300 />
47
+ <meta name="description" content="Heroes svenska undertexter
48
+ Swedish subtitles Heroes.S04E19.720p.HDTV.X264-DIMENSION" />
49
+ <meta name="keywords" content="svenska,undertexter, Heroes, Heroes.S04E19.720p.HDTV.X264-DIMENSION, subtitles, subtitle, subs, Swedish" />
50
+ <link rel="alternate" href="http://www.subtitlesource.org/latest" type="text/html" title="Latest" />
51
+ <link rel="alternate" title="SubtitleSource RSS Feed" href="http://www.subtitlesource.org/rss/813715/swedish" type="application/rss+xml" /><link rel="search" type="application/opensearchdescription+xml" title="SubtitleSource Search" href="http://www.subtitlesource.org/subtitlesource.xml">
52
+ <link type="text/css" rel="stylesheet" href="http://www.subtitlesource.org/subtitlesource_2.1.css" />
53
+ <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
54
+ <script type="text/javascript" src="http://www.subtitlesource.org/src/adapter/shadowbox-base.js"></script>
55
+ <script type="text/javascript" src="http://www.subtitlesource.org/src/shadowbox.js"></script>
56
+ <script src="http://www.subtitlesource.org/subtitlesource_2.1.js"></script>
57
+ <script type="text/javascript">
58
+ var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
59
+ document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
60
+ </script>
61
+ <script type="text/javascript">
62
+ try {
63
+ var pageTracker = _gat._getTracker("UA-4180459-13");
64
+ pageTracker._trackPageview();
65
+ } catch(err) {}</script>
66
+
67
+ <!-- PUT THIS TAG IN THE head SECTION -->
68
+ <script type='text/javascript' src='http://partner.googleadservices.com/gampad/google_service.js'>
69
+ </script>
70
+ <script type='text/javascript'>
71
+ GS_googleAddAdSenseService("ca-pub-1765042858221475");
72
+ GS_googleEnableAllServices();
73
+ </script>
74
+ <script type='text/javascript'>
75
+
76
+ GA_googleAddSlot("ca-pub-1765042858221475", "SubtitleSource_250x360_1");
77
+ GA_googleAddSlot("ca-pub-1765042858221475", "SubtitleSource_250x360_2");
78
+ GA_googleAddSlot("ca-pub-1765042858221475", "SubtitleSource_250x360_3");
79
+ GA_googleAddSlot("ca-pub-1765042858221475", "SubtitleSource_728x90_BOTTOM");
80
+ GA_googleAddSlot("ca-pub-1765042858221475", "SubtitleSource_728x90_TOP");
81
+ </script>
82
+ <script type='text/javascript'>
83
+ GA_googleFetchAds();
84
+ </script>
85
+ <!-- END OF TAG FOR head SECTION -->
86
+
87
+ </head>
88
+
89
+ <body>
90
+
91
+ <div id="container">
92
+
93
+ <div id="ads">
94
+
95
+ <script language=JavaScript src="http://cperspective.rotator.hadj7.adjuggler.net/servlet/ajrotator/75649/0/vj?z=cperspective&dim=75456&kw=&click="></script><noscript>
96
+ <a href="http://cperspective.rotator.hadj7.adjuggler.net/servlet/ajrotator/75649/0/cc?z=cperspective">
97
+ <img src="http://cperspective.rotator.hadj7.adjuggler.net/servlet/ajrotator/75649/0/vc?z=cperspective&dim=75456&kw=&click=&abr=$imginiframe" width="1" height="1" border="0"></a></noscript>
98
+
99
+ <div class="ad">
100
+ <!-- SubtitleSource_250x360_1 -->
101
+ <script type="text/javascript">
102
+ GA_googleFillSlot("SubtitleSource_250x360_1");
103
+ </script>
104
+ <!-- END SubtitleSource_250x360_1 -->
105
+ </div>
106
+
107
+ <div class="ad">
108
+ <!-- SubtitleSource_250x360_2 -->
109
+ <script type="text/javascript">
110
+ GA_googleFillSlot("SubtitleSource_250x360_2");
111
+ </script>
112
+ <!-- END SubtitleSource_250x360_2 -->
113
+ </div>
114
+
115
+ <div class="ad">
116
+ <!-- SubtitleSource_250x360_3 -->
117
+ <script type="text/javascript">
118
+ GA_googleFillSlot("SubtitleSource_250x360_3");
119
+ </script>
120
+ <!-- END SubtitleSource_250x360_3 -->
121
+ </div>
122
+
123
+
124
+
125
+ </div>
126
+
127
+
128
+ <div id="header">
129
+ <div id="logo">
130
+ <a href="http://www.subtitlesource.org" title="SubtitleSource - Your source for subtitles">
131
+ <img src="http://www.subtitlesource.org/images/logo2.jpg" alt="SubtitleSource">
132
+ </a>
133
+ </div>
134
+
135
+
136
+
137
+ <div class="menu">
138
+ <div class="menu-left"></div>
139
+ <ul class="menu-links">
140
+ <li><a href="http://www.subtitlesource.org/latest" title="Latest subtitles">Latest</a></li>
141
+ <li><a href="http://www.subtitlesource.org/upload" title="Upload subtitles">Upload</a></li>
142
+ <li><a href="http://www.subtitlesource.org/request" title="Request subtitles">Request</a></li>
143
+ <li><a href="http://www.subtitlesource.org/forum/" title="Forum">Forum</a></li>
144
+ <li><a href="http://www.subtitlesource.org/help" title="FAQ">Help</a></li>
145
+ </ul>
146
+ <div class="menu-right"></div>
147
+ </div>
148
+
149
+ <div class="menu">
150
+ <div class="menu-left"></div>
151
+ <ul class="menu-links">
152
+ <li><a href="http://www.subtitlesource.org/forum/ucp.php?mode=login" title="Login at SubtitleSource">Login</a></li>
153
+ </ul>
154
+ <div class="menu-right"></div>
155
+ </div>
156
+
157
+
158
+ <div class="menu">
159
+ <div class="menu-left"></div>
160
+ <ul class="menu-links">
161
+ <li><a href="http://www.subtitlesource.org/tv" title="TV Schedule">TV</a></li>
162
+ </ul>
163
+ <div class="menu-right"></div>
164
+ </div>
165
+
166
+ </div>
167
+
168
+
169
+
170
+ <div id="search_div">
171
+ <form method="get" action="http://www.subtitlesource.org/search.php" />
172
+ <div>
173
+ <img src="http://www.subtitlesource.org/images/search_icon.png" id="search_icon" alt="search" />
174
+ <input type="text" name="q" id="search_field" autocomplete="off" />
175
+ <input type="submit" value="Search " id="search_button" />
176
+ </div>
177
+ </form>
178
+ <br class="clear" />
179
+ <div id="ajax_box"></div>
180
+ </div>
181
+
182
+ <div id="topbanner">
183
+ <!-- SubtitleSource_728x90_TOP -->
184
+ <script type="text/javascript">
185
+ GA_googleFillSlot("SubtitleSource_728x90_TOP");
186
+ </script>
187
+ <!-- END SubtitleSource_728x90_TOP -->
188
+ </div>
189
+
190
+ <br class="clear" />
191
+
192
+ <div id="content-container">
193
+ <div class="content-header"><div id="breadcrumb"><div style="width: 600px; height: 20px; overflow: hidden;float:left;text-align:left;word-wrap: break-word;"><a href="http://www.subtitlesource.org/title/tt0813715" title="Heroes subtitles">Heroes S04E19</a> &raquo; <a href="http://www.subtitlesource.org/release/30041/Heroes.S04E19.720p.HDTV.X264-DIMENSION" title="Heroes.S04E19.720p.HDTV.X264-DIMENSION ">Heroes S04E19 720p HDTV X264-DIMENSION</a></div><div><a href="http://www.subtitlesource.org/subs/57760/Heroes.S04E19.720p.HDTV.X264-DIMENSION" title="Heroes 4x19 DIMENSION undertexter English subtitles">
194
+ <img src="../../images/english.gif" alt="English" ></a> </div></div></div>
195
+ <div class="content"><div class="content-footer"></div></div><a href="http://www.subtitlesource.org/title/tt0813715" alt="Heroes" title="Heroes"><img src="http://www.subtitlesource.org/images/poster/0813715.jpg" id="poster"></a>
196
+ <div id="subtitle-information-box">
197
+ <div id="subtitle-information-top"></div>
198
+ <div id="subtitle-information-center">
199
+ <div id="subtitle-information-padding">
200
+ <script type="text/javascript"><!--
201
+ google_ad_client = "ca-pub-3456872095325034";
202
+ /* Subtitlesource-search */
203
+ google_ad_slot = "6254608855";
204
+ google_ad_width = 234;
205
+ google_ad_height = 60;
206
+ //-->
207
+ </script>
208
+ <script type="text/javascript"
209
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
210
+ </script>
211
+ <div id="download2"><a href="../../download/zip/58699" rel="nofollow" title="Ladda ner">
212
+ <img src="../../images/icon_download2.jpg" alt="Ladda ner" title="Ladda ner"></a><br><script type="text/javascript"><!--
213
+ google_ad_client = "ca-pub-3456872095325034";
214
+ /* Subtitlesource-search */
215
+ google_ad_slot = "6254608855";
216
+ google_ad_width = 234;
217
+ google_ad_height = 60;
218
+ //-->
219
+ </script>
220
+ <script type="text/javascript"
221
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
222
+ </script></br>
223
+
224
+
225
+ <!--/* OpenX Javascript Tag v2.8.2-rc25 */-->
226
+
227
+ <script type='text/javascript'><!--//<![CDATA[
228
+ var m3_u = (location.protocol=='https:'?'https://d1.openx.org/ajs.php':'http://d1.openx.org/ajs.php');
229
+ var m3_r = Math.floor(Math.random()*99999999999);
230
+ if (!document.MAX_used) document.MAX_used = ',';
231
+ document.write ("<scr"+"ipt type='text/javascript' src='"+m3_u);
232
+ document.write ("?zoneid=94689&amp;target=_blank");
233
+ document.write ('&amp;cb=' + m3_r);
234
+ if (document.MAX_used != ',') document.write ("&amp;exclude=" + document.MAX_used);
235
+ document.write (document.charset ? '&amp;charset='+document.charset : (document.characterSet ? '&amp;charset='+document.characterSet : ''));
236
+ document.write ("&amp;loc=" + escape(window.location));
237
+ if (document.referrer) document.write ("&amp;referer=" + escape(document.referrer));
238
+ if (document.context) document.write ("&context=" + escape(document.context));
239
+ if (document.mmm_fo) document.write ("&amp;mmm_fo=1");
240
+ document.write ("'><\/scr"+"ipt>");
241
+ //]]>--></script>
242
+
243
+
244
+ </div>
245
+
246
+ <h1 id="subtitle-information"><span>Svenska undertexter</span> Heroes <span>4x19</span> </h1><h3 id="subtitle-information"><img src="http://www.subtitlesource.org/images/nfo.gif" alt="Release"> <a href="../../release/30041/Heroes.S04E19.720p.HDTV.X264-DIMENSION" title="Heroes.S04E19.720p.HDTV.X264-DIMENSION subtitles">Heroes.S04E19.720p.HDTV.X264-DIMENSION</a></h3>
247
+ </div></div><div id="subtitle-information-bottom"></div></div>
248
+
249
+
250
+
251
+ <div id="subtitle-information-box">
252
+ <div id="subtitle-information-top"></div>
253
+ <div id="subtitle-information-center">
254
+ <div id="subtitle-information-padding">
255
+
256
+ <img src="http://www.subtitlesource.org/images/nohi_small.gif" alt="No Hearing Impaired"> &nbsp; <img src="http://www.subtitlesource.org/images/swedish.gif" alt="Swedish" title="Swedish / svenska"> &nbsp; <strong><img src="http://www.subtitlesource.org/images/cd1.png"> 1 File(s)</strong><br /><ul id="files"><li id="file_d" onmouseover="this.className='tran'" onmouseout="this.className=''"><img src="http://www.subtitlesource.org/images/file.gif"> <a href="../../download/text/58699/1" title="Download Heroes.S04E19.720p.HDTV.X264-DIMENSION.srt" style="color: #666;font-size: 8pt;">Heroes.S04E19.720p.HDTV.X264-DIMENSION.srt</a>&nbsp;&nbsp;<a rel="shadowbox;width=210;height=450" class="option" title="Preview CD1" href="../../preview/58699/1">Preview CD1</a></li></ul></div></div><div id="subtitle-information-bottom"></div></div>
257
+
258
+
259
+ <div style="float:left;"><form action="../../request" method="POST" name="submit">
260
+ <input type="hidden" name="imdb" value="0813715">
261
+ <input type="hidden" name="rid" value="30041">
262
+ <select name="languageselect" onchange="this.form.submit();" style="margin-top: 4px;">
263
+ <option>Request</option><option value="Danish">Danish</option><option value="Norwegian">Norwegian</option><option value="Finnish">Finnish</option><option value="Icelandic">Icelandic</option><option value="Spanish">Spanish</option><option value="French">French</option> </select>
264
+ </form></div>
265
+ <div id="subtitle-information-box">
266
+ <div id="subtitle-information-top"></div>
267
+ <div id="subtitle-information-center">
268
+ <div id="subtitle-information-padding">
269
+
270
+ <table cellspacing=0px cellpadding=3px width=100%><tr><td><a href="http://www.subtitlesource.org/download/zip/58699" title="Download subtitle"><img src="http://www.subtitlesource.org/images/download.gif"></a> 69 downloads&nbsp;&nbsp;&nbsp;<img src="http://www.subtitlesource.org/images/time.gif" alt="Date uploaded"> 2010-03-12 21:48:17</td></tr><tr><td><img src="http://www.subtitlesource.org/images/author.png"> Dvarghamstern &nbsp;&nbsp;&nbsp;<img src="http://www.subtitlesource.org/images/comment2.gif"> <a href="http://www.SweSUB.nu" target="_blank" rel="nofollow">www.SweSUB.nu</a></td></tr></table>
271
+ </div></div><div id="subtitle-information-bottom"></div></div>
272
+
273
+
274
+
275
+ <br clear="both"><br clear="both">
276
+
277
+ <div style="float:right;padding-right: 8px;"><a href="http://www.swesub.nu/page.php?9" target="_blank"><img src="http://www.subtitlesource.org/images/ssg.jpg"></a></div>
278
+
279
+
280
+
281
+ <form method="post" name="comment" action="../58699/Heroes.S04E19.720p.HDTV.X264-DIMENSION" style="padding:0;margin:0;"><input type="text" size="12" maxlength="40" name="username" value="Anonymous" style="background: #fff;border:1px solid #bbb; "> Name<br />
282
+ <textarea name="text" COLS=34 ROWS=4></textarea><br />
283
+
284
+ <input type="hidden" name="url" style="visibility: hidden;">
285
+
286
+ <button onclick="document.comment.submit();">Add comment</button>
287
+
288
+ </form>
289
+
290
+
291
+
292
+ <br clear="both">
293
+
294
+ <br clear="both">
295
+ </div>
296
+
297
+ <div id="footerbanner">
298
+ <!-- PUT THIS TAG IN DESIRED LOCATION OF SLOT SubtitleSource_728x90_BOTTOM -->
299
+ <script type="text/javascript">
300
+ GA_googleFillSlot("SubtitleSource_728x90_BOTTOM");
301
+ </script>
302
+ <!-- END OF TAG FOR SLOT SubtitleSource_728x90_BOTTOM -->
303
+ </div>
304
+
305
+ <br class="clear" />
306
+
307
+ <ul id="tag-cloud"><li><a href="http://www.subtitlesource.org/search/Bad+Teacher" title="Bad Teacher subtitles" class="tag0">Bad Teacher</a></li>
308
+ <li><a href="http://www.subtitlesource.org/title/tt773262" title="Dexter subtitles" class="tag0">Dexter</a></li>
309
+ <li><a href="http://www.subtitlesource.org/title/tt1462059" title="Falling Skies subtitles" class="tag0">Falling Skies</a></li>
310
+ <li><a href="http://www.subtitlesource.org/title/tt1596343" title="Fast Five subtitles" class="tag0">Fast Five</a></li>
311
+ <li><a href="http://www.subtitlesource.org/search/Futurama" title="Futurama subtitles" class="tag0">Futurama</a></li>
312
+ <li><a href="http://www.subtitlesource.org/title/tt944947" title="Game of Thrones subtitles" class="tag1">Game of Thrones</a></li>
313
+ <li><a href="http://www.subtitlesource.org/title/tt480687" title="Hall Pass subtitles" class="tag0">Hall Pass</a></li>
314
+ <li><a href="http://www.subtitlesource.org/search/Harry+Potter" title="Harry Potter subtitles" class="tag1">Harry Potter</a></li>
315
+ <li><a href="http://www.subtitlesource.org/search/House" title="House subtitles" class="tag0">House</a></li>
316
+ <li><a href="http://www.subtitlesource.org/search/Ironclad" title="Ironclad subtitles" class="tag2">Ironclad</a></li>
317
+ <li><a href="http://www.subtitlesource.org/title/tt1564367" title="Just Go With It subtitles" class="tag0">Just Go With It</a></li>
318
+ <li><a href="http://www.subtitlesource.org/title/tt1103987" title="Leverage subtitles" class="tag0">Leverage</a></li>
319
+ <li><a href="http://www.subtitlesource.org/title/tt1219289" title="Limitless subtitles" class="tag1">Limitless</a></li>
320
+ <li><a href="http://www.subtitlesource.org/search/Paul" title="Paul subtitles" class="tag0">Paul</a></li>
321
+ <li><a href="http://www.subtitlesource.org/title/tt1192628" title="Rango subtitles" class="tag0">Rango</a></li>
322
+ <li><a href="http://www.subtitlesource.org/search/Rio" title="Rio subtitles" class="tag1">Rio</a></li>
323
+ <li><a href="http://www.subtitlesource.org/title/tt945513" title="Source Code subtitles" class="tag4">Source Code</a></li>
324
+ <li><a href="http://www.subtitlesource.org/search/South+Park" title="South Park subtitles" class="tag0">South Park</a></li>
325
+ <li><a href="http://www.subtitlesource.org/title/tt978764" title="Sucker Punch subtitles" class="tag0">Sucker Punch</a></li>
326
+ <li><a href="http://www.subtitlesource.org/title/tt460681" title="Supernatural subtitles" class="tag0">Supernatural</a></li>
327
+ <li><a href="http://www.subtitlesource.org/search/Top+Gear" title="Top Gear subtitles" class="tag0">Top Gear</a></li>
328
+ <li><a href="http://www.subtitlesource.org/title/tt485301" title="Torchwood subtitles" class="tag0">Torchwood</a></li>
329
+ <li><a href="http://www.subtitlesource.org/search/Transformers+3" title="Transformers 3 subtitles" class="tag0">Transformers 3</a></li>
330
+ <li><a href="http://www.subtitlesource.org/search/Transformers" title="Transformers subtitles" class="tag0">Transformers</a></li>
331
+ <li><a href="http://www.subtitlesource.org/title/tt844441" title="True Blood subtitles" class="tag2">True Blood</a></li>
332
+ <li><a href="http://www.subtitlesource.org/search/True+Grit" title="True Grit subtitles" class="tag0">True Grit</a></li>
333
+ <li><a href="http://www.subtitlesource.org/search/Unknown" title="Unknown subtitles" class="tag0">Unknown</a></li>
334
+ <li><a href="http://www.subtitlesource.org/title/tt439100" title="Weeds subtitles" class="tag0">Weeds</a></li>
335
+ <li><a href="http://www.subtitlesource.org/search/X-men+First+Class" title="X-men First Class subtitles" class="tag3">X-men First Class</a></li>
336
+ <li><a href="http://www.subtitlesource.org/search/X-men" title="X-men subtitles" class="tag0">X-men</a></li>
337
+ </ul>
338
+ <div id="footer">
339
+ <div style="float:left; padding-top: 5px;">
340
+ <script type="text/javascript">addthis_pub = 'Sorku';</script>
341
+ <a href="http://www.addthis.com/bookmark.php" onmouseover="return addthis_open(this, '', '[URL]', '[TITLE]')" onmouseout="addthis_close()" onclick="return addthis_sendto()" rel="nofollow">
342
+ <img src="http://s7.addthis.com/button1-share.gif" width="125" height="16" border="0" alt="" /></a>
343
+ <script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
344
+ </div>
345
+
346
+ <div style="font-size: 10px; position: float; float: right; padding-bottom: 10px; width: 400px; text-align: right; color: #ccc;">
347
+ <a href="http://addsubtitle.com/" title="add subtitle to movie" target="_blank">How to add subtitle to DVD</a> |
348
+ <a href="http://tellspell.com/" title="how to spell" target="_blank">spell checking</a> &nbsp; | &nbsp;
349
+ <a href="http://www.subtitlesource.org/help/legal" title="Privacy Policy" target="_blank">Privacy Policy</a><a href="http://nyheternadirekt.se" target="_top"> <strong>Dagens Nyheter</strong></a><a href="http://hblogg.se" target="_top"><strong> skapa en BLOGG</strong></a>
350
+ <span style="font-size: 10px; color: #888;">
351
+ &copy; 2007-2010 <a href="http://www.subtitlesource.org/" title="Subtitles">SubtitleSource.org</a><br />
352
+ </span>
353
+ </div>
354
+
355
+
356
+ </div>
357
+ </div>
358
+
359
+
360
+
361
+ <!-- ca-pub-1765042858221475/SS-POP -->
362
+ <script type='text/javascript'>
363
+ GA_googleFillSlot("SS-POP");
364
+ </script>
365
+ </body>
366
+ </html>
367
+
368
+ http_version: "1.1"