Add filter for TorrentHound results page.
authorDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Sun, 21 Dec 2014 20:43:39 +0000 (21:43 +0100)
committerDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Sun, 21 Dec 2014 20:43:39 +0000 (21:43 +0100)
src/main/java/net/pterodactylus/rhynodge/filters/torrents/TorrentHoundFilter.java [new file with mode: 0644]
src/test/java/net/pterodactylus/rhynodge/filters/torrents/TorrentHoundFilterTest.java [new file with mode: 0644]
src/test/resources/net/pterodactylus/rhynodge/filters/torrents/torrent-hound-results.html [new file with mode: 0644]

diff --git a/src/main/java/net/pterodactylus/rhynodge/filters/torrents/TorrentHoundFilter.java b/src/main/java/net/pterodactylus/rhynodge/filters/torrents/TorrentHoundFilter.java
new file mode 100644 (file)
index 0000000..4016a45
--- /dev/null
@@ -0,0 +1,74 @@
+package net.pterodactylus.rhynodge.filters.torrents;
+
+import java.util.List;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.stream.Collectors;
+
+import net.pterodactylus.rhynodge.filters.TorrentSiteFilter;
+
+import org.jsoup.nodes.Document;
+import org.jsoup.nodes.Element;
+import org.jsoup.nodes.Node;
+import org.jsoup.parser.Tag;
+import org.jsoup.select.Elements;
+
+/**
+ * {@link TorrentSiteFilter} implementation that can parse TorrentHound
+ * results.
+ *
+ * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
+ */
+public class TorrentHoundFilter extends TorrentSiteFilter {
+
+       @Override
+       protected Elements getDataRows(Document document) {
+               return document.select("table.searchtable:gt(0) tr:gt(0)");
+       }
+
+       @Override
+       protected String extractName(Element dataRow) {
+               return dataRow.select("td > a").stream().map(element -> {
+                       AtomicBoolean foundBr = new AtomicBoolean(false);
+                       List<Node> nodes = element.childNodes().stream().filter(textNode -> {
+                               if (textNode.nodeName().equals("br")) {
+                                       foundBr.set(true);
+                               }
+                               return !foundBr.get();
+                       }).collect(Collectors.toList());
+                       Element e = new Element(Tag.valueOf("span"), "");
+                       nodes.stream().forEach(node -> e.appendChild(node));
+                       return e.text();
+               }).findFirst().get();
+       }
+
+       @Override
+       protected String extractSize(Element dataRow) {
+               return dataRow.select("span.size").text();
+       }
+
+       @Override
+       protected String extractMagnetUri(Element dataRow) {
+               return dataRow.select("div.sfloat a[title=Magnet download]").attr("href");
+       }
+
+       @Override
+       protected String extractDownloadUri(Element dataRow) {
+               return dataRow.select("div.sfloat a[title=.torrent download]").attr("href");
+       }
+
+       @Override
+       protected int extractFileCount(Element dataRow) {
+               return 0;
+       }
+
+       @Override
+       protected int extractSeedCount(Element dataRow) {
+               return Integer.valueOf(dataRow.select("span.seeds").text().replaceAll("[^0-9]", ""));
+       }
+
+       @Override
+       protected int extractLeechCount(Element dataRow) {
+               return Integer.valueOf(dataRow.select("span.leeches").text().replaceAll("[^0-9]", ""));
+       }
+
+}
diff --git a/src/test/java/net/pterodactylus/rhynodge/filters/torrents/TorrentHoundFilterTest.java b/src/test/java/net/pterodactylus/rhynodge/filters/torrents/TorrentHoundFilterTest.java
new file mode 100644 (file)
index 0000000..499999b
--- /dev/null
@@ -0,0 +1,40 @@
+package net.pterodactylus.rhynodge.filters.torrents;
+
+import java.io.IOException;
+
+import net.pterodactylus.rhynodge.State;
+import net.pterodactylus.rhynodge.states.HtmlState;
+import net.pterodactylus.rhynodge.states.TorrentState;
+
+import org.hamcrest.MatcherAssert;
+import org.hamcrest.Matchers;
+import org.jsoup.Jsoup;
+import org.jsoup.nodes.Document;
+import org.junit.Test;
+
+/**
+ * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
+ */
+public class TorrentHoundFilterTest {
+
+       private final TorrentHoundFilter filter = new TorrentHoundFilter();
+
+       @Test
+       public void canParseResults() throws IOException {
+               Document document = Jsoup.parse(getClass().getResourceAsStream("torrent-hound-results.html"), "UTF-8", "http://www.torrenthound.com/search/1/Ubuntu+14+04+amd64+ISO/added:desc");
+               HtmlState htmlState = new HtmlState("http://www.torrenthound.com/search/1/Ubuntu+14+04+amd64+ISO/added:desc", document);
+               State newState = filter.filter(htmlState);
+               MatcherAssert.assertThat(newState, Matchers.notNullValue());
+               MatcherAssert.assertThat(newState, Matchers.instanceOf(TorrentState.class));
+               TorrentState torrentState = (TorrentState) newState;
+               MatcherAssert.assertThat(torrentState.torrentFiles(), Matchers.hasSize(5));
+               MatcherAssert.assertThat(torrentState.torrentFiles(), Matchers.contains(
+                               TorrentMatcher.isTorrent("Ubuntu 14 04 1 server amd64 ISO", "572.0 Mb", "magnet:?xl=599785472&xt=urn:btih:2d066c94480adcf52bfd1185a75eb4ddc1777673&dn=ubuntu+14+04+1+server+amd64+iso&tr=udp%3A%2F%2Ftracker.istole.it%3A80&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80", 5, 3),
+                               TorrentMatcher.isTorrent("Ubuntu 14 04 1 desktop amd64 ISO", "981.0 Mb", 34, 23),
+                               TorrentMatcher.isTorrent("Ubuntu 14 04 1 desktop amd64+mac ISO", "979.0 Mb", 1, 0),
+                               TorrentMatcher.isTorrent("Ubuntu gnome 14 04 1 desktop amd64 ISO", "935.0 Mb", 1, 1),
+                               TorrentMatcher.isTorrent("Ubuntu gnome 14.04 beta1 desktop amd64.ISO", "890.0 Mb", 2, 0)
+               ));
+       }
+
+}
diff --git a/src/test/resources/net/pterodactylus/rhynodge/filters/torrents/torrent-hound-results.html b/src/test/resources/net/pterodactylus/rhynodge/filters/torrents/torrent-hound-results.html
new file mode 100644 (file)
index 0000000..c1ac471
--- /dev/null
@@ -0,0 +1,260 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+
+    <link href="http://i.torrenthound.com/layout.css?v=2.4" title="LayoutCSS" rel="stylesheet" type="text/css"/>
+    <script type="text/javascript" src="http://i.torrenthound.com/js/thound.js?v=2.0"></script>
+
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <meta name="Cache-Control" content="Public" />
+    <meta name="Distribution" content="Global" />
+    <meta name="Robots" content="index,follow" />
+    <meta name="Revisit-After" content="2 Days" />
+    <link rel="canonical" href="http://www.torrenthound.com/search/Ubuntu+14+04+amd64+ISO" />
+    <link rel="shortcut icon" type="image/ico" href="http://i.torrenthound.com/favicon.ico" />
+    <title>Ubuntu 14 04 Amd64 ISO Torrent results</title>
+</head>
+<body >
+<script language="javascript" type="text/javascript">
+    var ids='43644';
+</script>
+<div id="center" align="center">
+    <!-- alignment DIV -->
+    <div id="main" align="left">
+        <!-- Body DIV -->
+        <div id="header">
+            <div class="subheader">
+                <a href="/" class="homeLink"></a>
+                <div class="header_left"></div>
+                <div class="header_logo"></div>
+                <div class="header_menu"><img alt="Menu" src="http://i.torrenthound.com/layout/menu_up.gif" onmouseover="this.src='http://i.torrenthound.com/layout/menu_over.gif'; goMenu(); return true;" onmouseout="this.src='http://i.torrenthound.com/layout/menu_up.gif'; onButton = false; return true;" onmousedown="this.src='http://i.torrenthound.com/layout/menu_down.gif'; return true;" onmouseup="this.src='http://i.torrenthound.com/layout/menu_over.gif'; return true;"></div><br />
+                <div class="header_right"></div>
+            </div>
+            <div id="searchdiv">
+                <div class="menu" id="menu" onmouseover="onDiv=true;" onmouseout="onDiv=false;">
+                    <div class="mhead">
+                    </div>
+                    <div class="mbody">
+                        <ul><li><a href="/">home</a></li>
+                            <li><a href="/contact" >contact</a></li>
+                            <li><a href="/faq" >faq</a></li>
+                            <li><a href="/upload">upload a torrent</a></li>
+                            <li><a href="/legal">legal</a></li>
+                            <li><a href="/privacy">privacy policy</a></li>
+                            <li><a href="/terms">terms of use</a></li>
+                            <li><a href="/news">news</a></li>
+                        </ul>
+                    </div>
+                    <div class="mfooter">
+                    </div>
+                </div>
+                <center>
+                    <form id="searchform" action="/look" method="post">
+                        <input type="text" id="s" name="s" value="Ubuntu 14 04 amd64 ISO" maxlength="80"/><img alt="Search Button" id="si" src="http://i.torrenthound.com/layout/sb_up.gif" onmouseover="this.src='/layout/sb_over.gif'; onButton = true; return true;" onmouseout="this.src='/layout/sb_up.gif'; onButton = false; return true;" onclick="document.getElementById('searchform').submit(); return true;"/>
+                    </form>
+                </center>
+                <div class="undersearch">Like the site? You can <a href="javascript:void(0)" onClick="return ATBookmarkApp.addBookmark(this)">Bookmark us</a>, tag <a href="//twitter.com/search/realtime?q=torrenthound" rel="nofollow" target="_blank">#torrenthound</a><img src="http://i.torrenthound.com/layout/new.gif" alt="new"/>on twitter or send us some <a href="/contact">feedback</a>!</div>
+            </div>
+        </div>
+        <div id="maindiv">
+
+            <script async type="text/javascript" src="http://bfd69dd9.se/?placement=179291"></script>
+
+
+
+            <div id="subheader">
+                <img src="http://i.torrenthound.com/layout/th_thumb.gif" id="th_thumb" alt="layout"/><h1>Ubuntu 14 04 amd64 ISO Torrents</h1><span id="subsearch">5 torrents found</span><a href="/rss.php?s=Ubuntu 14 04 amd64 ISO"><img src="http://i.torrenthound.com/images/rss.png" id="rss_thumb" alt="layout"></a>            </div>                    <div id="sr">
+            <div id="searchoutput">
+                <table class="searchtable" cellpadding="0" cellspacing="0" border="0" width="100%">
+                    <tr class="head">
+                        <td width="645px" class="stitle">Direct Downloads</td><td><a href="javacript: return false;"> <img src="http://i.torrenthound.com/layout/sort_desc.gif" alt="Sort Descending" />Added</a></td><td colspan="2"><a href="javacript: return false;">Ratio</a></td><td><a href="javacript: return false;">tHR</td>
+                    </tr>
+                    <tr>
+                        <td><a href="/out.php?bouturl=aHR0cDovL3d3dy5lYXN5ZG93bmxvYWRub3cuY29tL3VidW50dSAxNCAwNCAxIHNlcnZlciBhbWQ2NCBpc28/dXRtX3NvdXJjZT10b3JyZW50JnV0bV9tZWRpdW09dGV4dGxpbmsmdXRtX2NhbXBhaWduPWJldGEx" target="_BLANK"  rel="nofollow"><span class="st">Ubuntu</span> <span class="st">14</span> <span class="st">04</span> 1 server <span class="st">amd64</span> <span class="st">ISO</span><br /><span class="cat">Sponsored > New Releases</span></a></td>
+                        <td class="t"><span class="added">Wednesday<br /><span style="color: #999999; font-size: 90%;">3.6 days old</span></span></td>
+
+                        <td class="t"  colspan="2"><span class="added">Direct</span></td>
+                        <td class="thr"><span style="color: rgb(32,227,24);">98<sup>%</sup></span></td>
+                    </tr>
+
+                    <tr>
+                        <td><a href="/out.php?bouturl=aHR0cDovL3d3dy5lYXN5ZG93bmxvYWRub3cuY29tL3VidW50dSAxNCAwNCAxIGRlc2t0b3AgYW1kNjQgaXNvP3V0bV9zb3VyY2U9dG9ycmVudCZ1dG1fbWVkaXVtPXRleHRsaW5rJnV0bV9jYW1wYWlnbj1iZXRhMQ==" target="_BLANK"  rel="nofollow"><span class="st">Ubuntu</span> <span class="st">14</span> <span class="st">04</span> 1 desktop <span class="st">amd64</span> <span class="st">ISO</span><br /><span class="cat">Sponsored > New Releases</span></a></td>
+                        <td class="t"><span class="added">Today<br /><span style="color: #999999; font-size: 90%;">54.6 mins old</span></span></td>
+
+                        <td class="t"  colspan="2"><span class="added">Direct</span></td>
+                        <td class="thr"><span style="color: rgb(24,227,24);">100<sup>%</sup></span></td>
+                    </tr>
+
+                    <tr>
+                        <td><a href="/out.php?bouturl=aHR0cDovL3d3dy5lYXN5ZG93bmxvYWRub3cuY29tL3VidW50dSAxNCAwNCAxIGRlc2t0b3AgYW1kNjQrbWFjIGlzbz91dG1fc291cmNlPXRvcnJlbnQmdXRtX21lZGl1bT10ZXh0bGluayZ1dG1fY2FtcGFpZ249YmV0YTE=" target="_BLANK"  rel="nofollow"><span class="st">Ubuntu</span> <span class="st">14</span> <span class="st">04</span> 1 desktop <span class="st">amd64</span>+mac <span class="st">ISO</span><br /><span class="cat">Sponsored > New Releases</span></a></td>
+                        <td class="t"><span class="added">Today<br /><span style="color: #999999; font-size: 90%;">9.6 hrs old</span></span></td>
+
+                        <td class="t"  colspan="2"><span class="added">Direct</span></td>
+                        <td class="thr"><span style="color: rgb(28,227,24);">99<sup>%</sup></span></td>
+                    </tr>
+
+                    <tr>
+                        <td><a href="/out.php?bouturl=aHR0cDovL3d3dy5lYXN5ZG93bmxvYWRub3cuY29tL3VidW50dSBnbm9tZSAxNCAwNCAxIGRlc2t0b3AgYW1kNjQgaXNvP3V0bV9zb3VyY2U9dG9ycmVudCZ1dG1fbWVkaXVtPXRleHRsaW5rJnV0bV9jYW1wYWlnbj1iZXRhMQ==" target="_BLANK"  rel="nofollow"><span class="st">Ubuntu</span> gnome <span class="st">14</span> <span class="st">04</span> 1 desktop <span class="st">amd64</span> <span class="st">ISO</span><br /><span class="cat">Sponsored > New Releases</span></a></td>
+                        <td class="t"><span class="added">Tuesday<br /><span style="color: #999999; font-size: 90%;">4.6 days old</span></span></td>
+
+                        <td class="t"  colspan="2"><span class="added">Direct</span></td>
+                        <td class="thr"><span style="color: rgb(24,227,24);">100<sup>%</sup></span></td>
+                    </tr>
+
+                    <tr>
+                        <td><a href="http://www.torrents.net/find/Ubuntu+14+04+amd64+ISO/" target="_BLANK"><span class="st">Ubuntu</span> <span class="st">14</span> <span class="st">04</span> <span class="st">amd64</span> <span class="st">ISO</span> torrent<br /><span class="cat">Sponsored > Unsorted</span></a></td>
+                        <td class="t"><span class="added">Today<br /><span style="color: #999999; font-size: 90%;">7.3 hrs old</span></span></td>
+
+                        <td class="t"><span class="seeds">812&uarr; </span></td><td class="t"><span class="leeches"> 194&darr;</span></td>
+                        <td class="thr"><span style="color: rgb(125,227,24);">75<sup>%</sup></span></td>
+                    </tr>
+                    <tr><td colspan="6" class="foot">*sponsored results shown above</td></tr>
+                </table><br />                                 <table class="searchtable" cellpadding="0" cellspacing="0" border="0" width="100%">
+                <tr class="head">
+                    <td width="645px" class="stitle">Torrent Title<div class="sfloat"><span class="icon">&#59297;</span>Magnet - <span class="icon dl">&#59256;</span>Torrent</div></td><td><a href="/search/1/Ubuntu+14+04+amd64+ISO/added:asc"> <img src="http://i.torrenthound.com/layout/sort_desc.gif" alt="Sort Descending" />Added</a></td><td><a href="/search/1/Ubuntu+14+04+amd64+ISO/totalsize:desc">Size</a></td><td colspan="2"><a href="/search/1/Ubuntu+14+04+amd64+ISO/seeds:desc">Ratio</a></td><td><a href="/search/1/Ubuntu+14+04+amd64+ISO/thr:desc">tHR</a></td>
+                </tr>
+                <tr>
+                    <td>
+                        <div class="sfloat">
+                            <a href="magnet:?xl=599785472&xt=urn:btih:2d066c94480adcf52bfd1185a75eb4ddc1777673&dn=ubuntu+14+04+1+server+amd64+iso&tr=udp%3A%2F%2Ftracker.istole.it%3A80&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80" title="Magnet download"><span class="icon">&#59297;</span></a>
+                            <a href="/torrent/2d066c94480adcf52bfd1185a75eb4ddc1777673" title=".torrent download"><span class="icon dl">&#59256;</span></a>
+                        </div><a href="/hash/2d066c94480adcf52bfd1185a75eb4ddc1777673/torrent-info/ubuntu-14-04-1-server-amd64-iso"><span class="st">Ubuntu</span> <span class="st">14</span> <span class="st">04</span> 1 server <span class="st">amd64</span> <span class="st">ISO</span><br /><span class="cat">Applications</span></a></td>
+                    <td class="t"><span class="added">25th Jul, 2014<br /><span style="color: #999999; font-size: 90%;">21.3 wks old</span></span></td>
+                    <td><span class="size">572.0 Mb</span></td>
+                    <td class="t"><span class="seeds">5&uarr; </span></td><td class="t"><span class="leeches"> 3&darr;</span></td>
+                    <td class="thr"><span style="color: silver;">NA</span></td>
+                </tr>
+
+                <tr>
+                    <td>
+                        <div class="sfloat">
+                            <a href="magnet:?xl=1028653056&xt=urn:btih:cb84ccc10f296df72d6c40ba7a07c178a4323a14&dn=ubuntu+14+04+1+desktop+amd64+iso&tr=udp%3A%2F%2Ftracker.istole.it%3A80&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80" title="Magnet download"><span class="icon">&#59297;</span></a>
+                            <a href="/torrent/cb84ccc10f296df72d6c40ba7a07c178a4323a14" title=".torrent download"><span class="icon dl">&#59256;</span></a>
+                        </div><a href="/hash/cb84ccc10f296df72d6c40ba7a07c178a4323a14/torrent-info/ubuntu-14-04-1-desktop-amd64-iso"><span class="st">Ubuntu</span> <span class="st">14</span> <span class="st">04</span> 1 desktop <span class="st">amd64</span> <span class="st">ISO</span><br /><span class="cat">Applications</span></a></td>
+                    <td class="t"><span class="added">25th Jul, 2014<br /><span style="color: #999999; font-size: 90%;">21.3 wks old</span></span></td>
+                    <td><span class="size">981.0 Mb</span></td>
+                    <td class="t"><span class="seeds">34&uarr; </span></td><td class="t"><span class="leeches"> 23&darr;</span></td>
+                    <td class="thr"><span style="color: silver;">NA</span></td>
+                </tr>
+
+                <tr>
+                    <td>
+                        <div class="sfloat">
+                            <a href="magnet:?xl=1026555904&xt=urn:btih:a9a82f7030669ba4f61dc684250c1dfd7e8785da&dn=ubuntu+14+04+1+desktop+amd64%2Bmac+iso&tr=udp%3A%2F%2Ftracker.istole.it%3A80&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80" title="Magnet download"><span class="icon">&#59297;</span></a>
+                            <a href="/torrent/a9a82f7030669ba4f61dc684250c1dfd7e8785da" title=".torrent download"><span class="icon dl">&#59256;</span></a>
+                        </div><a href="/hash/a9a82f7030669ba4f61dc684250c1dfd7e8785da/torrent-info/ubuntu-14-04-1-desktop-amd64%2Bmac-iso"><span class="st">Ubuntu</span> <span class="st">14</span> <span class="st">04</span> 1 desktop <span class="st">amd64</span>+mac <span class="st">ISO</span><br /><span class="cat">Applications</span></a></td>
+                    <td class="t"><span class="added">25th Jul, 2014<br /><span style="color: #999999; font-size: 90%;">21.3 wks old</span></span></td>
+                    <td><span class="size">979.0 Mb</span></td>
+                    <td class="t"><span class="seeds">1&uarr; </span></td><td class="t"><span class="leeches"> 0&darr;</span></td>
+                    <td class="thr"><span style="color: silver;">NA</span></td>
+                </tr>
+
+                <tr>
+                    <td>
+                        <div class="sfloat">
+                            <a href="magnet:?xl=980418560&xt=urn:btih:46308e4737cb9ddd466a2e5e805dcad1a66d232b&dn=ubuntu+gnome+14+04+1+desktop+amd64+iso&tr=udp%3A%2F%2Ftracker.istole.it%3A80&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80" title="Magnet download"><span class="icon">&#59297;</span></a>
+                            <a href="/torrent/46308e4737cb9ddd466a2e5e805dcad1a66d232b" title=".torrent download"><span class="icon dl">&#59256;</span></a>
+                        </div><a href="/hash/46308e4737cb9ddd466a2e5e805dcad1a66d232b/torrent-info/ubuntu-gnome-14-04-1-desktop-amd64-iso"><span class="st">Ubuntu</span> gnome <span class="st">14</span> <span class="st">04</span> 1 desktop <span class="st">amd64</span> <span class="st">ISO</span><br /><span class="cat">Applications</span></a></td>
+                    <td class="t"><span class="added">25th Jul, 2014<br /><span style="color: #999999; font-size: 90%;">21.3 wks old</span></span></td>
+                    <td><span class="size">935.0 Mb</span></td>
+                    <td class="t"><span class="seeds">1&uarr; </span></td><td class="t"><span class="leeches"> 1&darr;</span></td>
+                    <td class="thr"><span style="color: silver;">NA</span></td>
+                </tr>
+
+                <tr>
+                    <td>
+                        <div class="sfloat">
+                            <a href="magnet:?xl=933232640&xt=urn:btih:baab5076469a52ea9f0d3eeae8263f154da2fbab&dn=ubuntu+gnome+14.04+beta1+desktop+amd64.iso&tr=udp%3A%2F%2Ftracker.istole.it%3A80&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80" title="Magnet download"><span class="icon">&#59297;</span></a>
+                            <a href="/torrent/baab5076469a52ea9f0d3eeae8263f154da2fbab" title=".torrent download"><span class="icon dl">&#59256;</span></a>
+                        </div><a href="/hash/baab5076469a52ea9f0d3eeae8263f154da2fbab/torrent-info/ubuntu-gnome-14.04-beta1-desktop-amd64.iso"><span class="st">Ubuntu</span> gnome <span class="st">14</span>.<span class="st">04</span> beta1 desktop <span class="st">amd64</span>.<span class="st">ISO</span><br /><span class="cat">Applications</span></a></td>
+                    <td class="t"><span class="added">14th Apr, 2014<br /><span style="color: #999999; font-size: 90%;">35.8 wks old</span></span></td>
+                    <td><span class="size">890.0 Mb</span></td>
+                    <td class="t"><span class="seeds">2&uarr; </span></td><td class="t"><span class="leeches"> 0&darr;</span></td>
+                    <td class="thr"><span style="color: silver;">NA</span></td>
+                </tr>
+            </table>
+                <!-- searchoutput end -->
+            </div>
+            <div class="pagediv" align="center" style="top: 35px;">
+                <ul class="ps">
+                    <li>&laquo; Previous</li><li class="centerpage"><i>&nbsp;</i><i>&nbsp;</i><i>&nbsp;</i>&nbsp;[&nbsp;1&nbsp;]&nbsp;<i>&nbsp;</i><i>&nbsp;</i><i>&nbsp;</i></li><li>Next &raquo;</li>
+                </ul>
+            </div>
+            <br style="clear: both;" />
+            <div class="pagediv, searchtable" align="right" style="font-size: 12px; padding: 4px; border: none;"><a href="http://torrentz.eu/search?f=Ubuntu+14+04+amd64+ISO" target="_blank">+ Find more results at torrentz.eu</a>
+            </div>
+            <br style="clear: both;" />
+
+            <!-- sr end -->
+        </div>
+            <div style="margin-bottom: 45px;">
+                <div class="topspot" style="margin: 14px 0px 4px 0px;">
+                    <a target="_blank" href="http://www.torrenthound.com/out.php?outurl=http%3A%2F%2Fbtguard.com%2F%3Fa%3Dhound">
+                        <img src="http://i.torrenthound.com/images/XmkuP.gif" />
+                    </a>
+                    <div style="text-align:center; width: 100%; font-size: 10px; color: #666666; font-family: 'Trebuchet MS', Verdana; clear: both; margin: 3px;">▲ Advertisement▲ </div>
+                </div>
+
+
+                <div class="rf" style="text-align: center; border: none;">
+
+                </div>
+                <div class="rf">
+                    <h4>Recent Searches:</h4>
+                    <p>
+                        <a href="/search/hodv+21026" title="hodv 21026">hodv 21026</a>
+                        <a href="/search/elf+2003" title="elf 2003">elf 2003</a>
+                        <a href="/search/office+365+nl" title="office 365 nl">office 365 nl</a>
+                        <a href="/search/TRANSFORMERS+4" title="TRANSFORMERS 4">TRANSFORMERS 4</a>
+                        <a href="/search/Janne+Holan" title="Janne Holan">Janne Holan</a>
+                        <a href="/search/the+secret+of+convict+lake" title="the secret of convict lake">the secret of convict lake</a>
+                        <a href="/search/genio+creativo" title="genio creativo">genio creativo</a>
+                        <a href="/search/rihanna+music" title="rihanna music">rihanna music</a>
+                        <a href="/search/g+r+l" title="g r l">g r l</a>
+                        <a href="/search/urps+019" title="urps 019">urps 019</a>
+                        <a href="/search/The+Walking+Dead+S05E02+720p" title="The Walking Dead S05E02 720p">The Walking Dead S05E02 720p</a>
+                        <a href="/search/insides+jon+hopkins" title="insides jon hopkins">insides jon hopkins</a>
+                        <a href="/search/sapthamasree+thaskara" title="sapthamasree thaskara">sapthamasree thaskara</a>
+                        <a href="/search/cristina+schmidt" title="cristina schmidt">cristina schmidt</a>
+                        <a href="/search/arrow+s03e01" title="arrow s03e01">arrow s03e01</a>
+                        <a href="/search/sketchup+2015" title="sketchup 2015">sketchup 2015</a>
+                        <a href="/search/cfnm" title="cfnm">cfnm</a>
+                        <a href="/search/law+order+criminal+season+6" title="law order criminal season 6">law order criminal season 6</a>
+                        <a href="/search/dasd+274" title="dasd 274">dasd 274</a>
+                        <a href="/search/downton+special" title="downton special">downton special</a>
+                        <a href="/search/now+88" title="now 88">now 88</a>
+                        <a href="/search/embertone" title="embertone">embertone</a>
+                        <a href="/search/snis+158" title="snis 158">snis 158</a>
+                        <a href="/search/sika+02" title="sika 02">sika 02</a>
+                        <a href="/search/casino+royale" title="casino royale">casino royale</a>
+                        <a href="/search/scorpion+qoq" title="scorpion qoq">scorpion qoq</a>
+                        <a href="/search/op+240" title="op 240">op 240</a>
+                        <a href="/search/grl" title="grl">grl</a>
+                        <a href="/search/The+Wild+Blue+Yonder+2005" title="The Wild Blue Yonder 2005">The Wild Blue Yonder 2005</a>
+                        <a href="/search/utorrent+accelerator+2015" title="utorrent accelerator 2015">utorrent accelerator 2015</a>
+                    </p>
+                </div><!-- spacer --></div>
+            <br style="clear: both;" />
+        </div>
+        <div id="footer"><span class="gen">(generated in 1.86 ms on web2)</span>
+            <div class="footer_logo"></div>
+        </div>
+        <!-- Body DIV END -->
+    </div>
+    <!-- alignment DIV END -->
+    <div style="height: 200px;"><!-- spacer --></div>
+</div>
+
+<script type="text/javascript">
+    var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
+    document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
+</script>
+<script type="text/javascript">
+    try {
+        var pageTracker = _gat._getTracker("UA-7255712-1");
+        pageTracker._trackPageview();
+    } catch(err) {}
+</script>
+</body>
+</html>
+