mediathekview / plugin.video.mediathekview

Kodi plugin that gives access to most video-platforms from German public service broadcasters using the database of MediathekView.de
https://mediathekview.de/download/#mediathekview-f%C3%BCr-kodi-fr%C3%BCher-xbmc
MIT License
55 stars 25 forks source link

standalone mvupdate+mysql-connector-python 8.x.x: _mysql_connector.MySQLInterfaceError: Unknown database 'mediathekview' #160

Closed TpmKranz closed 4 years ago

TpmKranz commented 4 years ago

Ab mysql-connector-python Version 8 wird standardmäßig die C-Extension der reinen Python-Implementierung vorgezogen, so sie verfügbar ist. Ich kann nicht sagen, ob das ein Fehler im Konnektor ist, aber wenn die C-Extension benutzt wird, ändert sich die Ausnahme, die beim Verbinden mit einer nicht-vorhandenen Datenbank geworfen wird, sodass folgende Zeile sie nicht mehr fängt: https://github.com/mediathekview/plugin.video.mediathekview/blob/1b18cdd9d914b5aa5282ba12652214c85a802af1/resources/lib/storemysql.py#L95 Das Resultat:

Traceback (most recent call last):
  File "mvupdate", line 36, in <module>
    APP.init()
  File "/home/media/plugin.video.mediathekview/resources/lib/mvupdate.py", line 537, in init
    return self.updater.init(convert=True)
  File "/home/media/plugin.video.mediathekview/resources/lib/updater.py", line 88, in init
    self.database.init(convert=convert)
  File "/home/media/plugin.video.mediathekview/resources/lib/store.py", line 61, in init
    return self.database.init(reset, convert)
  File "/home/media/plugin.video.mediathekview/resources/lib/storemysql.py", line 94, in init
    self.conn.database = self.settings.database
  File "/home/media/.local/lib/python3.7/site-packages/mysql/connector/connection_cext.py", line 138, in database
    self._cmysql.select_db(value)
_mysql_connector.MySQLInterfaceError: Unknown database 'mediathekview'

Ein einfacher Workaround wäre, die reine Python-Implementierung zu erzwingen, siehe https://github.com/TpmKranz/plugin.video.mediathekview/commit/19445c2f2ce6c3e1b52c5a7585bb9c1c08ef401d. Ich habe auch getestet, den except-Ausdruck mit Exception zu verallgemeinern und das funktioniert erst einmal (insbesondere scheint auch die errno gleichzubleiben), läuft aber natürlich Gefahr, ganz andere Ausnahmen einzufangen.

codingPF commented 4 years ago

Das sieht gut aus...mach doch mal ein PR draus