diff options
Diffstat (limited to 'addons/metadata.demo.movies')
-rw-r--r-- | addons/metadata.demo.movies/addon.xml | 18 | ||||
-rw-r--r-- | addons/metadata.demo.movies/demo.py | 100 |
2 files changed, 118 insertions, 0 deletions
diff --git a/addons/metadata.demo.movies/addon.xml b/addons/metadata.demo.movies/addon.xml new file mode 100644 index 0000000..0ac4b4e --- /dev/null +++ b/addons/metadata.demo.movies/addon.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<addon id="metadata.demo.movies" + name="Demo movies python scraper" + version="1.1.0" + provider-name="spiff"> + <requires> + <import addon="xbmc.python" version="3.0.0"/> + <import addon="xbmc.metadata" version="2.1.0"/> + </requires> + <extension point="xbmc.metadata.scraper.movies" + library="demo.py"/> + <extension point="xbmc.addon.metadata"> + <summary lang="en_GB">Demo movies python scraper</summary> + <description lang="en_GB">Demo movies python scraper.</description> + <platform>all</platform> + <license>GPL-2.0-only</license> + </extension> +</addon> diff --git a/addons/metadata.demo.movies/demo.py b/addons/metadata.demo.movies/demo.py new file mode 100644 index 0000000..ef47eb8 --- /dev/null +++ b/addons/metadata.demo.movies/demo.py @@ -0,0 +1,100 @@ +# -*- coding: utf-8 -*- +""" + Copyright (C) 2005-2021 Team Kodi + This file is part of Kodi - kodi.tv + SPDX-License-Identifier: GPL-2.0-or-later + See LICENSES/README.md for more information. +""" +import sys +import urllib.parse + +import xbmcgui +import xbmcplugin +import xbmc + + +def get_params(): + param_string = sys.argv[2][1:] + if param_string: + return dict(urllib.parse.parse_qsl(param_string)) + return {} + + +params = get_params() +plugin_handle = int(sys.argv[1]) +action = params.get('action') + +if action == 'find': + title = params['title'] + year = params.get('year', 'not specified') + xbmc.log(f'Find movie with title "{title}" from year {year}', xbmc.LOGDEBUG) + + liz = xbmcgui.ListItem('Demo movie 1', offscreen=True) + liz.setArt({'thumb': 'DefaultVideo.png'}) + liz.setProperty('relevance', '0.5') + xbmcplugin.addDirectoryItem(handle=plugin_handle, url='/path/to/movie', listitem=liz, isFolder=True) + liz = xbmcgui.ListItem('Demo movie 2', offscreen=True) + liz.setArt({'thumb': 'DefaultVideo.png'}) + liz.setProperty('relevance', '0.3') + xbmcplugin.addDirectoryItem(handle=plugin_handle, url='/path/to/movie2', listitem=liz, isFolder=True) + +elif action == 'getdetails': + url = params['url'] + if url == '/path/to/movie': + xbmc.log('Get movie details callback', xbmc.LOGDEBUG) + liz = xbmcgui.ListItem('Demo movie 1', offscreen=True) + tags = liz.getVideoInfoTag() + tags.setTitle('Demo movie 1') + tags.setOriginalTitle('Demo måvie 1') + tags.setSortTitle('2') + tags.setUserRating(5) + tags.setTop250(3) + tags.setPlotOutline('Outline yo') + tags.setPlot('Plot yo') + tags.setTagLine('Tag yo') + tags.setDuration(110) + tags.setMpaa('T') + tags.setTrailer('/home/akva/bunnies/unicorns.mkv') + tags.setGenres(['Action', 'Comedy']) + tags.setWriters(['None', 'Want', 'To Admit It']) + tags.setDirectors(['Director 1', 'Director 2']) + tags.setSet('Spiffy creations') + tags.setSetOverview('Horrors created by spiff') + tags.setStudios(['Studio1', 'Studio2']) + tags.setDateAdded('2016-01-01') + tags.setPremiered('2015-01-01') + tags.setShowLinks(['Demo show 1']) + tags.setRatings({'imdb': (9, 100000), 'themoviedb': (8.9, 1000)}, defaultrating='imdb') + tags.setUniqueIDs({'imdb': 'tt8938399', 'tmdb': '9837493'}, defaultuniqueid='imdb') + tags.setCast([xbmc.Actor('spiff', 'himself', order=2, thumbnail='/home/akva/Pictures/fish.jpg'), + xbmc.Actor('monkey', 'orange', order=1, thumbnail='/home/akva/Pictures/coffee.jpg')]) + tags.addAvailableArtwork('DefaultBackFanart.png', 'banner') + tags.addAvailableArtwork('/home/akva/Pictures/hawaii-shirt.png', 'poster') + liz.setAvailableFanart([{'image': 'DefaultBackFanart.png', 'preview': 'DefaultBackFanart.png'}, + {'image': '/home/akva/Pictures/hawaii-shirt.png', + 'preview': '/home/akva/Pictures/hawaii-shirt.png'}]) + xbmcplugin.setResolvedUrl(handle=plugin_handle, succeeded=True, listitem=liz) + +elif action == 'getartwork': + url = params['id'] + if url == '456': + xbmc.log('Get movie artworks callback', xbmc.LOGDEBUG) + liz = xbmcgui.ListItem('Demo movie 1', offscreen=True) + tags = liz.getVideoInfoTag() + tags.addAvailableArtwork('DefaultBackFanart.png', 'banner') + tags.addAvailableArtwork('/home/akva/Pictures/hawaii-shirt.png', 'poster') + liz.setAvailableFanart([{'image': 'DefaultBackFanart.png', 'preview': 'DefaultBackFanart.png'}, + {'image': '/home/akva/Pictures/hawaii-shirt.png', + 'preview': '/home/akva/Pictures/hawaii-shirt.png'}]) + xbmcplugin.setResolvedUrl(handle=plugin_handle, succeeded=True, listitem=liz) + +elif action == 'nfourl': + nfo = params["nfo"] + xbmc.log('Find url from nfo file', xbmc.LOGDEBUG) + liz = xbmcgui.ListItem('Demo movie 1', offscreen=True) + xbmcplugin.addDirectoryItem(handle=plugin_handle, url='/path/to/movie1', listitem=liz, isFolder=True) + +elif action is not None: + xbmc.log(f'Action "{action}" not implemented', xbmc.LOGDEBUG) + +xbmcplugin.endOfDirectory(plugin_handle) |