Skip to content

Commit 2e03b81

Browse files
authored
Merge pull request #48 from mediathekview/develop
Release 0.4.1
2 parents 8e49dce + 1af63d7 commit 2e03b81

24 files changed

Lines changed: 458 additions & 227 deletions

File tree

addon.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@
3030
import os,re,sys,urlparse,datetime
3131
import xbmcplugin,xbmcgui,xbmcvfs
3232

33+
import resources.lib.mvutils as mvutils
34+
3335
from contextlib import closing
3436

3537
from resources.lib.kodi.KodiAddon import KodiPlugin
@@ -190,7 +192,7 @@ def doDownloadFilm( self, filmid, quality ):
190192
dirname = self.settings.downloadpath + showname + '/'
191193
episode = 1
192194
if xbmcvfs.exists( dirname ):
193-
( dirs, epfiles, ) = xbmcvfs.listdir( dirname )
195+
( _, epfiles, ) = xbmcvfs.listdir( dirname )
194196
for epfile in epfiles:
195197
match = re.search( '^.* [eE][pP]([0-9]*)\.[^/]*$', epfile )
196198
if match and len( match.groups() ) > 0:
@@ -211,22 +213,21 @@ def doDownloadFilm( self, filmid, quality ):
211213
bgd.Create( self.language( 30974 ), fileepi + extension )
212214
try:
213215
bgd.Update( 0 )
214-
result = mvutils.url_retrieve_vfs( videourl, movname, bgd.UrlRetrieveHook )
216+
mvutils.url_retrieve_vfs( videourl, movname, bgd.UrlRetrieveHook )
215217
bgd.Close()
216-
if result is not None:
217-
self.notifier.ShowNotification( self.language( 30960 ), self.language( 30976 ).format( videourl ) )
218+
self.notifier.ShowNotification( 30960, self.language( 30976 ).format( videourl ) )
218219
except Exception as err:
219220
bgd.Close()
220221
self.error( 'Failure downloading {}: {}', videourl, err )
221-
self.notifier.ShowError( self.language( 30952 ), self.language( 30975 ).format( videourl, err ) )
222+
self.notifier.ShowError( 30952, self.language( 30975 ).format( videourl, err ) )
222223

223224
# download subtitles
224225
if film.url_sub:
225226
bgd = KodiBGDialog()
226-
bgd.Create( self.language( 30978 ), fileepi + u'.ttml' )
227+
bgd.Create( 30978, fileepi + u'.ttml' )
227228
try:
228229
bgd.Update( 0 )
229-
result = mvutils.url_retrieve_vfs( film.url_sub, ttmname, bgd.UrlRetrieveHook )
230+
mvutils.url_retrieve_vfs( film.url_sub, ttmname, bgd.UrlRetrieveHook )
230231
try:
231232
ttml2srt( xbmcvfs.File( ttmname, 'r' ), xbmcvfs.File( srtname, 'w' ) )
232233
except Exception as err:
@@ -239,7 +240,7 @@ def doDownloadFilm( self, filmid, quality ):
239240
# create NFO Files
240241
self._make_nfo_files( film, episode, dirname, nfoname, videourl )
241242
else:
242-
self.notifier.ShowError( self.language( 30952 ), self.language( 30958 ) )
243+
self.notifier.ShowError( 30952, 30958 )
243244

244245
def doEnqueueFilm( self, filmid ):
245246
self.info( 'Enqueue {}', filmid )
@@ -298,7 +299,7 @@ def Do( self ):
298299
elif mode[0] == 'recentchannels':
299300
self.db.GetRecentChannels( ChannelUI( self.addon_handle, nextdir = 'recent' ) )
300301
elif mode[0] == 'channels':
301-
self.db.GetChannels( ChannelUI( self.addon_handle ) )
302+
self.db.GetChannels( ChannelUI( self.addon_handle, nextdir = 'shows' ) )
302303
elif mode[0] == 'action-dbinfo':
303304
self.showDbInfo()
304305
elif mode[0] == 'initial':

addon.xml

Lines changed: 15 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
22
<addon id="plugin.video.mediathekview"
33
name="MediathekView"
4-
version="0.4.0"
4+
version="0.4.1"
55
provider-name="MediathekView.de, Leo Moll">
66
<requires>
77
<import addon="xbmc.python" version="2.25.0"/>
88
<import addon="script.module.requests" version="2.12.4"/>
99
<import addon="script.module.myconnpy" version="1.1.7"/>
1010
<import addon="script.module.ijson" version="2.3"/>
11+
<import addon="script.module.defusedxml" version="0.5.0"/>
1112
</requires>
1213
<extension
1314
point="xbmc.python.pluginsource"
@@ -25,32 +26,23 @@
2526
<description lang="de_DE">Ermöglicht den Zugriff auf fast alle deutschen Mediatheken der öffentlich Rechtlichen basierend auf der Datenbank von MediathekView.de</description>
2627
<description lang="en_GB">Gives access to most video-platforms from German public service broadcasters using the database of MediathekView.de</description>
2728
<description lang="it_IT">Fornisce l'accesso a gran parte delle piattaforme video operate dalle emittenti pubbliche tedesche usando la banca dati di MediathekView.de</description>
28-
<news>v0.4.0 (2018-01-14):
29+
<news>v0.4.1 (2018-01-20):
30+
- Alphabetische Anzeige in Listen ist nun nicht mehr Groß-Klein-Sensitiv
31+
- Download von Inhalten funktioniert wieder
32+
- "Suchen nach Titel und Beschreibung" mit MySQL funktioniert wieder
33+
- Freitextsuche kommt nun auch mit " und ' klar
34+
- In seltenen Fällen konnte es bei der Installation oder das Update des Addons zu einem Fehler kommen, der die Datenbank korrumpiert hat.
35+
- Das Programm mvupdate hat nicht funktioniert
36+
- In "Alle Sendungen nach Sender" kommt man nun direkt nach der Auswahl des Senders in die Filmliste
37+
- Die Anzahl Tage die ein Film als "Vor kurzem hinzugefügt" gilt, ist nun einstellbar
38+
- Es ist einstellbar, ob "Vor kurzem hinzugefügt" das Sendedatum oder das Datum des Hinzufügens in der Datenbank berücksichtigt
39+
- Anzahl der neuen Filme in "Vor Kurzem hinzugefügt nach Sender" stimmt nun
40+
- Übersetzungsfehler korrigiert
41+
v0.4.0 (2018-01-14):
2942
- Android und Windows Kompatibilität da kein externer Entpacker mehr benötigt wird
3043
- Der Datenbanktreiber für MySQL kann nun die Datenbank selbsttätig anlegen
3144
- Im Datenbanktreiber für MySQL kann nun auch die Portnummer angegeben werden
3245
- Konfigurierbare Begrenzung der Suchergebnisse
33-
v0.3.5 (2018-01-11):
34-
- Anpassungen an die Kodi-Addon Regeln
35-
v0.3.4 (2018-01-11):
36-
- Die Suche sucht nun auch im Sendungs-Name
37-
- "Vor Kurzem hinzugefügt" nach Sendern durchsuchen
38-
- Deutsche und Italienische Übersetzung funktionieren nun
39-
v0.3.3 (2018-01-09):
40-
- Auflösung kann nun beim Download ausgewählt werden
41-
- Kommandozeilenaktualisierer wurde implementiert
42-
- Fehler in der Generierung von tvshow.nfo behoben
43-
- Die README Datei enthält nun alle Sprachen
44-
v0.3.2 (2018-01-08):
45-
- Dateien mit Umlauten im Namen konnten nicht heruntergeladen werden
46-
- Herunterladen bei nicht lokalem Download-Verzeichnis erfolgt nun ohne Zwischenspeicherung
47-
- NFO Dateien enthalten mehr Daten
48-
v0.3.1 (2018-01-07):
49-
- Herunterladen ist nun auch in nicht lokalen (VFS) Download-Verzeichnissen möglich
50-
- Behebung eines sehr seltenen Fehlers der zu einem ENdlos-Update führen konnte
51-
v0.3.0 (2018-01-07):
52-
- Neue Funktion zum Herunterladen von Videos mit Untertiteln und Metadaten (NFO-Dateien)
53-
- Behebung eines Fehlers der das Abspeichern der Untertitel URL in der Datenbank verhinderte
5446
</news>
5547
<platform>all</platform>
5648
<language>de fr</language>

mvupdate

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626
# -- Imports ------------------------------------------------
2727
from __future__ import unicode_literals
28-
from classes.mvupdate import UpdateApp
28+
from resources.lib.mvupdate import UpdateApp
2929

3030
# -- Main Code ----------------------------------------------
3131
if __name__ == '__main__':

resources/language/resource.language.de_de/strings.po

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,24 +32,40 @@ msgstr "HD Streams bevorzugen"
3232

3333
msgctxt "#30111"
3434
msgid "No future videos (usually trailers)"
35-
msgstr "Keine Videos aus der Zukunft (üblicherweise Trailer)"
35+
msgstr "Keine Filme aus der Zukunft (üblicherweise Trailer)"
3636

3737
msgctxt "#30112"
3838
msgid "Minimum duration in minutes"
39-
msgstr "Minimlae Länge in Minuten"
39+
msgstr "Minimale Länge in Minuten"
4040

4141
msgctxt "#30113"
4242
msgid "Group shows of different channel"
4343
msgstr "Sendungen verschiedener Sender zusammenfassen"
4444

4545
msgctxt "#30114"
46-
msgid "Download directory"
46+
msgid "Limit search results"
4747
msgstr "Suchergebnisse eingrenzen"
4848

4949
msgctxt "#30115"
50+
msgid "Max age of recents in days"
51+
msgstr "Maximales Alter der Neuigkeiten in Tagen"
52+
53+
msgctxt "#30116"
54+
msgid "Recent calculated by"
55+
msgstr "Neuigkeit berechnet ab"
56+
57+
msgctxt "#30118"
5058
msgid "Download directory"
5159
msgstr "Download-Verzeichnis"
5260

61+
msgctxt "#30161"
62+
msgid "Aired Date"
63+
msgstr "Sendedatum"
64+
65+
msgctxt "#30162"
66+
msgid "Added to Database"
67+
msgstr "Hinzugefügt zur Datenbank"
68+
5369
# Settings Page 2
5470
msgctxt "#30210"
5571
msgid "Database type"

resources/language/resource.language.en_gb/strings.po

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,25 @@ msgid "Limit search results"
4747
msgstr "Limit search results"
4848

4949
msgctxt "#30115"
50+
msgid "Max age of recents in days"
51+
msgstr "Max age of recents in days"
52+
53+
msgctxt "#30116"
54+
msgid "Recent calculated by"
55+
msgstr "Recent calculated by"
56+
57+
msgctxt "#30118"
5058
msgid "Download directory"
5159
msgstr "Download directory"
5260

61+
msgctxt "#30161"
62+
msgid "Aired Date"
63+
msgstr "Aired Date"
64+
65+
msgctxt "#30162"
66+
msgid "Added to Database"
67+
msgstr "Added to Database"
68+
5369
# Settings Page 2
5470
msgctxt "#30210"
5571
msgid "Database type"

resources/language/resource.language.it_it/strings.po

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,25 @@ msgid "Limit search results"
4747
msgstr "Limita risultati ricerche"
4848

4949
msgctxt "#30115"
50+
msgid "Max age of recents"
51+
msgstr "Età massima delle novità in giorni"
52+
53+
msgctxt "#30116"
54+
msgid "Recent calculated by"
55+
msgstr "Novità calcolate con"
56+
57+
msgctxt "#30118"
5058
msgid "Download directory"
5159
msgstr "Directory di download"
5260

61+
msgctxt "#30161"
62+
msgid "Aired Date"
63+
msgstr "Data di Trasmissione"
64+
65+
msgctxt "#30162"
66+
msgid "Added to Database"
67+
msgstr "Entrata nel database"
68+
5369
# Settings Page 2
5470
msgctxt "#30210"
5571
msgid "Database type"
@@ -106,11 +122,11 @@ msgstr "Livestreams"
106122

107123
msgctxt "#30904"
108124
msgid "Recently Added"
109-
msgstr "Recenti"
125+
msgstr "Novità"
110126

111127
msgctxt "#30905"
112128
msgid "Recently Added by Channel"
113-
msgstr "Recenti secondo emittenti"
129+
msgstr "Novità secondo emittenti"
114130

115131
msgctxt "#30906"
116132
msgid "Browse by Show in all Channels"

resources/lib/base/Logger.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,6 @@ def info( self, message, *args ):
2828

2929
def warn( self, message, *args ):
3030
pass
31-
31+
3232
def error( self, message, *args ):
3333
pass

resources/lib/channelui.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,16 @@
33
#
44

55
# -- Imports ------------------------------------------------
6-
import sys, urllib
7-
import xbmcplugin, xbmcgui
6+
import xbmcgui
7+
import xbmcplugin
8+
9+
import resources.lib.mvutils as mvutils
810

911
from resources.lib.channel import Channel
1012

1113
# -- Classes ------------------------------------------------
1214
class ChannelUI( Channel ):
1315
def __init__( self, handle, sortmethods = None, nextdir = 'initial' ):
14-
self.base_url = sys.argv[0]
1516
self.nextdir = nextdir
1617
self.handle = handle
1718
self.sortmethods = sortmethods if sortmethods is not None else [ xbmcplugin.SORT_METHOD_TITLE ]
@@ -26,7 +27,7 @@ def Add( self, altname = None ):
2627
li = xbmcgui.ListItem( label = resultingname if altname is None else altname )
2728
xbmcplugin.addDirectoryItem(
2829
handle = self.handle,
29-
url = self.build_url( {
30+
url = mvutils.build_url( {
3031
'mode': self.nextdir,
3132
'channel': self.id
3233
} ),
@@ -36,6 +37,3 @@ def Add( self, altname = None ):
3637

3738
def End( self ):
3839
xbmcplugin.endOfDirectory( self.handle )
39-
40-
def build_url( self, query ):
41-
return self.base_url + '?' + urllib.urlencode( query )

resources/lib/exceptions.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,6 @@ class DatabaseCorrupted( RuntimeError ):
77

88
class DatabaseLost( RuntimeError ):
99
"""This exception is raised when the connection to the database is lost during update"""
10+
11+
class ExitRequested( Exception ):
12+
"""This exception is thrown if the addon is shut down by Kodi or by another same addon"""

resources/lib/filmui.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
#
44

55
# -- Imports ------------------------------------------------
6-
import xbmcplugin, xbmcgui
6+
import xbmcgui
7+
import xbmcplugin
78

89
from resources.lib.film import Film
910
from resources.lib.settings import Settings
@@ -45,7 +46,7 @@ def Add( self, alttitle = None, totalItems = None ):
4546

4647
infoLabels = {
4748
'title' : resultingtitle + videohds,
48-
'sorttitle' : resultingtitle,
49+
'sorttitle' : resultingtitle.lower(),
4950
'tvshowtitle' : self.show,
5051
'plot' : self.description
5152
}
@@ -63,7 +64,7 @@ def Add( self, alttitle = None, totalItems = None ):
6364
infoLabels['aired'] = airedstring
6465
infoLabels['dateadded'] = airedstring
6566

66-
li = xbmcgui.ListItem( resultingtitle, self.description )
67+
li = xbmcgui.ListItem( resultingtitle )
6768
li.setInfo( type = 'video', infoLabels = infoLabels )
6869
li.setProperty( 'IsPlayable', 'true' )
6970

0 commit comments

Comments
 (0)