XMGPlugin für TV-Browser (Beta-Version)

DBoxZeit, JtG Migrator etc.
Nachricht
Autor
z3r0
XMediaGrabber Dev
Beiträge: 2227
Registriert: Di 24 Feb 2004, 17:47
Wohnort: Nürnberg
Kontaktdaten:

#16 Beitrag von z3r0 » Do 10 Mär 2005, 8:41

Am Wocheende gibt es die RMI-Schnittstelle. Das einzige Problem das ich sehe, ist die Ermittlung der Sender-Id. Diese ist in TV-Browser ja nicht vorhanden. Das heisst, die Sender-Namen in TV-Browser muessen mit den Sendernamen in der Box übereinstimmen. Wie auch immer, um neue Timer anzulegen braucht XMG entweder einen "richtigen" Sendernamen, oder die richtige Channel-Id.
http://www.XMediaGrabber.de
Dreambox 7020
Ubuntu Feisty Fawn & WindowsXP SP2
Core2Duo E6400, 2048mb RAM

turmann
Sammler
Sammler
Beiträge: 125
Registriert: Mo 04 Aug 2003, 16:22
Wohnort: Dillingen a.d. Donau / Bayern

#17 Beitrag von turmann » Do 10 Mär 2005, 13:11

Das ist denke ich kein Problem. Wenn du dir das Plugin mal anschaust wirst du sehen, dass ich in den Einstellungen ein Channelmapping eingebaut habe. D.h. man kann jedem Sendernamen im TV-Browser einen beliebigen Namen zuordnen.

Bin ja schon gespannt, was die Schnittstelle alles bietet. Wird es möglich sein einen Timer durch Sendername, Start- und Endzeit/Datum zu identifizieren? Das wäre fürs Löschen eines Timers wichtig. Andernfalls wäre es gut wenn man beim Erstellen eine "TimerID" zurückkriegen würde. Folgende Methoden wären gut:

Code: Alles auswählen

void createNewTimer(Date startDate, Date endDate, String title, String sender) // statt Date wäre auch String denkbar
removeTimer(Date startDate, Date endDate, String title, String sender)
oder

Code: Alles auswählen

<ID> createNewTimer(Date startDate, Date endDate, String title, String sender) 
removeTimer(<ID>)
Ich hoffe das kommt jetzt nicht zu spät.

Tom

z3r0
XMediaGrabber Dev
Beiträge: 2227
Registriert: Di 24 Feb 2004, 17:47
Wohnort: Nürnberg
Kontaktdaten:

#18 Beitrag von z3r0 » Do 10 Mär 2005, 16:48

Es gibt eine saveTimer(bla bla) Methode. Falls noch mehr gebraucht wird, kann man das dann ja nachziehen. Mal sehen ob der einfache Fall funktioniert :) Um mit XMG kommunizieren zu koennen, musst du die xmediagrabber.jar in den Classpath deines Plugins einbinden.
http://www.XMediaGrabber.de
Dreambox 7020
Ubuntu Feisty Fawn & WindowsXP SP2
Core2Duo E6400, 2048mb RAM

turmann
Sammler
Sammler
Beiträge: 125
Registriert: Mo 04 Aug 2003, 16:22
Wohnort: Dillingen a.d. Donau / Bayern

#19 Beitrag von turmann » Fr 11 Mär 2005, 14:06

Wäre nett, wenn du mir dann das Package oder die namen der RMI-Interfaces mitteilen könntest. Gibts die neue Version dann als Beta im Downloadbereich?

Noch ne Frage bezüglich RMI:
Startet XMG dann auch gleich die RMI-Registry mit? Wenn ja, unter welchen Namen sind die Funktionen Registriert?

Tom

z3r0
XMediaGrabber Dev
Beiträge: 2227
Registriert: Di 24 Feb 2004, 17:47
Wohnort: Nürnberg
Kontaktdaten:

#20 Beitrag von z3r0 » Fr 11 Mär 2005, 21:19

Die rmiregistry wird mitgestartet (geht auch nicht anders) :)

Mit
(RMITimerReceiverIF)Naming.lookup("rmi://localhost:1097/xmgTimerServer");
bekommst du ein Objekt zurück das eine Methode saveTimer() besitzt. Als Parameter brauche ich
1. als String die channelId
2. String, den Sendernamen
3. long, Startzeit in millis
4. long, Stopzeit in millis
5. String, Titel der Sendung
Zuletzt geändert von z3r0 am Sa 12 Mär 2005, 16:22, insgesamt 1-mal geändert.
http://www.XMediaGrabber.de
Dreambox 7020
Ubuntu Feisty Fawn & WindowsXP SP2
Core2Duo E6400, 2048mb RAM

turmann
Sammler
Sammler
Beiträge: 125
Registriert: Mo 04 Aug 2003, 16:22
Wohnort: Dillingen a.d. Donau / Bayern

#21 Beitrag von turmann » Sa 12 Mär 2005, 10:49

Es gibt wieder eine neue Version des Plugins.

Diesmal habe ich es um die Funktion in JtG Timer zu erstellen erweitert. Löschen der Timer funktioniert noch nicht.

Evtl. gibts beim ersten Start eine Fehlermeldung (wenn ihr eine frühere Version des Plugins schon verwendet hattet). Diese einfach ignorieren, TV-Browser schließen und nochmal starten, dann sollte es keine Probleme mehr geben.

Tom

turmann
Sammler
Sammler
Beiträge: 125
Registriert: Mo 04 Aug 2003, 16:22
Wohnort: Dillingen a.d. Donau / Bayern

#22 Beitrag von turmann » So 13 Mär 2005, 17:40

@z3r0

Wäre es möglich, das Interface um eine Methode zu erweitern, die mir bei Übergabe der Senderbezeichnung die SenderID zurückgibt. Sonst müsste ich mir die ID ja über die Box holen, was ich vermeiden will.
Am besten wäre natürlich eine Methode der ich den SenderNAMEN, Titel, Anfangs- und Endzeit als java.util.Date. Ich habe auch vor die Timer wieder löschen zu können.
Eine entsprechende Methode (gleicher Aufbau wie eben) wäre nicht schlecht und natürlich eine Methode, die mir alle Timer als Liste zurückliefert.

Tom

z3r0
XMediaGrabber Dev
Beiträge: 2227
Registriert: Di 24 Feb 2004, 17:47
Wohnort: Nürnberg
Kontaktdaten:

#23 Beitrag von z3r0 » So 13 Mär 2005, 17:47

Hast recht. Ich bau das mal um, das nur der Sendername benötigt wird. In XMG ist ja schon alles da, die passende ID rauszufinden. Man muss das Rad ja nicht 2 mal erfinden.
http://www.XMediaGrabber.de
Dreambox 7020
Ubuntu Feisty Fawn & WindowsXP SP2
Core2Duo E6400, 2048mb RAM

z3r0
XMediaGrabber Dev
Beiträge: 2227
Registriert: Di 24 Feb 2004, 17:47
Wohnort: Nürnberg
Kontaktdaten:

#24 Beitrag von z3r0 » So 13 Mär 2005, 20:27

In der Version 0.3.0b (eben hochgeladen) sieht die Schnittstelle etwas anders aus.

Damit muesste es gehen.

Code: Alles auswählen

RMITimerReceiverIF test = (RMITimerReceiverIF)Naming.lookup("rmi://localhost:1097/xmgTimerServer");
            test.saveTimer("sat.1", startInMillis, stopInMillis, "titel"));
http://www.XMediaGrabber.de
Dreambox 7020
Ubuntu Feisty Fawn & WindowsXP SP2
Core2Duo E6400, 2048mb RAM

turmann
Sammler
Sammler
Beiträge: 125
Registriert: Mo 04 Aug 2003, 16:22
Wohnort: Dillingen a.d. Donau / Bayern

#25 Beitrag von turmann » So 13 Mär 2005, 20:28

Danke wär echt super.

turmann
Sammler
Sammler
Beiträge: 125
Registriert: Mo 04 Aug 2003, 16:22
Wohnort: Dillingen a.d. Donau / Bayern

#26 Beitrag von turmann » Mi 16 Mär 2005, 15:48

Hallo,
es gibt wieder mal ne neue Version des XMGPlugins. Diese Version kann mittlerweile Timer in JtG setzen und wieder entfernen, CSV-Dateien schreiben und Timer im XMG erstellen (mehr gibt das RMI-Interface noch nicht her).
Denkt bitte immer an das Channel-Mapping (siehe Einstellungen).

Ach ja und berichtet doch bitte von euren Erfahrungen, sonst kanns keine Verbesserungen geben.

Tom

z3r0
XMediaGrabber Dev
Beiträge: 2227
Registriert: Di 24 Feb 2004, 17:47
Wohnort: Nürnberg
Kontaktdaten:

#27 Beitrag von z3r0 » Mi 16 Mär 2005, 20:21

Hallo,
bei mir klappt da was nicht. Ich kann in den Einstellungen keine Sender zuordnen. Unter dem Einstellungsreiter "Sender" ist kein inziger Sender zu sehen. Weder bei TV-Broser-Sendern, noch bei den XMG-Senderen. Daraus resultiert wahrscheinlich der 2. Fehler. Wenn ich einen Timer setze, kommt dieser zwar in XMG an, aber es fehlt dern Sendername.

Ansonsten ist das eine Super Sache, wenn es funktionieren wuerde, und eine grosse Bereicherung. Sieht sehr komfotabel aus, auf diesem Wege Timer zu setzen.
http://www.XMediaGrabber.de
Dreambox 7020
Ubuntu Feisty Fawn & WindowsXP SP2
Core2Duo E6400, 2048mb RAM

turmann
Sammler
Sammler
Beiträge: 125
Registriert: Mo 04 Aug 2003, 16:22
Wohnort: Dillingen a.d. Donau / Bayern

#28 Beitrag von turmann » Mi 16 Mär 2005, 23:54

Hm,
sehr seltsam. Hast du dir den TV-Browser schon komplett eingerichtet d.h. die Senderlisten geladen und evtl. schon einige Sender zur Anzeige Ausgewählt? Normalerweise müssten in der Tabelle alle Sender stehen, die der TV-Browser kennt.
Hast du schon mal ne Version von meinem Plugin getestet? Dann könnten die alten Settings Probleme machen. Unter Windows kannst du unter C:\Dokumente und Einstellungen\<deinBenutzername>\.tvbrowser\ die beiden xmgplugen.... Dateien löschen und dann den TV-Browser neu starten. Vielleicht hilft auch ein neues Abrufen der Senderlisten.

Noch ne super Sache wäre eine Methode im RMI-Interface mit der ich auch Timer wieder entfernen kann.

Tom

turmann
Sammler
Sammler
Beiträge: 125
Registriert: Mo 04 Aug 2003, 16:22
Wohnort: Dillingen a.d. Donau / Bayern

#29 Beitrag von turmann » Do 17 Mär 2005, 0:12

Ich habe noch mal ne neue Version des Plugins hochgeladen. Könntest du das mal verwenden und den TV-Browser von der Kommandozeile starten, dann schick mir bitte die Ausgaben. Vielleicht helfen die weiter.

amdfan
Einmal-Streamer
Einmal-Streamer
Beiträge: 15
Registriert: Fr 05 Dez 2003, 23:34

#30 Beitrag von amdfan » Do 17 Mär 2005, 6:05

Teste gerade das XMGPlugin 17.03.2005.zip.
Folgendes habe ich gemacht:"1) Zur Installation einfach das JAR-File 'XMGPlugin.jar' in das Plugin-Verzeichnis des TV-Browser kopiern. 2) Wer das XMGPlugin benutzen will, um Timer in JtG zu setzen muss die datei 'jRegistryKey.dll'
in <WindowsInstallationsverzeichnis>\system32 kopieren."
Beim Zugriff auf das (aktivierte) XMG-Plugin folgende Fehlermeldung:
Fehler: Ein nicht behandelter Fehler ist aufgetreten.
Details:


----- Start of stacktrace -----
Exception occurred during event dispatching:
java.lang.NoSuchMethodError: java.lang.Boolean.parseBoolean(Ljava/lang/String;)Z
at xmgplugin.XMGSubSys.getSettingsTab(XMGSubSys.java:82)
at xmgplugin.XMGSettingsTab.createSettingsPanel(XMGSettingsTab.java:63)
at tvbrowser.ui.settings.ConfigPluginSettingsTab.createContentPanel(ConfigPluginSettingsTab.java:79)
at tvbrowser.ui.settings.ConfigPluginSettingsTab.createSettingsPanel(ConfigPluginSettingsTab.java:60)
at tvbrowser.ui.settings.SettingsDialog$SettingNode.getSettingsPanel(SettingsDialog.java:325)
at tvbrowser.ui.settings.SettingsDialog.showSettingsPanelForSelectedNode(SettingsDialog.java:224)
at tvbrowser.ui.settings.SettingsDialog.access$000(SettingsDialog.java:47)
at tvbrowser.ui.settings.SettingsDialog$1.valueChanged(SettingsDialog.java:83)
at javax.swing.JTree.fireValueChanged(Unknown Source)
at javax.swing.JTree$TreeSelectionRedirector.valueChanged(Unknown Source)
at javax.swing.tree.DefaultTreeSelectionModel.fireValueChanged(Unknown Source)
at javax.swing.tree.DefaultTreeSelectionModel.notifyPathChange(Unknown Source)
at javax.swing.tree.DefaultTreeSelectionModel.setSelectionPaths(Unknown Source)
at javax.swing.tree.DefaultTreeSelectionModel.setSelectionPath(Unknown Source)
at javax.swing.JTree.setSelectionPath(Unknown Source)
at javax.swing.plaf.basic.BasicTreeUI.selectPathForEvent(Unknown Source)
at javax.swing.plaf.basic.BasicTreeUI$MouseHandler.handleSelection(Unknown Source)
at javax.swing.plaf.basic.BasicTreeUI$MouseHandler.mousePressed(Unknown Source)
at java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.Dialog$1.run(Unknown Source)
at java.awt.Dialog.show(Unknown Source)
at util.ui.UiUtilities.centerAndShow(UiUtilities.java:84)
at tvbrowser.ui.settings.SettingsDialog.centerAndShow(SettingsDialog.java:135)
at tvbrowser.ui.mainframe.MainFrame.showSettingsDialog(MainFrame.java:674)
at tvbrowser.ui.mainframe.HorizontalToolBar$4.actionPerformed(HorizontalToolBar.java:184)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
----- End of stacktrace -----

Irgendeine Idee?

Antworten