Seite 1 von 1

CapturePlugin: Dreambox-Fehlermeldung anzeigen

Verfasst: 12 Jun 2012, 16:29
von ag
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) 6307 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

Re: CapturePlugin: Dreambox-Fehlermeldung anzeigen

Verfasst: 16 Sep 2012, 09:52
von markus.ruderman
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

Re: CapturePlugin: Dreambox-Fehlermeldung anzeigen

Verfasst: 16 Sep 2012, 10:08
von ds10
@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.

Re: CapturePlugin: Dreambox-Fehlermeldung anzeigen

Verfasst: 16 Sep 2012, 11:51
von markus.ruderman
So Änderung ist eingepflegt und Sourcen wurden commited :D

Re: CapturePlugin: Dreambox-Fehlermeldung anzeigen

Verfasst: 16 Sep 2012, 12:08
von ds10
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.

Re: CapturePlugin: Dreambox-Fehlermeldung anzeigen

Verfasst: 16 Sep 2012, 12:13
von markus.ruderman
Ok, sorry das ich darauf nicht geschaut habe und danke für den Hinweis.

Re: CapturePlugin: Dreambox-Fehlermeldung anzeigen

Verfasst: 16 Sep 2012, 12:17
von ds10
Das ist ja kein Problem, sich in fremden Quellcode einzuarbeiten ist immer ein ganz schöner Aufwand. ;)