[kickass] fill_torrent
[weboorrents] temporary modification to fully load torrent on 'info short_id'
This commit is contained in:
parent
8e796cc5c3
commit
aab3ea5741
3 changed files with 28 additions and 10 deletions
|
|
@ -21,6 +21,7 @@
|
||||||
from weboob.capabilities.torrent import Torrent
|
from weboob.capabilities.torrent import Torrent
|
||||||
from weboob.tools.browser import BasePage
|
from weboob.tools.browser import BasePage
|
||||||
from weboob.tools.misc import get_bytes_size
|
from weboob.tools.misc import get_bytes_size
|
||||||
|
from weboob.capabilities.base import NotAvailable
|
||||||
|
|
||||||
|
|
||||||
__all__ = ['TorrentsPage']
|
__all__ = ['TorrentsPage']
|
||||||
|
|
@ -65,27 +66,29 @@ class TorrentsPage(BasePage):
|
||||||
class TorrentPage(BasePage):
|
class TorrentPage(BasePage):
|
||||||
def get_torrent(self, id):
|
def get_torrent(self, id):
|
||||||
title = ''
|
title = ''
|
||||||
|
size = NotAvailable
|
||||||
url = 'https://isohunt.com/download/%s/%s.torrent' % (id, id)
|
url = 'https://isohunt.com/download/%s/%s.torrent' % (id, id)
|
||||||
for a in self.document.getiterator('a'):
|
for a in self.document.getiterator('a'):
|
||||||
if 'Search more torrents of' in a.attrib.get('title', ''):
|
if 'Search more torrents of' in a.attrib.get('title', ''):
|
||||||
title = a.tail
|
title = a.tail
|
||||||
seed = -1
|
seed = NotAvailable
|
||||||
leech = -1
|
leech = NotAvailable
|
||||||
tip_id = "none"
|
tip_id = "none"
|
||||||
for span in self.document.getiterator('span'):
|
for span in self.document.getiterator('span'):
|
||||||
if span.attrib.get('style', '') == 'color:green;' and ('ShowTip' in span.attrib.get('onmouseover', '')):
|
if span.attrib.get('style', '') == 'color:green;' and ('ShowTip' in span.attrib.get('onmouseover', '')):
|
||||||
seed = span.tail.split(' ')[1]
|
seed = int(span.tail.split(' ')[1])
|
||||||
tip_id = span.attrib.get('onmouseover', '').split("'")[1]
|
tip_id = span.attrib.get('onmouseover', '').split("'")[1]
|
||||||
for div in self.document.getiterator('div'):
|
for div in self.document.getiterator('div'):
|
||||||
# find the corresponding super tip which appears on super mouse hover!
|
# find the corresponding super tip which appears on super mouse hover!
|
||||||
if div.attrib.get('class', '') == 'dirs ydsf' and tip_id in div.attrib.get('id', ''):
|
if div.attrib.get('class', '') == 'dirs ydsf' and tip_id in div.attrib.get('id', ''):
|
||||||
leech = div.getchildren()[0].getchildren()[1].tail.split(' ')[2]
|
leech = int(div.getchildren()[0].getchildren()[1].tail.split(' ')[2])
|
||||||
# the <b> with the size in it doesn't have a distinction
|
# the <b> with the size in it doesn't have a distinction
|
||||||
# have to get it by higher
|
# have to get it by higher
|
||||||
elif div.attrib.get('id', '') == 'torrent_details':
|
elif div.attrib.get('id', '') == 'torrent_details':
|
||||||
size = div.getchildren()[6].getchildren()[0].getchildren()[0].text
|
size = div.getchildren()[6].getchildren()[0].getchildren()[0].text
|
||||||
u = size[-2:]
|
u = size[-2:]
|
||||||
size = float(size[:-3])
|
size = float(size[:-3])
|
||||||
|
size = get_bytes_size(size, u)
|
||||||
|
|
||||||
# files and description (uploader's comment)
|
# files and description (uploader's comment)
|
||||||
description = 'No description'
|
description = 'No description'
|
||||||
|
|
@ -115,9 +118,9 @@ class TorrentPage(BasePage):
|
||||||
|
|
||||||
torrent = Torrent(id, title)
|
torrent = Torrent(id, title)
|
||||||
torrent.url = url
|
torrent.url = url
|
||||||
torrent.size = get_bytes_size(size, u)
|
torrent.size = size
|
||||||
torrent.seeders = int(seed)
|
torrent.seeders = seed
|
||||||
torrent.leechers = int(leech)
|
torrent.leechers = leech
|
||||||
torrent.description = description
|
torrent.description = description
|
||||||
torrent.files = files
|
torrent.files = files
|
||||||
return torrent
|
return torrent
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with weboob. If not, see <http://www.gnu.org/licenses/>.
|
# along with weboob. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
from weboob.capabilities.torrent import ICapTorrent
|
from weboob.capabilities.torrent import ICapTorrent, Torrent
|
||||||
from weboob.tools.backend import BaseBackend
|
from weboob.tools.backend import BaseBackend
|
||||||
|
|
||||||
from .browser import KickassBrowser
|
from .browser import KickassBrowser
|
||||||
|
|
@ -61,3 +61,12 @@ class KickassBackend(BaseBackend, ICapTorrent):
|
||||||
|
|
||||||
def iter_torrents(self, pattern):
|
def iter_torrents(self, pattern):
|
||||||
return self.browser.iter_torrents(quote_plus(pattern.encode('utf-8')))
|
return self.browser.iter_torrents(quote_plus(pattern.encode('utf-8')))
|
||||||
|
|
||||||
|
def fill_torrent(self, torrent, fields):
|
||||||
|
print "plpl"
|
||||||
|
if 'description' in fields or fields == None:
|
||||||
|
return self.get_torrent(torrent.id)
|
||||||
|
|
||||||
|
OBJECTS = {
|
||||||
|
Torrent:fill_torrent
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -95,8 +95,14 @@ class Weboorrents(ReplApplication):
|
||||||
|
|
||||||
Get information about a torrent.
|
Get information about a torrent.
|
||||||
"""
|
"""
|
||||||
|
# Following commented line could be better
|
||||||
torrent = self.get_object(id, 'get_torrent')
|
#torrent = self.get_object(id, 'get_torrent', ('description','files'))
|
||||||
|
torrent = None
|
||||||
|
_id, backend = self.parse_id(id)
|
||||||
|
for _backend, result in self.do('get_torrent', _id, backends=backend, caps=ICapTorrent):
|
||||||
|
if result:
|
||||||
|
backend = _backend
|
||||||
|
torrent = result
|
||||||
if not torrent:
|
if not torrent:
|
||||||
print >>sys.stderr, 'Torrent not found: %s' % id
|
print >>sys.stderr, 'Torrent not found: %s' % id
|
||||||
return 3
|
return 3
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue