Merge pull request #23122 from joseluismarti/bionic
[xbmc.git] / addons / metadata.themoviedb.org.python / python / scraper_datahelper.py
blob23504e092c912fe7179ea89b5ff8beaea64959ec
1 import re
2 try:
3 from urlparse import parse_qsl
4 except ImportError: # py2 / py3
5 from urllib.parse import parse_qsl
7 # get addon params from the plugin path querystring
8 def get_params(argv):
9 result = {'handle': int(argv[0])}
10 if len(argv) < 2 or not argv[1]:
11 return result
13 result.update(parse_qsl(argv[1].lstrip('?')))
14 return result
16 def combine_scraped_details_info_and_ratings(original_details, additional_details):
17 def update_or_set(details, key, value):
18 if key in details:
19 details[key].update(value)
20 else:
21 details[key] = value
23 if additional_details:
24 if additional_details.get('info'):
25 update_or_set(original_details, 'info', additional_details['info'])
26 if additional_details.get('ratings'):
27 update_or_set(original_details, 'ratings', additional_details['ratings'])
28 return original_details
30 def combine_scraped_details_available_artwork(original_details, additional_details):
31 if additional_details and additional_details.get('available_art'):
32 available_art = additional_details['available_art']
33 if not original_details.get('available_art'):
34 original_details['available_art'] = available_art
35 else:
36 for arttype, artlist in available_art.items():
37 original_details['available_art'][arttype] = \
38 artlist + original_details['available_art'].get(arttype, [])
40 return original_details
42 def find_uniqueids_in_text(input_text):
43 result = {}
44 res = re.search(r'(themoviedb.org/movie/)([0-9]+)', input_text)
45 if (res):
46 result['tmdb'] = res.group(2)
47 res = re.search(r'imdb....?/title/tt([0-9]+)', input_text)
48 if (res):
49 result['imdb'] = 'tt' + res.group(1)
50 else:
51 res = re.search(r'imdb....?/Title\?t{0,2}([0-9]+)', input_text)
52 if (res):
53 result['imdb'] = 'tt' + res.group(1)
54 return result