Updated kodi settings on Lenovo
This commit is contained in:
84
Kodi/Lenovo/addons/script.embuary.info/resources/lib/omdb.py
Normal file
84
Kodi/Lenovo/addons/script.embuary.info/resources/lib/omdb.py
Normal file
@@ -0,0 +1,84 @@
|
||||
#!/usr/bin/python
|
||||
# coding: utf-8
|
||||
|
||||
########################
|
||||
|
||||
import json
|
||||
import sys
|
||||
import requests
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
from resources.lib.helper import *
|
||||
|
||||
########################
|
||||
|
||||
OMDB_API_KEY = ADDON.getSettingString('omdb_api_key')
|
||||
|
||||
########################
|
||||
|
||||
def omdb_api(imdbnumber=None,title=None,year=None,content_type=None):
|
||||
if imdbnumber:
|
||||
url = 'http://www.omdbapi.com/?apikey=%s&i=%s&plot=short&r=xml&tomatoes=true' % (OMDB_API_KEY, imdbnumber)
|
||||
|
||||
elif title and year and content_type:
|
||||
# urllib has issues with some asian letters
|
||||
try:
|
||||
title = urllib.quote(title)
|
||||
except KeyError:
|
||||
return
|
||||
|
||||
url = 'http://www.omdbapi.com/?apikey=%s&t=%s&year=%s&plot=short&r=xml&tomatoes=true' % (OMDB_API_KEY, title, year)
|
||||
|
||||
else:
|
||||
return
|
||||
|
||||
omdb = get_cache(url)
|
||||
if omdb:
|
||||
return omdb
|
||||
|
||||
elif OMDB_API_KEY:
|
||||
omdb = {}
|
||||
|
||||
for i in range(1,4): # loop if heavy server load
|
||||
try:
|
||||
request = requests.get(url, timeout=5)
|
||||
|
||||
if not request.ok:
|
||||
raise Exception(str(request.status_code))
|
||||
|
||||
result = request.text
|
||||
|
||||
tree = ET.ElementTree(ET.fromstring(result))
|
||||
root = tree.getroot()
|
||||
|
||||
for child in root:
|
||||
# imdb ratings
|
||||
omdb['imdbRating'] = child.get('imdbRating', '').replace('N/A', '')
|
||||
omdb['imdbVotes'] = child.get('imdbVotes', '0').replace('N/A', '0').replace(',', '')
|
||||
|
||||
# regular rotten rating
|
||||
omdb['tomatometerallcritics'] = child.get('tomatoMeter', '').replace('N/A', '')
|
||||
omdb['tomatometerallcritics_avg'] = child.get('tomatoRating', '').replace('N/A', '')
|
||||
omdb['tomatometerallcritics_votes'] = child.get('tomatoReviews', '0').replace('N/A', '0').replace(',', '')
|
||||
|
||||
# user rotten rating
|
||||
omdb['tomatometerallaudience'] = child.get('tomatoUserMeter', '').replace('N/A', '')
|
||||
omdb['tomatometerallaudience_avg'] = child.get('tomatoUserRating', '').replace('N/A', '')
|
||||
omdb['tomatometerallaudience_votes'] = child.get('tomatoUserReviews', '0').replace('N/A', '0').replace(',', '')
|
||||
|
||||
# metacritic
|
||||
omdb['metacritic'] = child.get('metascore', '').replace('N/A', '')
|
||||
|
||||
# other
|
||||
omdb['awards'] = child.get('awards', '').replace('N/A', '')
|
||||
omdb['DVD'] = date_format(child.get('DVD', '').replace('N/A', ''), scheme='DD MMM YYYY')
|
||||
|
||||
except Exception as error:
|
||||
log('OMDB Error: %s' % error)
|
||||
pass
|
||||
|
||||
else:
|
||||
write_cache(url,omdb)
|
||||
break
|
||||
|
||||
return omdb
|
||||
Reference in New Issue
Block a user