diff --git a/src/main/java/mediathek/config/MVConfig.java b/src/main/java/mediathek/config/MVConfig.java index c227e4186f..cdc81f5aa9 100644 --- a/src/main/java/mediathek/config/MVConfig.java +++ b/src/main/java/mediathek/config/MVConfig.java @@ -117,6 +117,7 @@ public enum Configs { SYSTEM_URL_OEFFNEN("Programm-Url-oeffnen"), SYSTEM_LINUX_SHUTDOWN("Programm-Linux-Shutdown"), SYSTEM_PLAYER_ABSPIELEN("Player-zum-Abspielen"), + SYSTEM_JDOWNLOADER_URL("system-jdownloader-url", "http://127.0.0.1:9666/flash/add"), // Fenstereinstellungen SYSTEM_EIGENSCHAFTEN_TABELLE_FILME("Eigenschaften-Tabellen-Filme"), diff --git a/src/main/java/mediathek/gui/dialogEinstellungen/PanelEinstellungenErweitert.java b/src/main/java/mediathek/gui/dialogEinstellungen/PanelEinstellungenErweitert.java index da8ce30216..68958b6aa2 100644 --- a/src/main/java/mediathek/gui/dialogEinstellungen/PanelEinstellungenErweitert.java +++ b/src/main/java/mediathek/gui/dialogEinstellungen/PanelEinstellungenErweitert.java @@ -76,6 +76,12 @@ public PanelEinstellungenErweitert() { handler = new TextCopyPasteHandler<>(jTextFieldProgrammShutdown); jTextFieldProgrammShutdown.setComponentPopupMenu(handler.getPopupMenu()); + jTextFieldJDownloaderUrl.setText(MVConfig.get(MVConfig.Configs.SYSTEM_JDOWNLOADER_URL)); + jTextFieldJDownloaderUrl.getDocument().addDocumentListener(new BeobDoc(MVConfig.Configs.SYSTEM_JDOWNLOADER_URL, jTextFieldJDownloaderUrl)); + handler = new TextCopyPasteHandler<>(jTextFieldJDownloaderUrl); + jTextFieldJDownloaderUrl.setComponentPopupMenu(handler.getPopupMenu()); + + if (!SystemUtils.IS_OS_LINUX) { jTextFieldProgrammShutdown.setEnabled(false); jButtonProgrammShutdown.setEnabled(false); @@ -212,6 +218,7 @@ private void initComponents() { jCheckBoxDownloadSofortStarten = new JCheckBox(); var jPanel2 = new JPanel(); jTextFieldProgrammDateimanager = new JTextField(); + jTextFieldJDownloaderUrl = new JTextField(); jButtonProgrammDateimanager = new JButton(); var jLabel1 = new JLabel(); var jLabel2 = new JLabel(); @@ -320,6 +327,25 @@ private void initComponents() { } add(jPanel4); + + //======== jPanelJDownloader ======== + var jPanelJDownloader = new JPanel(); + jPanelJDownloader.setBorder(new TitledBorder("JDownloader")); + jPanelJDownloader.setLayout(new MigLayout( + new LC().insets("5").hideMode(3).gridGap("5", "5"), + new AC().grow().fill(), + new AC().fill() + )); + + jTextFieldJDownloaderUrl.setToolTipText( + "Wenn jDownloader nicht auf dem lokalen Host installiert ist oder unter einem anderen Port reagieren soll, hier bitte angeben.
" + + "Default: http://127.0.0.1:9666/flash/add" + ); + + jPanelJDownloader.add(jTextFieldJDownloaderUrl, new CC().cell(0, 0)); + add(jPanelJDownloader); + + //======== jPanel3 ======== { jPanel3.setBorder(new TitledBorder("Linux: Aufruf zum Shutdown")); @@ -374,5 +400,6 @@ private void initComponents() { private JButton jButtonProgrammShutdown; private JTextField jTextFieldProgrammShutdown; private ShutdownActionComboBox cbDefaultShutdownHelperCommand; + private JTextField jTextFieldJDownloaderUrl; // End of variables declaration//GEN-END:variables } diff --git a/src/main/java/mediathek/gui/dialogEinstellungen/PanelEinstellungenErweitert.jfd b/src/main/java/mediathek/gui/dialogEinstellungen/PanelEinstellungenErweitert.jfd index 57a3f797a9..920c0e25c0 100644 --- a/src/main/java/mediathek/gui/dialogEinstellungen/PanelEinstellungenErweitert.jfd +++ b/src/main/java/mediathek/gui/dialogEinstellungen/PanelEinstellungenErweitert.jfd @@ -87,6 +87,24 @@ new FormModel { "value": "cell 1 3" } ) } ) + add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class net.miginfocom.swing.MigLayout ) { + "$layoutConstraints": "insets 5,hidemode 3,gap 5 5" + "$columnConstraints": "[grow,fill]" + "$rowConstraints": "[fill]" + } ) { + name: "jPanelJDownloader" + "border": new javax.swing.border.TitledBorder( "JDownloader" ) + auxiliary() { + "JavaCodeGenerator.variableLocal": true + } + add( new FormComponent( "javax.swing.JTextField" ) { + name: "jTextFieldJDownloaderUrl" + "toolTipText": "Wenn jDownloader nicht auf dem lokalen Host installiert ist oder unter einem anderen Port reagieren soll, hier bitte angeben.
Default: http://127.0.0.1:9666/flash/add" + }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) { + "value": "cell 0 0" + } ) + } ) + add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class net.miginfocom.swing.MigLayout ) { "$layoutConstraints": "insets 5,hidemode 3,gap 5 5" "$columnConstraints": "[grow,fill][fill]" diff --git a/src/main/java/mediathek/gui/tabs/tab_film/JDownloadHelper.kt b/src/main/java/mediathek/gui/tabs/tab_film/JDownloadHelper.kt index b4163cb491..4a65326185 100644 --- a/src/main/java/mediathek/gui/tabs/tab_film/JDownloadHelper.kt +++ b/src/main/java/mediathek/gui/tabs/tab_film/JDownloadHelper.kt @@ -1,6 +1,7 @@ package mediathek.gui.tabs.tab_film import mediathek.config.Konstanten +import mediathek.config.MVConfig import mediathek.controller.history.SeenHistoryController import mediathek.daten.DatenFilm import mediathek.daten.FilmResolution @@ -25,11 +26,25 @@ class JDownloadHelper { private val historyController = SeenHistoryController() private fun downloadUrl(url: HttpUrl, film: DatenFilm) { + val jdUrlString = MVConfig.get(MVConfig.Configs.SYSTEM_JDOWNLOADER_URL) + val jdUrl = try { + jdUrlString.toHttpUrl() + } catch (e: IllegalArgumentException) { + logger.error("Invalid JDownloader URL in config: {}", jdUrlString) + SwingErrorDialog.showExceptionMessage( + MediathekGui.ui(), + "Die konfigurierte JDownloader-URL ist ungültig:

$jdUrlString", + e + ) + return + } val formBody: RequestBody = FormBody.Builder() .add("urls", url.toString()) .build() val request = Request.Builder() - .url("http://127.0.0.1:9666/flash/add") + .url(jdUrl) + .header("Referer", "https://mediathekview") + .header("Origin", "https://mediathekview") .post(formBody) .build() try {