-
Notifications
You must be signed in to change notification settings - Fork 276
/
Copy pathapi.py
67 lines (52 loc) · 2.07 KB
/
api.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# coding=utf-8
from __future__ import unicode_literals
import os
from builtins import object
from medusa import app
from medusa.helper.common import try_int
from medusa.indexers.config import indexerConfig, init_config
from medusa.indexers.tvdbv2.fallback import PlexFallBackConfig
from six import itervalues
class indexerApi(object):
def __init__(self, indexer_id=None):
self.indexer_id = try_int(indexer_id, None)
def __del__(self):
pass
@PlexFallBackConfig
def indexer(self, *args, **kwargs):
if self.indexer_id:
indexer_obj = indexerConfig[self.indexer_id]['module'](*args, **kwargs)
indexer_obj.indexer = self.config['id']
indexer_obj.name = self.config['identifier']
return indexer_obj
@property
def config(self):
if self.indexer_id:
return indexerConfig[self.indexer_id]
# Sort and put the default language first
init_config['valid_languages'].sort(key=lambda i: '\0' if i == app.INDEXER_DEFAULT_LANGUAGE else i)
return init_config
@property
def name(self):
if self.indexer_id:
return indexerConfig[self.indexer_id]['name']
@property
def api_params(self):
if self.indexer_id:
if app.CACHE_DIR:
indexerConfig[self.indexer_id]['api_params']['cache'] = os.path.join(app.CACHE_DIR, 'indexers',
self.name)
if app.PROXY_SETTING and app.PROXY_INDEXERS:
indexerConfig[self.indexer_id]['api_params']['proxy'] = app.PROXY_SETTING
return indexerConfig[self.indexer_id]['api_params']
@property
def cache(self):
if app.CACHE_DIR:
return self.api_params['cache']
@property
def indexers(self):
return dict((int(x['id']), x['name']) for x in itervalues(indexerConfig) if x.get('enabled', None))
@property
def session(self):
if self.indexer_id:
return indexerConfig[self.indexer_id]['api_params']['session']