From 8247709a138c2e3083fb9784271a1995f1da718e Mon Sep 17 00:00:00 2001 From: Christophe Dumez Date: Sun, 26 Dec 2010 10:53:57 +0000 Subject: [PATCH] Added Kickasstorrent.com search engine plugin --- Changelog | 1 + .../nova2/engines/kickasstorrents.png | Bin 0 -> 787 bytes .../nova2/engines/kickasstorrents.py | 67 ++++++++++++++++++ src/searchengine/nova2/engines/versions.txt | 1 + src/searchengine/search.qrc | 2 + 5 files changed, 71 insertions(+) create mode 100644 src/searchengine/nova2/engines/kickasstorrents.png create mode 100755 src/searchengine/nova2/engines/kickasstorrents.py diff --git a/Changelog b/Changelog index 6c319ebe7a..612a8cadeb 100644 --- a/Changelog +++ b/Changelog @@ -9,6 +9,7 @@ - FEATURE: Added a button to reload the IP filter - FEATURE: Search engine results can now be opened in a Web browser - FEATURE: Added a search engine plugin to extratorrent.com + - FEATURE: Added a search engine plugin for kickasstorrents.com - COSMETIC: Same deletion confirmation dialog in the GUI and Web UI - COSMETIC: Simplified the top toolbar - COSMETIC: Display execution log as a tab instead of a modal window diff --git a/src/searchengine/nova2/engines/kickasstorrents.png b/src/searchengine/nova2/engines/kickasstorrents.png new file mode 100644 index 0000000000000000000000000000000000000000..7ddc99353881dbc741e1dad0acce65517089f9ec GIT binary patch literal 787 zcmV+u1MK{XP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iXf7 z7cwRU6Xi*|XNi}Jiql1rh9B0&dIOkrcgqVI8e>?AWu(Q|0*e8$F^1E|XuVER{uuza7oQ+~>u$VmCta;KR&iT1tSOacg$auR zW<#mEWR@hE_{1%!Y8YEu0RW@UkEmK{IeOmIGcoE|7CQU7@JtTknHWUVDMGNYpvp49 zTp%J`_L*fyJ7!iXRx78gFj@;gJEF+xuLpwwV6B zOl!6_VcI=RVsa+g`TNPp+Jy)Qc~V!k`~ugA_W^*U0mGx-N`EjE5sE-4g7>c*5aA#? zokY;@rKRy28u#1fnQnaUxV~zY0V?cS^*ak}r?lQ;O~YbM#WnB=RbBjtxqw*c>HSmE z(&6k}7XVOkIJ0S6uC+|kt)rOr3-$AN_tBP)p(YK}uN8gk_cR&}`eBn%f6y2$$&pBe zNF>5fr|*|zV0uSer>lGIM*g?#CF$p5&9dF&4WE7aZlrf3&0omuEd`|WoEQKA002ov RPDHLkV1f!D2_PT|APPpGRqFr% literal 0 HcmV?d00001 diff --git a/src/searchengine/nova2/engines/kickasstorrents.py b/src/searchengine/nova2/engines/kickasstorrents.py new file mode 100755 index 0000000000..16290f1e09 --- /dev/null +++ b/src/searchengine/nova2/engines/kickasstorrents.py @@ -0,0 +1,67 @@ +#VERSION: 1.1 +#AUTHORS: Christophe Dumez (chris@qbittorrent.org) + +# 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 novaprinter import prettyPrinter +from helpers import retrieve_url, download_file +import json + +class kickasstorrents(object): + url = 'http://www.kickasstorrents.com' + name = 'kickasstorrents' + supported_categories = {'all': 'all', 'movies': 'movies', 'tv': 'tv', 'music': 'music', 'games': 'games', 'software': 'applications'} + + def __init__(self): + self.results = [] + + def download_torrent(self, info): + print download_file(info) + + def search(self, what, cat='all'): + ret = [] + i = 1 + while True and i<11: + results = [] + json_data = retrieve_url(self.url+'/search/%s/%d/?categories[]=%s&field=seeders&sorder=desc&json=1'%(what, i, self.supported_categories[cat])) + json_dict = json.loads(json_data) + if json_dict['total_results'] <= 0: return + results = json_dict['list'] + for r in results: + try: + res_dict = dict() + res_dict['name'] = r['title'] + res_dict['size'] = str(r['size']) + res_dict['seeds'] = r['seeds'] + res_dict['leech'] = r['leechs'] + res_dict['link'] = r['torrentLink'] + res_dict['desc_link'] = r['link'] + res_dict['engine_url'] = self.url + prettyPrinter(res_dict) + except: + pass + i += 1 + diff --git a/src/searchengine/nova2/engines/versions.txt b/src/searchengine/nova2/engines/versions.txt index 565e8cc333..ed760ac339 100644 --- a/src/searchengine/nova2/engines/versions.txt +++ b/src/searchengine/nova2/engines/versions.txt @@ -6,3 +6,4 @@ piratebay: 1.40 vertor: 1.2 torrentdownloads: 1.1 extratorrent: 1.1 +kickasstorrents: 1.1 diff --git a/src/searchengine/search.qrc b/src/searchengine/search.qrc index eeb85bb143..e0d334a902 100644 --- a/src/searchengine/search.qrc +++ b/src/searchengine/search.qrc @@ -21,5 +21,7 @@ nova2/engines/vertor.py nova2/engines/extratorrent.py nova2/engines/extratorrent.png + nova2/engines/kickasstorrents.png + nova2/engines/kickasstorrents.png