"""
Copyright (C) 2018 MuadDib
----------------------------------------------------------------------------
"THE BEER-WARE LICENSE" (Revision 42):
@tantrumdev wrote this file. As long as you retain this notice you
can do whatever you want with this stuff. If we meet some day, and you think
this stuff is worth it, you can buy him a beer in return. - Muad'Dib
----------------------------------------------------------------------------
Usage Examples:
-
Apply the Addon's Youtube API Keys to Kodi
titleforyouapigoeshere/apikeygoeshere/clientgoeshere/secretgoeshere
"""
import requests,re,json,os,urlparse
import koding
import __builtin__
import xbmc,xbmcaddon,xbmcgui
from koding import route
from resources.lib.plugin import Plugin
from resources.lib.util import dom_parser
from resources.lib.util.context import get_context_items
from resources.lib.util.xml import JenItem, JenList, display_list
from unidecode import unidecode
CACHE_TIME = 3600 # change to wanted cache time in seconds
addon_fanart = xbmcaddon.Addon().getAddonInfo('fanart')
addon_icon = xbmcaddon.Addon().getAddonInfo('icon')
User_Agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36'
class YTAPI(Plugin):
name = "ytapi"
def process_item(self, item_xml):
if "" in item_xml:
item = JenItem(item_xml)
result_item = {
'label': item["title"],
'icon': item.get("thumbnail", addon_icon),
'fanart': item.get("fanart", addon_fanart),
'mode': "YTAPI",
'url': item.get("ytapi", ""),
'folder': False,
'imdb': "0",
'content': "files",
'season': "0",
'episode': "0",
'info': {},
'year': "0",
'context': get_context_items(item),
"summary": item.get("summary", None)
}
result_item["properties"] = {
'fanart_image': result_item["fanart"]
}
result_item['fanart_small'] = result_item["fanart"]
return result_item
@route(mode='YTAPI', args=["url"])
def apply_ytapi(url):
xml = ""
try:
yt_path = xbmc.translatePath(os.path.join('special://home/addons/','plugin.video.youtube'))
if not os.path.exists(yt_path):
dialog = xbmcgui.Dialog()
dialog.ok('Youtube',"[COLOR red]The Youtube Addon is not installed. Canceling API update....[/COLOR]")
quit()
try:
ytapi_set = url.split('/')
dialog = xbmcgui.Dialog()
if dialog.yesno(ytapi_set[0], "Do you want to apply this Youtube API Key to Kodi?"):
yt_settings = xbmcaddon.Addon(id='plugin.video.youtube')
yt_settings.setSetting("youtube.api.enable", 'true')
yt_settings.setSetting("youtube.api.last.switch", 'own')
yt_settings.setSetting("youtube.api.key", ytapi_set[1])
yt_settings.setSetting("youtube.api.id", ytapi_set[2])
yt_settings.setSetting("youtube.api.secret", ytapi_set[3])
dialog.ok(ytapi_set[0],"[COLOR snow]The Youtube addon has been updated.[/COLOR]")
except:
pass
except:
pass
def remove_non_ascii(text):
return unidecode(text)