CapturePlugin: Dreambox-Fehlermeldung anzeigen

Antworten
ag
Newbie
Beiträge: 1
Registriert: 12 Jun 2012, 12:40
Wohnort: Ilvesheim

CapturePlugin: Dreambox-Fehlermeldung anzeigen

Beitrag von ag » 12 Jun 2012, 16:29

ich bin seit kurzem stolzer Besitzer eines Vu+-Uno Recorders (enigma2). Es ist begeisternd, wie gut der TV-Brower (den ich schon lange nutze) damit zusammenspielt. Aber wie der Mensch so ist, gibt es nichts, bei dem nicht weitere Wünsche geweckt werden ...

Bei der Programmierung von kollidierenden Timern fände ich es besser, die Fehlermeldung des Recorders zu sehen. Diese Meldung wird zwar nicht in der passenden Sprache angezeigt, aber ich finde sie trotzdem aussagekräftiger als nichts - und ihr habt die Meldung auch schon so schön aus der http-response extrahiert.
Screenshot gewünschte Fehlermeldung
Screenshot gewünschte Fehlermeldung
scrennshot-klein.jpg (81.21 KiB) 3479 mal betrachtet
Ich habe es mal eingebaut... Anbei die Änderungen zur Version 3.1. Es würde mich sehr freuen, wenn diese Änderung euer Gefallen findet (nur mal so als Vorschlag)

Code: Alles auswählen

Index: src/main/java/captureplugin/drivers/dreambox/connector/DreamboxConnector.java
===================================================================
--- src/main/java/captureplugin/drivers/dreambox/connector/DreamboxConnector.java (revision 7350)
+++ src/main/java/captureplugin/drivers/dreambox/connector/DreamboxConnector.java (working copy)
@@ -68,6 +68,7 @@
   private final static String BOUQUET_LIST = "1:7:1:0:0:0:0:0:0:0:(type == 1) || (type == 17) || (type == 195) || (type == 25)FROM BOUQUET \"bouquets.tv\" ORDER BY bouquet";
   /** Config of the Dreambox */
   private DreamboxConfig mConfig;
+  private String         mLastStateText="";
 
   private static final int WEBIF_MINIMUM_VERSION = 20070701;
 
@@ -82,6 +83,12 @@
   }
 
   /**
+   * @return Text of last state query
+   */
+  public String getLastStateText() {
+ return mLastStateText;
+  }
+  /**
    * @param service
    *          Service-ID
    * @return Data of specific service
@@ -359,6 +366,7 @@
       SAXParser saxParser = SAXParserFactory.newInstance().newSAXParser();
       DreamboxStateHandler handler = new DreamboxStateHandler();
       saxParser.parse(stream, handler);
+      mLastStateText=handler.getStatetext();
       return (Boolean.valueOf(handler.getState()));
     } catch (UnsupportedEncodingException e) {
       e.printStackTrace();
@@ -420,6 +428,7 @@
       SAXParser saxParser = SAXParserFactory.newInstance().newSAXParser();
       DreamboxStateHandler handler = new DreamboxStateHandler();
       saxParser.parse(stream, handler);
+      mLastStateText=handler.getStatetext();
       return Boolean.valueOf(handler.getState());
     } catch (UnsupportedEncodingException e) {
       e.printStackTrace();
Index: src/main/java/captureplugin/drivers/dreambox/DreamboxDevice.java
===================================================================
--- src/main/java/captureplugin/drivers/dreambox/DreamboxDevice.java  (revision 7350)
+++ src/main/java/captureplugin/drivers/dreambox/DreamboxDevice.java  (working copy)
@@ -220,7 +220,14 @@
 
             if (dialog.getPrgTime() != null) {
                 DreamboxConnector connector = new DreamboxConnector(mConfig);
-                return connector.addRecording(channel, dialog.getPrgTime(), box.getSelectedIndex(), mConfig.getTimeZone());
+                if (!connector.addRecording(channel, dialog.getPrgTime(), box.getSelectedIndex(), mConfig.getTimeZone())) {
+                    JOptionPane.showMessageDialog(parent,
+                       mLocalizer.msg("failedText","Programming operation failed:\n") + connector.getLastStateText(),
+                            mLocalizer.msg("failedTitle","Failed"),
+                            JOptionPane.INFORMATION_MESSAGE);
+                 return false;
+                }
+                return true;
             }
         }
         
@@ -236,8 +243,13 @@
                 ExternalChannelIf channel = mConfig.getExternalChannel(program.getChannel());
                 if (channel != null) {
                     DreamboxConnector connector = new DreamboxConnector(mConfig);
-                    return connector.removeRecording((DreamboxChannel) channel, time, mConfig.getTimeZone());
-                }
+                    if (!connector.removeRecording((DreamboxChannel) channel, time, mConfig.getTimeZone())) {
+                        JOptionPane.showMessageDialog(parent,
+                           mLocalizer.msg("failedText","Programming operation failed:\n") + connector.getLastStateText(),
+                                mLocalizer.msg("failedTitle","Failed"),
+                                JOptionPane.INFORMATION_MESSAGE);
+                    }
+                    return true;                }
             }
         }
 
Index: src/main/resources/captureplugin/drivers/dreambox/dreambox.properties
===================================================================
--- src/main/resources/captureplugin/drivers/dreambox/dreambox.properties (revision 7350)
+++ src/main/resources/captureplugin/drivers/dreambox/dreambox.properties (working copy)
@@ -37,6 +37,8 @@
 DreamboxDevice.afterEventTitle               = After recording
 DreamboxDevice.expiredText                   = This program has expired. It's not possible to record it.\nWell, unless you have a time-machine.
 DreamboxDevice.expiredTitle                  = Expired
+DreamboxDevice.failedText                    = Programming operation failed:\n
+DreamboxDevice.failedTitle                   = Timer failed
 DreamboxDevice.mediaplayerNotConfiguredText  = Unfortunately, a problem occurred during executing the mediaplayer,\ndo you want to correct the configuration now?
 DreamboxDevice.mediaplayerNotConfiguredTitle = Configure
 DreamboxDevice.notConfiguredText             = Channel not configured, do\nyou want to do this now?
Index: src/main/resources/captureplugin/drivers/dreambox/dreambox_de.properties
===================================================================
--- src/main/resources/captureplugin/drivers/dreambox/dreambox_de.properties  (revision 7350)
+++ src/main/resources/captureplugin/drivers/dreambox/dreambox_de.properties  (working copy)
@@ -36,6 +36,8 @@
 DreamboxDevice.afterEventTitle               = Nach der Aufnahme
 DreamboxDevice.expiredText                   = Diese Sendung ist leider vorbei. Es ist nicht m\u00F6glich, diese aufzunehmen,\nes sei denn du besitzt eine Zeitmaschine.
 DreamboxDevice.expiredTitle                  = Sendung vorbei
+DreamboxDevice.failedText                    = Timer-Programmierung nicht m\u00F6glich:\n
+DreamboxDevice.failedTitle                   = Timer Fehler
 DreamboxDevice.mediaplayerNotConfiguredText  = Leider ist ein Problem beim Starten des Medienplayers aufgetreten.\nWollen Sie die Einstellungen korrigieren?
 DreamboxDevice.mediaplayerNotConfiguredTitle = Konfigurieren
 DreamboxDevice.notConfiguredText             = Der Sender ist noch nicht konfiguriert.\nWollen Sie dies nun nachholen?
Vielen Dank für euer tolles Programm

ag

markus.ruderman
Newbie
Beiträge: 6
Registriert: 14 Sep 2012, 17:13

Re: CapturePlugin: Dreambox-Fehlermeldung anzeigen

Beitrag von markus.ruderman » 16 Sep 2012, 09:52

Hi,

danke für den tollen Vorschlag und dass du deine Änderung darstellst :-)
Ich werde das gleich mal in meine letzten Änderungen/Bugfix einbauen -> [TVB-1096] Capture plugin for Dreambox ... und dann den aktuellen Source und Plugin wieder zur Verfügung stellen.

PS an die Devs: vielleicht wäre ein Umstieg auf Github nicht so blöd ;-)

Gruß
Markus

ds10
Site Admin
Beiträge: 17330
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Re: CapturePlugin: Dreambox-Fehlermeldung anzeigen

Beitrag von ds10 » 16 Sep 2012, 10:08

@Markus
Du kannst dich bei SF.net anmelden und mir deinen Benutzernamen nennen, dann trage ich dich dort ein, so dass du den Code selbstständig ändern kannst.
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser

markus.ruderman
Newbie
Beiträge: 6
Registriert: 14 Sep 2012, 17:13

Re: CapturePlugin: Dreambox-Fehlermeldung anzeigen

Beitrag von markus.ruderman » 16 Sep 2012, 11:51

So Änderung ist eingepflegt und Sourcen wurden commited :D

ds10
Site Admin
Beiträge: 17330
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Re: CapturePlugin: Dreambox-Fehlermeldung anzeigen

Beitrag von ds10 » 16 Sep 2012, 12:08

Ich hab' die neue Version hochgeladen.

@Markus
Bitte erhöhe bei einem abschließenden Commit auch noch die Versionsnummer in CapturePlugin.java (habe ich für diese Änderung jetzt schon gemacht). Hinweise zur Versionierung hier zu finden.
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser

markus.ruderman
Newbie
Beiträge: 6
Registriert: 14 Sep 2012, 17:13

Re: CapturePlugin: Dreambox-Fehlermeldung anzeigen

Beitrag von markus.ruderman » 16 Sep 2012, 12:13

Ok, sorry das ich darauf nicht geschaut habe und danke für den Hinweis.

ds10
Site Admin
Beiträge: 17330
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Re: CapturePlugin: Dreambox-Fehlermeldung anzeigen

Beitrag von ds10 » 16 Sep 2012, 12:17

Das ist ja kein Problem, sich in fremden Quellcode einzuarbeiten ist immer ein ganz schöner Aufwand. ;)
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser

Antworten