The script 'script.service.gto' fetches actual tv highlights from various RSS feeds and present them as widget in the home menu (needs skin integration). It can show only those events optionally if they are present in the pvr channel list.
The script starts as a service which runs at Kodi start and fetches the data depending on the selected interval. In addition to update all outdated broadcasts will removed from the widget list.
To integrate the TV highlights of the day in Estuary, please follow the instructions in the README.md in the folders integration/<skinname>
. Otherwise,
the addon can be integrated into other skins as a TV Widget too. The addon use a method called "Dynamic List Content".
The integration by the skinner is done by calling:
<content target="pvr">plugin://script.service.gto?action=getcontent&ts=$INFO[Window(Home).Property(GTO.timestamp)]</content>
For detailed description of ListItem.Labels and ListItem.Properties see below.
If you want to assign the "German Telecast Offers" as a widget via skinhelper addon, just use for calling the user defined action:
plugin://script.service.gto?action=getcontent&ts=$INFO[Window(Home).Property(GTO.timestamp)]
The service for updating content and widgets (starter.py) calls the actual plugin via the parameter 'action' with a corresponding value. This parameter can be used by other plugins or scripts as follows:
RunPlugin(plugin://script.service.gto?action=scrape)
RunPlugin(plugin://script.service.gto?action=getcontent)
RunPlugin(plugin://script.service.gto?action=change_scraper)
Example 'onclick' of a selected element - opens a popup window named <skin.id>.script-gto-info.xml (for example skin.estuary.script-gto-info.xml):
<onclick>
RunPlugin(plugin://script.service.gto?action=info&item=$INFO[ListItem.Property(Item)])
</onclick>
<onclick>
RunPlugin(plugin://script.service.gto?action=record&broadcastid=$INFO[Window(Home).Property(GTO.Info.BroadcastID)]&item=$INFO[Window(Home).Property(GTO.Info.Item)])
</onclick>
<onclick>
RunPlugin(plugin://script.service.gto?action=reminder&broadcastid=$INFO[Window(Home).Property(GTO.Info.BroadcastID)]&item=$INFO[Window(Home).Property(GTO.Info.Item)])
</onclick>
- ListItem.Label Station name
- ListItem.Label2 Title of broadcast
- ListItem.Art(icon) Screenshot of broadcast
- ListItem.Art(thumb) dto.
- ListItem.Art(poster) dto.
- ListItem.Art(fanart) dto.
- ListItem.Art(logo) PVR station logo
- ListItem.genre Genre
- ListItem.plot Content description of broadcast
- ListItem.duration Runtime in seconds
- ListItem.rating Rating
- ListItem.Property(StartDate) Date + time of broadcast start, regional settings without secs
- ListItem.Property(StartTime) Time if Broadcast start (hh:mm)
- ListItem.Property(EndTime) End time
- ListItem.Property(RunTime) Runtime of broadcast in minutes
- ListItem.Property(HasTimer) True|False if Timer/Reminder for this item is set
- ListItem.Property(Item) Item number
- GTO.provider Broadcast provider (scraper.shortname)
- GTO.items count of items
- GTO.busy true/false - scraper is busy
- GTO.timestamp Timestamp of last refresh of the widget
- GTO.Info.Item ID of item
- GTO.Info.Title title
- GTO.Info.Picture screenshot of broadcast
- GTO.Info.Description description
- GTO.Info.Channel PVR channel name
- GTO.Info.ChannelID PVR channel id
- GTO.Info.Logo PVR channel logo
- GTO.Info.Date datetime in format 'dd.mm.yy hh:mm'
- GTO.Info.RunTime run time in minutes
- GTO.Info.EndTime end time (hh:mm)
- GTO.Info.Rating Genre and/or Rating
- GTO.Info.hasTimer 'True|False' active recording timer
- GTO.Info.BroadcastID Broadcast-ID of broadcast (needed for timers/reminders)
- GTO.Info.isInFuture 'True|False' broadcast is in future
- GTO.Info.isRunning 'True|False' broadcast is currently running
Q: There are asterisks (*) behind the channel names, why is that?
The channel name shown in the scraper is different from the one in the channel list (e.g. RTLII vs. RTL2). In this case, the 'ChannelTranslate.json' must be adapted, which maps various channel names used by the scraper to the PVR list. To avoid an overwriting of the transformation table, it is stored under
Linux (Kodi, LibreElec): /storage/.kodi/userdata/addon_data/script.service.gto/translations.json)
Windows: %APPDATA%\kodi\userdata\addon_data\script.service.gto\translations.json
The 'translations.json' is editable with every simple editor.
Q: Where resides the Info Window XML?
The addon search at first within the current skin folder for a file named <skin-id>.script-gto-info.xml
. If this
file is not present there (e.g. unchanged or unmodified skin) the addon is parsing the addon folder itself and looks for
a fallback like script.service.gto/skins/Default/720p/<skin-id>.script-gto-info.xml
(for example: skin.estuary.script-gto-info.xml
).
If there is no fallback, a notification occurs.
Q: Where is the Widget GUI description file (xml)?
This file is named gto-widget.xml
and must reside within the xml folder of your skin. See examples in the integration
folder of this addon.