35 lines
1.1 KiB
Python
35 lines
1.1 KiB
Python
# -*- Mode: Python; -*-
|
|
# -*- coding: utf-8 -*-
|
|
# vi:si:et:sw=2:sts=2:ts=2
|
|
|
|
from oxutils import intValue
|
|
|
|
|
|
class Torrent(dict):
|
|
_string_keys = ('id', 'title', 'description', 'infohash', 'torrent_link', 'comment_link',
|
|
'imdbId', 'announce', 'domain', 'published', 'language', 'subtitle language')
|
|
_int_keys = ('size', 'seeder', 'leecher', 'downloaded', 'files')
|
|
_dict_keys = ('torrent_info', )
|
|
_list_keys = ()
|
|
data = {}
|
|
|
|
def __init__(self):
|
|
for key in self._string_keys:
|
|
self[key] = self.data.get(key, u'')
|
|
for key in self._dict_keys:
|
|
self[key] = self.data.get(key, {})
|
|
for key in self._list_keys:
|
|
self[key] = self.data.get(key, [])
|
|
for key in self._int_keys:
|
|
value = self.data.get(key, -1)
|
|
if not isinstance(value, int):
|
|
value = int(intValue(value))
|
|
self[key] = value
|
|
self['infohash'] = self.data['torrent_info']['hash']
|
|
self['size'] = self.data['torrent_info']['size']
|
|
self['announce'] = self.data['torrent_info']['announce']
|
|
if 'files' in self.data['torrent_info']:
|
|
self['files'] = len(self.data['torrent_info']['files'])
|
|
else:
|
|
self['files'] = 1
|
|
|