subtitle_source 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -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"