44 lines
1.4 KiB
Python
44 lines
1.4 KiB
Python
#!/usr/bin/env python3.6
|
|
|
|
from json import dumps
|
|
from utils import humansize, representsInteger
|
|
|
|
RELEASE_TYPES = ('bdremux', 'brremux', 'remux',
|
|
'bdrip', 'brrip', 'blu-ray', 'bluray', 'bdmv', 'bdr', 'bd5',
|
|
'web-cap', 'webcap', 'web cap',
|
|
'webrip', 'web rip', 'web-rip', 'web',
|
|
'webdl', 'web dl', 'web-dl', 'hdrip',
|
|
'dsr', 'dsrip', 'satrip', 'dthrip', 'dvbrip', 'hdtv', 'pdtv', 'tvrip', 'hdtvrip',
|
|
'dvdr', 'dvd-full', 'full-rip', 'iso',
|
|
'ts', 'hdts', 'hdts', 'telesync', 'pdvd', 'predvdrip',
|
|
'camrip', 'cam')
|
|
|
|
class Torrent(object):
|
|
def __init__(self, name, magnet=None, size=None, uploader=None, date=None,
|
|
seed_count=None, leech_count=None, url=None):
|
|
self.name = name
|
|
self.magnet = magnet
|
|
self.size = size
|
|
self.uploader = uploader
|
|
self.date = date
|
|
self.seed_count = seed_count
|
|
self.leech_count = leech_count
|
|
self.url = url
|
|
|
|
if (size != '' and representsInteger(size)):
|
|
self.human_size = humansize(int(size))
|
|
|
|
def find_release_type(self):
|
|
name = self.name.casefold()
|
|
return [r_type for r_type in RELEASE_TYPES if r_type in name]
|
|
|
|
def get_all_attr(self):
|
|
return ({'name': self.name, 'magnet': self.magnet,'uploader': self.uploader,
|
|
'size': self.size,'date': self.date,'seed': self.seed_count,
|
|
'leech': self.leech_count, 'url': self.url, 'release_type': self.find_release_type()})
|
|
|
|
def to_json(self):
|
|
return dumps(self.get_all_attr())
|
|
|
|
def __repr__(self):
|
|
return '<%s [%r]>' % (self.__class__.__name__, self.name) |