55 lines
1.9 KiB
Python
55 lines
1.9 KiB
Python
import re
|
|
try:
|
|
from urlparse import parse_qsl
|
|
except ImportError: # py2 / py3
|
|
from urllib.parse import parse_qsl
|
|
|
|
# get addon params from the plugin path querystring
|
|
def get_params(argv):
|
|
result = {'handle': int(argv[0])}
|
|
if len(argv) < 2 or not argv[1]:
|
|
return result
|
|
|
|
result.update(parse_qsl(argv[1].lstrip('?')))
|
|
return result
|
|
|
|
def combine_scraped_details_info_and_ratings(original_details, additional_details):
|
|
def update_or_set(details, key, value):
|
|
if key in details:
|
|
details[key].update(value)
|
|
else:
|
|
details[key] = value
|
|
|
|
if additional_details:
|
|
if additional_details.get('info'):
|
|
update_or_set(original_details, 'info', additional_details['info'])
|
|
if additional_details.get('ratings'):
|
|
update_or_set(original_details, 'ratings', additional_details['ratings'])
|
|
return original_details
|
|
|
|
def combine_scraped_details_available_artwork(original_details, additional_details):
|
|
if additional_details and additional_details.get('available_art'):
|
|
available_art = additional_details['available_art']
|
|
if not original_details.get('available_art'):
|
|
original_details['available_art'] = available_art
|
|
else:
|
|
for arttype, artlist in available_art.items():
|
|
original_details['available_art'][arttype] = \
|
|
artlist + original_details['available_art'].get(arttype, [])
|
|
|
|
return original_details
|
|
|
|
def find_uniqueids_in_text(input_text):
|
|
result = {}
|
|
res = re.search(r'(themoviedb.org/movie/)([0-9]+)', input_text)
|
|
if (res):
|
|
result['tmdb'] = res.group(2)
|
|
res = re.search(r'imdb....?/title/tt([0-9]+)', input_text)
|
|
if (res):
|
|
result['imdb'] = 'tt' + res.group(1)
|
|
else:
|
|
res = re.search(r'imdb....?/Title\?t{0,2}([0-9]+)', input_text)
|
|
if (res):
|
|
result['imdb'] = 'tt' + res.group(1)
|
|
return result
|