Skip to content

Commit

Permalink
Merge pull request #48 from mediathekview/develop
Browse files Browse the repository at this point in the history
Release 0.4.1
  • Loading branch information
tuxpoldo authored Jan 20, 2018
2 parents 8e49dce + 1af63d7 commit 2e03b81
Show file tree
Hide file tree
Showing 24 changed files with 458 additions and 227 deletions.
19 changes: 10 additions & 9 deletions addon.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@
import os,re,sys,urlparse,datetime
import xbmcplugin,xbmcgui,xbmcvfs

import resources.lib.mvutils as mvutils

from contextlib import closing

from resources.lib.kodi.KodiAddon import KodiPlugin
Expand Down Expand Up @@ -190,7 +192,7 @@ def doDownloadFilm( self, filmid, quality ):
dirname = self.settings.downloadpath + showname + '/'
episode = 1
if xbmcvfs.exists( dirname ):
( dirs, epfiles, ) = xbmcvfs.listdir( dirname )
( _, epfiles, ) = xbmcvfs.listdir( dirname )
for epfile in epfiles:
match = re.search( '^.* [eE][pP]([0-9]*)\.[^/]*$', epfile )
if match and len( match.groups() ) > 0:
Expand All @@ -211,22 +213,21 @@ def doDownloadFilm( self, filmid, quality ):
bgd.Create( self.language( 30974 ), fileepi + extension )
try:
bgd.Update( 0 )
result = mvutils.url_retrieve_vfs( videourl, movname, bgd.UrlRetrieveHook )
mvutils.url_retrieve_vfs( videourl, movname, bgd.UrlRetrieveHook )
bgd.Close()
if result is not None:
self.notifier.ShowNotification( self.language( 30960 ), self.language( 30976 ).format( videourl ) )
self.notifier.ShowNotification( 30960, self.language( 30976 ).format( videourl ) )
except Exception as err:
bgd.Close()
self.error( 'Failure downloading {}: {}', videourl, err )
self.notifier.ShowError( self.language( 30952 ), self.language( 30975 ).format( videourl, err ) )
self.notifier.ShowError( 30952, self.language( 30975 ).format( videourl, err ) )

# download subtitles
if film.url_sub:
bgd = KodiBGDialog()
bgd.Create( self.language( 30978 ), fileepi + u'.ttml' )
bgd.Create( 30978, fileepi + u'.ttml' )
try:
bgd.Update( 0 )
result = mvutils.url_retrieve_vfs( film.url_sub, ttmname, bgd.UrlRetrieveHook )
mvutils.url_retrieve_vfs( film.url_sub, ttmname, bgd.UrlRetrieveHook )
try:
ttml2srt( xbmcvfs.File( ttmname, 'r' ), xbmcvfs.File( srtname, 'w' ) )
except Exception as err:
Expand All @@ -239,7 +240,7 @@ def doDownloadFilm( self, filmid, quality ):
# create NFO Files
self._make_nfo_files( film, episode, dirname, nfoname, videourl )
else:
self.notifier.ShowError( self.language( 30952 ), self.language( 30958 ) )
self.notifier.ShowError( 30952, 30958 )

def doEnqueueFilm( self, filmid ):
self.info( 'Enqueue {}', filmid )
Expand Down Expand Up @@ -298,7 +299,7 @@ def Do( self ):
elif mode[0] == 'recentchannels':
self.db.GetRecentChannels( ChannelUI( self.addon_handle, nextdir = 'recent' ) )
elif mode[0] == 'channels':
self.db.GetChannels( ChannelUI( self.addon_handle ) )
self.db.GetChannels( ChannelUI( self.addon_handle, nextdir = 'shows' ) )
elif mode[0] == 'action-dbinfo':
self.showDbInfo()
elif mode[0] == 'initial':
Expand Down
38 changes: 15 additions & 23 deletions addon.xml
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="plugin.video.mediathekview"
name="MediathekView"
version="0.4.0"
version="0.4.1"
provider-name="MediathekView.de, Leo Moll">
<requires>
<import addon="xbmc.python" version="2.25.0"/>
<import addon="script.module.requests" version="2.12.4"/>
<import addon="script.module.myconnpy" version="1.1.7"/>
<import addon="script.module.ijson" version="2.3"/>
<import addon="script.module.defusedxml" version="0.5.0"/>
</requires>
<extension
point="xbmc.python.pluginsource"
Expand All @@ -25,32 +26,23 @@
<description lang="de_DE">Ermöglicht den Zugriff auf fast alle deutschen Mediatheken der öffentlich Rechtlichen basierend auf der Datenbank von MediathekView.de</description>
<description lang="en_GB">Gives access to most video-platforms from German public service broadcasters using the database of MediathekView.de</description>
<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>
<news>v0.4.0 (2018-01-14):
<news>v0.4.1 (2018-01-20):
- Alphabetische Anzeige in Listen ist nun nicht mehr Groß-Klein-Sensitiv
- Download von Inhalten funktioniert wieder
- "Suchen nach Titel und Beschreibung" mit MySQL funktioniert wieder
- Freitextsuche kommt nun auch mit " und ' klar
- In seltenen Fällen konnte es bei der Installation oder das Update des Addons zu einem Fehler kommen, der die Datenbank korrumpiert hat.
- Das Programm mvupdate hat nicht funktioniert
- In "Alle Sendungen nach Sender" kommt man nun direkt nach der Auswahl des Senders in die Filmliste
- Die Anzahl Tage die ein Film als "Vor kurzem hinzugefügt" gilt, ist nun einstellbar
- Es ist einstellbar, ob "Vor kurzem hinzugefügt" das Sendedatum oder das Datum des Hinzufügens in der Datenbank berücksichtigt
- Anzahl der neuen Filme in "Vor Kurzem hinzugefügt nach Sender" stimmt nun
- Übersetzungsfehler korrigiert
v0.4.0 (2018-01-14):
- Android und Windows Kompatibilität da kein externer Entpacker mehr benötigt wird
- Der Datenbanktreiber für MySQL kann nun die Datenbank selbsttätig anlegen
- Im Datenbanktreiber für MySQL kann nun auch die Portnummer angegeben werden
- Konfigurierbare Begrenzung der Suchergebnisse
v0.3.5 (2018-01-11):
- Anpassungen an die Kodi-Addon Regeln
v0.3.4 (2018-01-11):
- Die Suche sucht nun auch im Sendungs-Name
- "Vor Kurzem hinzugefügt" nach Sendern durchsuchen
- Deutsche und Italienische Übersetzung funktionieren nun
v0.3.3 (2018-01-09):
- Auflösung kann nun beim Download ausgewählt werden
- Kommandozeilenaktualisierer wurde implementiert
- Fehler in der Generierung von tvshow.nfo behoben
- Die README Datei enthält nun alle Sprachen
v0.3.2 (2018-01-08):
- Dateien mit Umlauten im Namen konnten nicht heruntergeladen werden
- Herunterladen bei nicht lokalem Download-Verzeichnis erfolgt nun ohne Zwischenspeicherung
- NFO Dateien enthalten mehr Daten
v0.3.1 (2018-01-07):
- Herunterladen ist nun auch in nicht lokalen (VFS) Download-Verzeichnissen möglich
- Behebung eines sehr seltenen Fehlers der zu einem ENdlos-Update führen konnte
v0.3.0 (2018-01-07):
- Neue Funktion zum Herunterladen von Videos mit Untertiteln und Metadaten (NFO-Dateien)
- Behebung eines Fehlers der das Abspeichern der Untertitel URL in der Datenbank verhinderte
</news>
<platform>all</platform>
<language>de fr</language>
Expand Down
2 changes: 1 addition & 1 deletion mvupdate
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@

# -- Imports ------------------------------------------------
from __future__ import unicode_literals
from classes.mvupdate import UpdateApp
from resources.lib.mvupdate import UpdateApp

# -- Main Code ----------------------------------------------
if __name__ == '__main__':
Expand Down
22 changes: 19 additions & 3 deletions resources/language/resource.language.de_de/strings.po
Original file line number Diff line number Diff line change
Expand Up @@ -32,24 +32,40 @@ msgstr "HD Streams bevorzugen"

msgctxt "#30111"
msgid "No future videos (usually trailers)"
msgstr "Keine Videos aus der Zukunft (üblicherweise Trailer)"
msgstr "Keine Filme aus der Zukunft (üblicherweise Trailer)"

msgctxt "#30112"
msgid "Minimum duration in minutes"
msgstr "Minimlae Länge in Minuten"
msgstr "Minimale Länge in Minuten"

msgctxt "#30113"
msgid "Group shows of different channel"
msgstr "Sendungen verschiedener Sender zusammenfassen"

msgctxt "#30114"
msgid "Download directory"
msgid "Limit search results"
msgstr "Suchergebnisse eingrenzen"

msgctxt "#30115"
msgid "Max age of recents in days"
msgstr "Maximales Alter der Neuigkeiten in Tagen"

msgctxt "#30116"
msgid "Recent calculated by"
msgstr "Neuigkeit berechnet ab"

msgctxt "#30118"
msgid "Download directory"
msgstr "Download-Verzeichnis"

msgctxt "#30161"
msgid "Aired Date"
msgstr "Sendedatum"

msgctxt "#30162"
msgid "Added to Database"
msgstr "Hinzugefügt zur Datenbank"

# Settings Page 2
msgctxt "#30210"
msgid "Database type"
Expand Down
16 changes: 16 additions & 0 deletions resources/language/resource.language.en_gb/strings.po
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,25 @@ msgid "Limit search results"
msgstr "Limit search results"

msgctxt "#30115"
msgid "Max age of recents in days"
msgstr "Max age of recents in days"

msgctxt "#30116"
msgid "Recent calculated by"
msgstr "Recent calculated by"

msgctxt "#30118"
msgid "Download directory"
msgstr "Download directory"

msgctxt "#30161"
msgid "Aired Date"
msgstr "Aired Date"

msgctxt "#30162"
msgid "Added to Database"
msgstr "Added to Database"

# Settings Page 2
msgctxt "#30210"
msgid "Database type"
Expand Down
20 changes: 18 additions & 2 deletions resources/language/resource.language.it_it/strings.po
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,25 @@ msgid "Limit search results"
msgstr "Limita risultati ricerche"

msgctxt "#30115"
msgid "Max age of recents"
msgstr "Età massima delle novità in giorni"

msgctxt "#30116"
msgid "Recent calculated by"
msgstr "Novità calcolate con"

msgctxt "#30118"
msgid "Download directory"
msgstr "Directory di download"

msgctxt "#30161"
msgid "Aired Date"
msgstr "Data di Trasmissione"

msgctxt "#30162"
msgid "Added to Database"
msgstr "Entrata nel database"

# Settings Page 2
msgctxt "#30210"
msgid "Database type"
Expand Down Expand Up @@ -106,11 +122,11 @@ msgstr "Livestreams"

msgctxt "#30904"
msgid "Recently Added"
msgstr "Recenti"
msgstr "Novità"

msgctxt "#30905"
msgid "Recently Added by Channel"
msgstr "Recenti secondo emittenti"
msgstr "Novità secondo emittenti"

msgctxt "#30906"
msgid "Browse by Show in all Channels"
Expand Down
2 changes: 1 addition & 1 deletion resources/lib/base/Logger.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,6 @@ def info( self, message, *args ):

def warn( self, message, *args ):
pass

def error( self, message, *args ):
pass
12 changes: 5 additions & 7 deletions resources/lib/channelui.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,16 @@
#

# -- Imports ------------------------------------------------
import sys, urllib
import xbmcplugin, xbmcgui
import xbmcgui
import xbmcplugin

import resources.lib.mvutils as mvutils

from resources.lib.channel import Channel

# -- Classes ------------------------------------------------
class ChannelUI( Channel ):
def __init__( self, handle, sortmethods = None, nextdir = 'initial' ):
self.base_url = sys.argv[0]
self.nextdir = nextdir
self.handle = handle
self.sortmethods = sortmethods if sortmethods is not None else [ xbmcplugin.SORT_METHOD_TITLE ]
Expand All @@ -26,7 +27,7 @@ def Add( self, altname = None ):
li = xbmcgui.ListItem( label = resultingname if altname is None else altname )
xbmcplugin.addDirectoryItem(
handle = self.handle,
url = self.build_url( {
url = mvutils.build_url( {
'mode': self.nextdir,
'channel': self.id
} ),
Expand All @@ -36,6 +37,3 @@ def Add( self, altname = None ):

def End( self ):
xbmcplugin.endOfDirectory( self.handle )

def build_url( self, query ):
return self.base_url + '?' + urllib.urlencode( query )
3 changes: 3 additions & 0 deletions resources/lib/exceptions.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,6 @@ class DatabaseCorrupted( RuntimeError ):

class DatabaseLost( RuntimeError ):
"""This exception is raised when the connection to the database is lost during update"""

class ExitRequested( Exception ):
"""This exception is thrown if the addon is shut down by Kodi or by another same addon"""
7 changes: 4 additions & 3 deletions resources/lib/filmui.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
#

# -- Imports ------------------------------------------------
import xbmcplugin, xbmcgui
import xbmcgui
import xbmcplugin

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

infoLabels = {
'title' : resultingtitle + videohds,
'sorttitle' : resultingtitle,
'sorttitle' : resultingtitle.lower(),
'tvshowtitle' : self.show,
'plot' : self.description
}
Expand All @@ -63,7 +64,7 @@ def Add( self, alttitle = None, totalItems = None ):
infoLabels['aired'] = airedstring
infoLabels['dateadded'] = airedstring

li = xbmcgui.ListItem( resultingtitle, self.description )
li = xbmcgui.ListItem( resultingtitle )
li.setInfo( type = 'video', infoLabels = infoLabels )
li.setProperty( 'IsPlayable', 'true' )

Expand Down
13 changes: 5 additions & 8 deletions resources/lib/initialui.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,10 @@
#

# -- Imports ------------------------------------------------
import sys, urllib
import xbmcplugin, xbmcgui
import xbmcgui
import xbmcplugin

import resources.lib.mvutils as mvutils

# -- Classes ------------------------------------------------
class InitialUI( object ):
Expand All @@ -28,7 +30,7 @@ def Add( self, altname = None ):
li = xbmcgui.ListItem( label = resultingname )
xbmcplugin.addDirectoryItem(
handle = self.handle,
url = _build_url( {
url = mvutils.build_url( {
'mode': "shows",
'channel': self.channelid,
'initial': self.initial,
Expand All @@ -40,8 +42,3 @@ def Add( self, altname = None ):

def End( self ):
xbmcplugin.endOfDirectory( self.handle )

# -- Functions ----------------------------------------------

def _build_url( query ):
return sys.argv[0] + '?' + urllib.urlencode( query )
Loading

0 comments on commit 2e03b81

Please sign in to comment.