diff --git a/src/searchengine.qrc b/src/searchengine.qrc index 2f94cae5f..35dea1b8a 100644 --- a/src/searchengine.qrc +++ b/src/searchengine.qrc @@ -5,35 +5,11 @@ searchengine/nova/nova2.py searchengine/nova/novaprinter.py searchengine/nova/socks.py - searchengine/nova/engines/btdb.png - searchengine/nova/engines/btdb.py - searchengine/nova/engines/demonoid.png - searchengine/nova/engines/demonoid.py - searchengine/nova/engines/legittorrents.png - searchengine/nova/engines/legittorrents.py - searchengine/nova/engines/piratebay.png - searchengine/nova/engines/piratebay.py - searchengine/nova/engines/torlock.png - searchengine/nova/engines/torlock.py - searchengine/nova/engines/torrentz.png - searchengine/nova/engines/torrentz.py searchengine/nova3/helpers.py searchengine/nova3/nova2.py searchengine/nova3/novaprinter.py searchengine/nova3/sgmllib3.py searchengine/nova3/socks.py - searchengine/nova3/engines/btdb.png - searchengine/nova3/engines/btdb.py - searchengine/nova3/engines/demonoid.png - searchengine/nova3/engines/demonoid.py - searchengine/nova3/engines/legittorrents.png - searchengine/nova3/engines/legittorrents.py - searchengine/nova3/engines/piratebay.png - searchengine/nova3/engines/piratebay.py - searchengine/nova3/engines/torlock.png - searchengine/nova3/engines/torlock.py - searchengine/nova3/engines/torrentz.png - searchengine/nova3/engines/torrentz.py searchengine/nova/nova2dl.py searchengine/nova3/nova2dl.py diff --git a/src/searchengine/nova/engines/__init__.py b/src/searchengine/nova/engines/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/searchengine/nova/engines/btdb.png b/src/searchengine/nova/engines/btdb.png deleted file mode 100644 index b63314b9d..000000000 Binary files a/src/searchengine/nova/engines/btdb.png and /dev/null differ diff --git a/src/searchengine/nova/engines/btdb.py b/src/searchengine/nova/engines/btdb.py deleted file mode 100644 index 58ed79c78..000000000 --- a/src/searchengine/nova/engines/btdb.py +++ /dev/null @@ -1,147 +0,0 @@ -#VERSION: 1.01 -#AUTHORS: Charles Worthing -#CONTRIBUTORS: Diego de las Heras (ngosang@hotmail.es) - -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright notice, -# this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# * Neither the name of the author nor the names of its contributors may be -# used to endorse or promote products derived from this software without -# specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. - -from HTMLParser import HTMLParser -#qBt -from novaprinter import prettyPrinter -from helpers import download_file, retrieve_url - -class btdb(object): - """ Search engine class """ - url = 'https://btdb.in' - name = 'BTDB' - - def download_torrent(self, info): - """ Downloader """ - print(download_file(info)) - - class MyHtmlParser(HTMLParser): - """ Parser class """ - def __init__(self, results, url): - HTMLParser.__init__(self) - self.results = results - self.url = url - self.current_item = {} # One torrent result - self.add_query = True - self.torrent_info_index = 0 # Count of the meta data encountered - self.torrent_info_array = [] - self.meta_data_grabbing = 0 - self.meta_data_array = [] - self.torrent_no_files = 0 - self.torrent_date_added = 0 - self.torrent_popularity = 0 - self.mangnet_link = "" - self.desc_link = "" - self.torrent_name = "" - - def handle_starttag(self, tag, attrs): - if tag == "span": - span_dict = dict(attrs) - if "class" in span_dict: - the_class = span_dict["class"] - if the_class == "item-meta-info-value": - self.meta_data_grabbing += 1 - else: - self.meta_data_grabbing = 0 - if tag == "script": - return - if tag == "li": - for attr in attrs: - if attr[1] == "search-ret-item": - self.torrent_info_index = 1 - if tag == "a": - if self.torrent_info_index > 0: - params = dict(attrs) - if "href" in params: - link = params["href"] - if link.startswith("/torrent"): - self.desc_link = "".join((self.url, link)) - self.torrent_name = params["title"] - if link.startswith("magnet:"): - self.mangnet_link = link - - def handle_endtag(self, tag): - if tag == "script": - return - if tag == "div": - if self.meta_data_grabbing > 0: - - self.torrent_no_files = self.meta_data_array[2] # Not used - self.torrent_date_added = self.meta_data_array[4] # Not used - self.torrent_popularity = self.meta_data_array[6] # Not used - - self.current_item["size"] = self.meta_data_array[0] - self.current_item["name"] = self.torrent_name - self.current_item["engine_url"] = self.url - self.current_item["link"] = self.mangnet_link - self.current_item["desc_link"] = self.desc_link - self.current_item["seeds"] = -1 - self.current_item["leech"] = -1 - - prettyPrinter(self.current_item) - self.results.append('a') - self.current_item = {} - - self.meta_data_grabbing = 0 - self.meta_data_array = [] - self.mangnet_link = "" - self.desc_link = "" - self.torrent_name = "" - - def handle_data(self, data): - if self.torrent_info_index > 0: - self.torrent_info_array.append(data) - self.torrent_info_index += 1 - if self.meta_data_grabbing > 0: - self.meta_data_array.append(data) - self.meta_data_grabbing += 1 - - def handle_entityref(self, name): - c = unichr(name2codepoint[name]) - - def handle_charref(self, name): - if name.startswith('x'): - c = unichr(int(name[1:], 16)) - else: - c = unichr(int(name)) - - - def search(self, what, cat='all'): - """ Performs search """ - results_list = [] - parser = self.MyHtmlParser(results_list, self.url) - i = 1 - while i < 31: - # "what" is already urlencoded - html = retrieve_url(self.url + '/q/%s/%d?sort=popular' % (what, i)) - parser.feed(html) - if len(results_list) < 1: - break - del results_list[:] - i += 1 - parser.close() diff --git a/src/searchengine/nova/engines/demonoid.png b/src/searchengine/nova/engines/demonoid.png deleted file mode 100644 index 71eb56442..000000000 Binary files a/src/searchengine/nova/engines/demonoid.png and /dev/null differ diff --git a/src/searchengine/nova/engines/demonoid.py b/src/searchengine/nova/engines/demonoid.py deleted file mode 100644 index 53a6ff509..000000000 --- a/src/searchengine/nova/engines/demonoid.py +++ /dev/null @@ -1,144 +0,0 @@ -#VERSION: 1.23 -#AUTHORS: Douman (custparasite@gmx.se) -#CONTRIBUTORS: Diego de las Heras (ngosang@hotmail.es) - -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright notice, -# this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# * Neither the name of the author nor the names of its contributors may be -# used to endorse or promote products derived from this software without -# specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. - -from HTMLParser import HTMLParser -from re import compile as re_compile -from re import DOTALL -from itertools import islice -#qBt -from novaprinter import prettyPrinter -from helpers import download_file, retrieve_url - -class demonoid(object): - """ Search engine class """ - url = "https://www.demonoid.pw" - name = "Demonoid" - supported_categories = {'all': '0', - 'music': '2', - 'movies': '1', - 'games': '4', - 'software': '5', - 'books': '11', - 'anime': '9', - 'tv': '3'} - - def download_torrent(self, info): - """ Downloader """ - print(download_file(info)) - - class MyHtmlParseWithBlackJack(HTMLParser): - """ Parser class """ - def __init__(self, url): - HTMLParser.__init__(self) - self.url = url - self.current_item = None - self.save_data = None - self.seeds_leech = False - self.size_repl = re_compile(",") - - def handle_starttag(self, tag, attrs): - """ Parser's start tag handler """ - if tag == "a": - params = dict(attrs) - if "href" in params: - link = params["href"] - if link.startswith("/files/details"): - self.current_item = dict() - self.current_item["desc_link"] = "".join((self.url, link)) - self.current_item["engine_url"] = self.url - self.save_data = "name" - elif link.startswith("/files/download"): - self.current_item["link"] = "".join((self.url, link)) - - elif self.current_item: - if tag == "td": - params = dict(attrs) - if "class" in params and "align" in params: - if params["class"].startswith("tone"): - if params["align"] == "right": - self.save_data = "size" - elif params["align"] == "center": - self.seeds_leech = True - - elif self.seeds_leech and tag == "font": - for attr in attrs: - if "class" in attr: - if attr[1] == "green": - self.save_data = "seeds" - elif attr[1] == "red": - self.save_data = "leech" - - self.seeds_leech = False - - - def handle_data(self, data): - """ Parser's data handler """ - if self.save_data: - if self.save_data == "name": - # names with special characters like '&' are splitted in several pieces - if 'name' not in self.current_item: - self.current_item['name'] = '' - self.current_item['name'] += data - else: - self.current_item[self.save_data] = data - self.save_data = None - if self.current_item.__len__() == 7: - self.current_item["size"] = self.size_repl.sub("", self.current_item["size"]) - prettyPrinter(self.current_item) - self.current_item = None - - def handle_endtag(self, tag): - """ Parser's end tag handler """ - if self.save_data == "name": - self.save_data = None - - def search(self, what, cat='all'): - """ Performs search """ - #prepare query - cat = self.supported_categories[cat.lower()] - query = "".join((self.url, "/files/?category=", cat, "&subcategory=All&quality=All&seeded=2&external=2&query=", what, "&uid=0&sort=S")) - - data = retrieve_url(query) - - add_res_list = re_compile("/files.*page=[0-9]+") - torrent_list = re_compile("start torrent list -->(.*)(.*)