Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions addon.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from resources.lib import main
if __name__ == "__main__":
main.run()
13 changes: 6 additions & 7 deletions addon.xml
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="plugin.video.dw" name="Deutsche Welle" version="1.0.0" provider-name="fraser">
<addon id="plugin.video.dw" name="Deutsche Welle" version="0.0.7" provider-name="gigoro33">
<requires>
<import addon="xbmc.python" version="2.26.0"/>
<import addon="script.module.routing" version="0.2.0"/>
<import addon="script.module.beautifulsoup4" version="4.3.2"/>
<import addon="script.module.requests" version="2.12.4"/>
<import addon="script.module.cache" version="1.0.1"/>
<import addon="xbmc.python" version="3.0.1"/>
<import addon="script.module.codequick"/>
<import addon="script.module.simplejson"/>
</requires>
<extension point="xbmc.python.pluginsource" library="main.py">
<extension point="xbmc.python.pluginsource" library="addon.py">
<provides>video</provides>
</extension>
<extension point="xbmc.addon.metadata">
Expand All @@ -22,6 +20,7 @@ Watch live TV and a range of programmes available via the DW website </descripti
<email>fraser.chapman@gmail.com</email>
<source>https://github.com/FraserChapman/plugin.video.dw</source>
<news>v1.0.0 (14-7-19) - Initial version</news>
<news>v1.0.1 (14-7-19) - Update kodi to version 19 or newer</news>
<disclaimer lang="en_GB">Neither this addon nor its author are in anyway affiliated with Deutsche Welle</disclaimer>
<assets>
<icon>resources/icon.png</icon>
Expand Down
5 changes: 0 additions & 5 deletions main.py

This file was deleted.

113 changes: 113 additions & 0 deletions resources/language/resource.language.de_de/strings.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
# Kodi Media Center language file
# Addon Name: Deutsche Welle
# Addon id: plugin.video.dw
# Addon Provider: fraser
msgid ""
msgstr ""
"Project-Id-Version: XBMC Addons\n"
"Report-Msgid-Bugs-To: alanwww1@xbmc.org\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Kodi Translation Team\n"
"Language-Team: English (http://www.transifex.com/projects/p/xbmc-addons/language/en/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: en\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

msgctxt "#32000"
msgid "General"
msgstr ""

msgctxt "#32001"
msgid "Debug"
msgstr ""

msgctxt "#32002"
msgid "Language"
msgstr "Sprache"

msgctxt "#32003"
msgid "!UNUSED!"
msgstr ""

msgctxt "#32004"
msgid "Past 24 hours"
msgstr ""

msgctxt "#32005"
msgid "Recent"
msgstr ""

msgctxt "#32006"
msgid "Live"
msgstr "Live"

msgctxt "#32007"
msgid "Search"
msgstr ""

msgctxt "#32008"
msgid "Topics"
msgstr ""

msgctxt "#32009"
msgid "Shows"
msgstr "Shows"

msgctxt "#32010"
msgid "Settings"
msgstr ""

msgctxt "#32011"
msgid "Page"
msgstr ""

msgctxt "#32012"
msgid "Menu"
msgstr ""

msgctxt "#32013"
msgid "Results per-page"
msgstr ""

msgctxt "#32014"
msgid "Clear Recently Viewed"
msgstr ""

msgctxt "#32015"
msgid "Clear Searches"
msgstr ""

msgctxt "#32016"
msgid "New Search"
msgstr ""

msgctxt "#32017"
msgid "Cache"
msgstr ""

msgctxt "#32018"
msgid "Clear Cache"
msgstr ""

msgctxt "#32019"
msgid "Remove Search"
msgstr ""

msgctxt "#32020"
msgid "Save Searches"
msgstr ""

msgctxt "#32021"
msgid "!!UNUSED!!"
msgstr ""

msgctxt "#32022"
msgid "Are you sure?"
msgstr ""

msgctxt "#32023"
msgid "Podcast"
msgstr "Podcast"
10 changes: 7 additions & 3 deletions resources/language/resource.language.en_gb/strings.po
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ msgid "Recent"
msgstr ""

msgctxt "#32006"
msgid "Live TV"
msgid "Live"
msgstr ""

msgctxt "#32007"
Expand All @@ -53,8 +53,8 @@ msgid "Topics"
msgstr ""

msgctxt "#32009"
msgid "Programs"
msgstr ""
msgid "Shows"
msgstr "Shows"

msgctxt "#32010"
msgid "Settings"
Expand Down Expand Up @@ -107,3 +107,7 @@ msgstr ""
msgctxt "#32022"
msgid "Are you sure?"
msgstr ""

msgctxt "#32023"
msgid "Podcast"
msgstr ""
113 changes: 113 additions & 0 deletions resources/language/resource.language.es_es/strings.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
# Kodi Media Center language file
# Addon Name: Deutsche Welle
# Addon id: plugin.video.dw
# Addon Provider: fraser
msgid ""
msgstr ""
"Project-Id-Version: XBMC Addons\n"
"Report-Msgid-Bugs-To: alanwww1@xbmc.org\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Kodi Translation Team\n"
"Language-Team: English (http://www.transifex.com/projects/p/xbmc-addons/language/en/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: en\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

msgctxt "#32000"
msgid "General"
msgstr ""

msgctxt "#32001"
msgid "Debug"
msgstr ""

msgctxt "#32002"
msgid "Language"
msgstr "Idioma"

msgctxt "#32003"
msgid "!UNUSED!"
msgstr ""

msgctxt "#32004"
msgid "Past 24 hours"
msgstr ""

msgctxt "#32005"
msgid "Recent"
msgstr ""

msgctxt "#32006"
msgid "Live"
msgstr "En Vivo"

msgctxt "#32007"
msgid "Search"
msgstr ""

msgctxt "#32008"
msgid "Topics"
msgstr ""

msgctxt "#32009"
msgid "Shows"
msgstr "Programas"

msgctxt "#32010"
msgid "Settings"
msgstr ""

msgctxt "#32011"
msgid "Page"
msgstr ""

msgctxt "#32012"
msgid "Menu"
msgstr ""

msgctxt "#32013"
msgid "Results per-page"
msgstr ""

msgctxt "#32014"
msgid "Clear Recently Viewed"
msgstr ""

msgctxt "#32015"
msgid "Clear Searches"
msgstr ""

msgctxt "#32016"
msgid "New Search"
msgstr ""

msgctxt "#32017"
msgid "Cache"
msgstr ""

msgctxt "#32018"
msgid "Clear Cache"
msgstr ""

msgctxt "#32019"
msgid "Remove Search"
msgstr ""

msgctxt "#32020"
msgid "Save Searches"
msgstr ""

msgctxt "#32021"
msgid "!!UNUSED!!"
msgstr ""

msgctxt "#32022"
msgid "Are you sure?"
msgstr ""

msgctxt "#32023"
msgid "Podcast"
msgstr "Podcast"
7 changes: 7 additions & 0 deletions resources/lib/EndPoints.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
class EndPoints:
BASE_URL = "https://api.dw.com/api"
NAVIGATION = f"{BASE_URL}/navigation/{{language}}?product=smarttv&platform=androidtv"
VIDEO_DETAIL = f"{BASE_URL}/detail/video/{{video_id}}"
TOPICS = f"{BASE_URL}/epg/programgroups/topics/{{language_id}}"
VIDEO_LIST = f"{BASE_URL}/list/video/recent/{{language_id}}/program/{{program_id}}?pageIndex={{page_number}}"
PROGRAM_LIST = f"{BASE_URL}/epg/list/program/{{language_id}}"
46 changes: 46 additions & 0 deletions resources/lib/LiveTv.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
from codequick import Route, Listitem, run, Script, utils, Resolver
from resources.lib.dw_api import DWGraphQL
from resources.lib.dw_service import DWService
from resources.lib.EndPoints import EndPoints
import simplejson as json
import requests

api = DWGraphQL()
svc = DWService(api)

class LiveTv:
@Route.register
def get_live_tv_channels(plugin):
channels = svc.get_live_tv()
for channel in channels:
item = Listitem()
item.label = channel.get("name", "")
timeslots = channel.get("nextTimeSlots", [])
if timeslots:
first_slot = timeslots[0]
program = first_slot.get("program", {})
program_element = first_slot.get("programElement", {})

title = program.get("title", "")
subtitle = program.get("subTitle", "").strip()
teaser = program.get("teaser", "")

# Construir plot bonito tipo EPG
plot = f"[B]{title}[/B]\n"
if subtitle:
plot += f"{subtitle}\n\n"

plot += teaser

item.info["plot"] = plot

# Imagen
image = program.get("mainContentImage", {})
if image:
img_url = image.get("staticUrl", "").replace("${formatId}", "605")
item.art["thumb"] = img_url
item.art["fanart"] = img_url

item.property["IsLive"] = "true"
item.set_path(channel.get("livestreamUrl"))
yield item
Loading