Skip to content

Commit 09e5409

Browse files
committed
Konfigurierbare JDownloader-URL hinzugefügt
- Neues Textfeld in den Einstellungen für eine benutzerdefinierte JDownloader-URL eingeführt. - Neues Config-Feld "SYSTEM_JDOWNLOADER_URL" - JDownloader-URL in die Download-Funktionalität integriert. - Standard-URL bleibt "http://127.0.0.1:9666/flash/add"
1 parent 9144e51 commit 09e5409

File tree

4 files changed

+62
-1
lines changed

4 files changed

+62
-1
lines changed

src/main/java/mediathek/config/MVConfig.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@ public enum Configs {
117117
SYSTEM_URL_OEFFNEN("Programm-Url-oeffnen"),
118118
SYSTEM_LINUX_SHUTDOWN("Programm-Linux-Shutdown"),
119119
SYSTEM_PLAYER_ABSPIELEN("Player-zum-Abspielen"),
120+
SYSTEM_JDOWNLOADER_URL("system-jdownloader-url", "http://127.0.0.1:9666/flash/add"),
120121
// Fenstereinstellungen
121122

122123
SYSTEM_EIGENSCHAFTEN_TABELLE_FILME("Eigenschaften-Tabellen-Filme"),

src/main/java/mediathek/gui/dialogEinstellungen/PanelEinstellungenErweitert.java

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,12 @@ public PanelEinstellungenErweitert() {
7676
handler = new TextCopyPasteHandler<>(jTextFieldProgrammShutdown);
7777
jTextFieldProgrammShutdown.setComponentPopupMenu(handler.getPopupMenu());
7878

79+
jTextFieldJDownloaderUrl.setText(MVConfig.get(MVConfig.Configs.SYSTEM_JDOWNLOADER_URL));
80+
jTextFieldJDownloaderUrl.getDocument().addDocumentListener(new BeobDoc(MVConfig.Configs.SYSTEM_JDOWNLOADER_URL, jTextFieldJDownloaderUrl));
81+
handler = new TextCopyPasteHandler<>(jTextFieldJDownloaderUrl);
82+
jTextFieldJDownloaderUrl.setComponentPopupMenu(handler.getPopupMenu());
83+
84+
7985
if (!SystemUtils.IS_OS_LINUX) {
8086
jTextFieldProgrammShutdown.setEnabled(false);
8187
jButtonProgrammShutdown.setEnabled(false);
@@ -212,6 +218,7 @@ private void initComponents() {
212218
jCheckBoxDownloadSofortStarten = new JCheckBox();
213219
var jPanel2 = new JPanel();
214220
jTextFieldProgrammDateimanager = new JTextField();
221+
jTextFieldJDownloaderUrl = new JTextField();
215222
jButtonProgrammDateimanager = new JButton();
216223
var jLabel1 = new JLabel();
217224
var jLabel2 = new JLabel();
@@ -320,6 +327,25 @@ private void initComponents() {
320327
}
321328
add(jPanel4);
322329

330+
331+
//======== jPanelJDownloader ========
332+
var jPanelJDownloader = new JPanel();
333+
jPanelJDownloader.setBorder(new TitledBorder("JDownloader"));
334+
jPanelJDownloader.setLayout(new MigLayout(
335+
new LC().insets("5").hideMode(3).gridGap("5", "5"),
336+
new AC().grow().fill(),
337+
new AC().fill()
338+
));
339+
340+
jTextFieldJDownloaderUrl.setToolTipText(
341+
"<html>Wenn jDownloader nicht auf dem lokalen Host installiert ist oder unter einem anderen Port reagieren soll, hier bitte angeben.<br>" +
342+
"Default: http://127.0.0.1:9666/flash/add</html>"
343+
);
344+
345+
jPanelJDownloader.add(jTextFieldJDownloaderUrl, new CC().cell(0, 0));
346+
add(jPanelJDownloader);
347+
348+
323349
//======== jPanel3 ========
324350
{
325351
jPanel3.setBorder(new TitledBorder("Linux: Aufruf zum Shutdown"));
@@ -374,5 +400,6 @@ private void initComponents() {
374400
private JButton jButtonProgrammShutdown;
375401
private JTextField jTextFieldProgrammShutdown;
376402
private ShutdownActionComboBox cbDefaultShutdownHelperCommand;
403+
private JTextField jTextFieldJDownloaderUrl;
377404
// End of variables declaration//GEN-END:variables
378405
}

src/main/java/mediathek/gui/dialogEinstellungen/PanelEinstellungenErweitert.jfd

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,24 @@ new FormModel {
8787
"value": "cell 1 3"
8888
} )
8989
} )
90+
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class net.miginfocom.swing.MigLayout ) {
91+
"$layoutConstraints": "insets 5,hidemode 3,gap 5 5"
92+
"$columnConstraints": "[grow,fill]"
93+
"$rowConstraints": "[fill]"
94+
} ) {
95+
name: "jPanelJDownloader"
96+
"border": new javax.swing.border.TitledBorder( "JDownloader" )
97+
auxiliary() {
98+
"JavaCodeGenerator.variableLocal": true
99+
}
100+
add( new FormComponent( "javax.swing.JTextField" ) {
101+
name: "jTextFieldJDownloaderUrl"
102+
"toolTipText": "<html>Wenn jDownloader nicht auf dem lokalen Host installiert ist oder unter einem anderen Port reagieren soll, hier bitte angeben.<br>Default: http://127.0.0.1:9666/flash/add</html>"
103+
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
104+
"value": "cell 0 0"
105+
} )
106+
} )
107+
90108
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class net.miginfocom.swing.MigLayout ) {
91109
"$layoutConstraints": "insets 5,hidemode 3,gap 5 5"
92110
"$columnConstraints": "[grow,fill][fill]"

src/main/java/mediathek/gui/tabs/tab_film/JDownloadHelper.kt

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package mediathek.gui.tabs.tab_film
22

33
import mediathek.config.Konstanten
4+
import mediathek.config.MVConfig
45
import mediathek.controller.history.SeenHistoryController
56
import mediathek.daten.DatenFilm
67
import mediathek.daten.FilmResolution
@@ -25,11 +26,25 @@ class JDownloadHelper {
2526
private val historyController = SeenHistoryController()
2627

2728
private fun downloadUrl(url: HttpUrl, film: DatenFilm) {
29+
val jdUrlString = MVConfig.get(MVConfig.Configs.SYSTEM_JDOWNLOADER_URL)
30+
val jdUrl = try {
31+
jdUrlString.toHttpUrl()
32+
} catch (e: IllegalArgumentException) {
33+
logger.error("Invalid JDownloader URL in config: {}", jdUrlString)
34+
SwingErrorDialog.showExceptionMessage(
35+
MediathekGui.ui(),
36+
"<html>Die konfigurierte JDownloader-URL ist ungültig:<br><br><b>$jdUrlString</b></html>",
37+
e
38+
)
39+
return
40+
}
2841
val formBody: RequestBody = FormBody.Builder()
2942
.add("urls", url.toString())
3043
.build()
3144
val request = Request.Builder()
32-
.url("http://127.0.0.1:9666/flash/add")
45+
.url(jdUrl)
46+
.header("Referer", "https://mediathekview")
47+
.header("Origin", "https://mediathekview")
3348
.post(formBody)
3449
.build()
3550
try {

0 commit comments

Comments
 (0)