JDownloader Community - Appwork GmbH
 

Reply
 
Thread Tools Display Modes
  #1  
Old 04.02.2020, 14:02
Fetter Biff Fetter Biff is offline
JD Legend
 
Join Date: Oct 2014
Posts: 945
Default Skript oder sonst eine automatisierte Möglichkeit: Links nicht 1 weiteres Mal laden?

Gibt es ein Skript oder sonst eine automatisierte Möglichkeit, zu vermeiden, dass Links, deren Dateien JD schon irgendwann einmal (in den letzten Jahren) runtergeladen hat, nicht noch einmal ruterlädt?
Reply With Quote
  #2  
Old 04.02.2020, 14:28
pspzockerscene's Avatar
pspzockerscene pspzockerscene is offline
Community Manager
 
Join Date: Mar 2009
Location: Deutschland
Posts: 55,246
Default

Ticket:


Wie du siehst ist das Ticket bereits 10 Jahre alt und eine (zeitnahe) Umsetzung daher extrem unwahrscheinlich.

Zudem wird dein Vorhaben zusätzlich schwierig, denn:
- Anhand welcher Merkmale willst du erkennen, was du bereits heruntergeladen hast? Nur über die Links abzugleichen wäre natürlich am einfachsten
- Sollen auch offline Links berücksichtigt werden?
- Abgleich über Hashes der Dateien?
- Die heruntergeladenen Daten sind meist nicht mehr vorhanden (entpackte- und gelöschte Archive)
- Über die Dateinamenabgleichen? Aber neue Dateien könnten theoretisch gleich heißen aber einen anderen Inhalt haben

Du siehst das wird nicht einfach und ist nicht mal eben schnell erledige bzw. überhaupt möglich.

Um aktuell überhaupt anfangen zu können, geladene Links, Dateinamen usw. zu speichern müsstest du entweder über die myjd API gehen oder dir ein EventScripter Script schreiben.

Selbst wenn das verlinkte Ticket erledigt wäre, würde das nicht ausreichen um dein Ziel zuverlässig zu erreichen

Grüße, psp
__________________
JD Supporter, Plugin Dev. & Community Manager

Erste Schritte & Tutorials || JDownloader 2 Setup Download
Spoiler:

A users' JD crashes and the first thing to ask is:
Quote:
Originally Posted by Jiaz View Post
Do you have Nero installed?
That's true James
Quote:
Originally Posted by James
Die Leute verstehen einfach nicht dass nur weil man mit einer Waffe auch auf Menschen schießen kann dass ein Schützenver​ein kein Ort für Amoklaufide​en ist
Reply With Quote
  #3  
Old 04.02.2020, 14:41
Fetter Biff Fetter Biff is offline
JD Legend
 
Join Date: Oct 2014
Posts: 945
Default

Ups, so alt schon.

Irgendwo hier gab es die gleiche Frage auch, glaube, jemand wollte vielleicht ein Skript machen, kann ich aber nicht mehr finden.

Quote:
Anhand welcher Merkmale willst du erkennen, was du bereits heruntergeladen hast? Nur über die Links abzugleichen wäre natürlich am einfachsten
Ja, so dachte ich es, das würde mir reichen. Aber wenn an andere Merkmale, also etwa Größe, wäre es natürlich noch besser, so dass ein Duplikat auch bei einem anderen Link erkennbar wäre.

Quote:
Sollen auch offline Links berücksichtigt werden?
Die früher, als JD die Datei geladen hat, noch online war? Das wäre natürlich gut.

Quote:
Abgleich über Hashes der Dateien?
Falls das vor dem Laden möglich wäre, was ich mir gar nicht vorstellen könnte.

Quote:
Du siehst das wird nicht einfach und ist nicht mal eben schnell erledige bzw. überhaupt möglich.
Ja, unter diesen Vorganben sieht das nach einem extrem großen Aufwand aus, sehr kompliziert.

Quote:
Selbst wenn das verlinkte Ticket erledigt wäre, würde das nicht ausreichen um dein Ziel zuverlässig zu erreichen
Allein nur anhand der Links zu erkennen (die JD vielleicht in einer extra (txt-)Datei speichern könnte und abgleichen bei jedem Download bzw. hinzufügen eines solchen), ob etwas schon geladen wurde, wäre doch schon gut. Damit wären mir schon viele doppelte Downloads erspart geblieben.
Reply With Quote
  #4  
Old 04.02.2020, 15:29
pspzockerscene's Avatar
pspzockerscene pspzockerscene is offline
Community Manager
 
Join Date: Mar 2009
Location: Deutschland
Posts: 55,246
Default

Quote:
Originally Posted by Fetter Biff View Post
Ups, so alt schon.

Irgendwo hier gab es die gleiche Frage auch, glaube, jemand wollte vielleicht ein Skript machen, kann ich aber nicht mehr finden.
Es kann auch sein, dass jemand was geschrieben hat aber es wird schwer zu finden sein.
Notfalls den EventScripter Thread durchforsten und/oder den User mgpai fragen er hat schon viele Scripte geschrieben und daher die beste Übersicht:
https://board.jdownloader.org/member.php?u=73437


Quote:
Originally Posted by Fetter Biff View Post
Ja, so dachte ich es, das würde mir reichen. Aber wenn an andere Merkmale, also etwa Größe, wäre es natürlich noch besser, so dass ein Duplikat auch bei einem anderen Link erkennbar wäre.
Naja momentan könntest du eh noch nichts damit anfangen - du hast ja aktuell keine History der geladenen Links der letzten Jahre


Quote:
Originally Posted by Fetter Biff View Post
Die früher, als JD die Datei geladen hat, noch online war? Das wäre natürlich gut.
Nicht falsch verstehen, aber die Fragen waren eher so gemeint, dass du mal drüber nachdenken solltest wie kompliziert das wird, wenn man möchte, dass es halbwegs zuverlässig funktioniert

Quote:
Originally Posted by Fetter Biff View Post
Ja, unter diesen Vorganben sieht das nach einem extrem großen Aufwand aus, sehr kompliziert.
Na dann viel Spaß beim Scripten

Quote:
Originally Posted by Fetter Biff View Post
Allein nur anhand der Links zu erkennen (die JD vielleicht in einer extra (txt-)Datei speichern könnte und abgleichen bei jedem Download bzw. hinzufügen eines solchen), ob etwas schon geladen wurde, wäre doch schon gut. Damit wären mir schon viele doppelte Downloads erspart geblieben.
Wie gesagt wenn das Ticket erledigt wäre, hätte man eine einfache History mit den Downloadlinks und ein paar weiteren Informationen.

... über die Zeit haben zwar einige User soetwas angefragt, aber ich kann mir nicht vorstellen, dass es jemans umgesetzt werden wird also mach' dir besser keine falschen Hoffnungen oder setze es einfach selbst um.

Grüße, psp
__________________
JD Supporter, Plugin Dev. & Community Manager

Erste Schritte & Tutorials || JDownloader 2 Setup Download
Spoiler:

A users' JD crashes and the first thing to ask is:
Quote:
Originally Posted by Jiaz View Post
Do you have Nero installed?
That's true James
Quote:
Originally Posted by James
Die Leute verstehen einfach nicht dass nur weil man mit einer Waffe auch auf Menschen schießen kann dass ein Schützenver​ein kein Ort für Amoklaufide​en ist
Reply With Quote
  #5  
Old 04.02.2020, 17:04
Fetter Biff Fetter Biff is offline
JD Legend
 
Join Date: Oct 2014
Posts: 945
Default

Danke für den Link.

Quote:
Naja momentan könntest du eh noch nichts damit anfangen - du hast ja aktuell keine History der geladenen Links der letzten Jahre
Sind die nicht im Ordner "cfg" drin? Oder sonst wo in einem Ordner?

Tja, dann sollte man also wohl besser ausfpassen beim Runterladen um Duplikate zu vermeiden. Werde trotzdem mal mgpai fragen. Als letzten Versuch.
Reply With Quote
  #6  
Old 04.02.2020, 17:36
pspzockerscene's Avatar
pspzockerscene pspzockerscene is offline
Community Manager
 
Join Date: Mar 2009
Location: Deutschland
Posts: 55,246
Default

Quote:
Originally Posted by Fetter Biff View Post
Danke für den Link.
Gerne.


Quote:
Originally Posted by Fetter Biff View Post
Sind die nicht im Ordner "cfg" drin? Oder sonst wo in einem Ordner?
Ne es sei denn du hebst deine Downliadliste immer auf und löschst nie etwas.

Quote:
Originally Posted by Fetter Biff View Post
Tja, dann sollte man also wohl besser ausfpassen beim Runterladen um Duplikate zu vermeiden. Werde trotzdem mal mgpai fragen. Als letzten Versuch.
Wie gesagt du kannst auch selbst Hand anlegen - müsstest dich dann halt mit js und/oder Java auseinandersetzen

Grüße, psp
__________________
JD Supporter, Plugin Dev. & Community Manager

Erste Schritte & Tutorials || JDownloader 2 Setup Download
Spoiler:

A users' JD crashes and the first thing to ask is:
Quote:
Originally Posted by Jiaz View Post
Do you have Nero installed?
That's true James
Quote:
Originally Posted by James
Die Leute verstehen einfach nicht dass nur weil man mit einer Waffe auch auf Menschen schießen kann dass ein Schützenver​ein kein Ort für Amoklaufide​en ist
Reply With Quote
  #7  
Old 04.02.2020, 20:08
Fetter Biff Fetter Biff is offline
JD Legend
 
Join Date: Oct 2014
Posts: 945
Default

Quote:
Ne es sei denn du hebst deine Downliadliste immer auf und löschst nie etwas.
Habe ich früher eine zeitlang gemacht, aber das hat sich nachteilig auf JD ausgewirkt, wurde sehr langsam, sehr träge. Aber ich meinte mal, verstanden zu haben, dass die Links da irgendwo gespeichert blieben. In \jDownloader 2\cfg\archives habe ich ca. 28.000 Dateien. In \jDownloader 2\cfg 1645. Auch einigen solcher Dateien, ein Jahr alte etc.: downloadList414186.zip.backup. Wozu braucht JD die denn alle?

Quote:
Wie gesagt du kannst auch selbst Hand anlegen - müsstest dich dann halt mit js und/oder Java auseinandersetzen
Ja, ja, aber ich könnte nicht mal eine Glühbirne programmieren (falls es da was zu programmieren gäbe). Davon abgesehen klingt ein Skript für diesen Zweck eben auch ohnehin ungemein kompliziert.
Reply With Quote
  #8  
Old 04.02.2020, 20:12
pspzockerscene's Avatar
pspzockerscene pspzockerscene is offline
Community Manager
 
Join Date: Mar 2009
Location: Deutschland
Posts: 55,246
Default

Quote:
Originally Posted by Fetter Biff View Post
Wozu braucht JD die denn alle?
Braucht er nicht aktiv es sind Backups.


Quote:
Originally Posted by Fetter Biff View Post
Ja, ja, aber ich könnte nicht mal eine Glühbirne programmieren (falls es da was zu programmieren gäbe). Davon abgesehen klingt ein Skript für diesen Zweck eben auch ohnehin ungemein kompliziert.
Ja.
__________________
JD Supporter, Plugin Dev. & Community Manager

Erste Schritte & Tutorials || JDownloader 2 Setup Download
Spoiler:

A users' JD crashes and the first thing to ask is:
Quote:
Originally Posted by Jiaz View Post
Do you have Nero installed?
That's true James
Quote:
Originally Posted by James
Die Leute verstehen einfach nicht dass nur weil man mit einer Waffe auch auf Menschen schießen kann dass ein Schützenver​ein kein Ort für Amoklaufide​en ist
Reply With Quote
  #9  
Old 04.02.2020, 20:21
Fetter Biff Fetter Biff is offline
JD Legend
 
Join Date: Oct 2014
Posts: 945
Default

Quote:
Braucht er nicht aktiv es sind Backups.
Wozu braucht JD diese teilweise über ein Jahr alten Backups? Und wozu diese über 28.000? Da sind also nicht die einmal bereits geladenen Links enthalten?
Reply With Quote
  #10  
Old 04.02.2020, 20:27
pspzockerscene's Avatar
pspzockerscene pspzockerscene is offline
Community Manager
 
Join Date: Mar 2009
Location: Deutschland
Posts: 55,246
Default

Quote:
Originally Posted by Fetter Biff View Post
Wozu braucht JD diese teilweise über ein Jahr alten Backups?
Braucht er nicht.
Brauchst du falls deine Downliadliste/Linkgrabber Liste aus irgendeinem Grund kaputtgeht.

Quote:
Originally Posted by Fetter Biff View Post
Und wozu diese über 28.000?
Weil JD viele Einstellungsmöglichkeiten hat.
EDIT
Siehe:

https://board.jdownloader.org/showpo...2&postcount=17

Quote:
Originally Posted by Fetter Biff View Post
Da sind also nicht die einmal bereits geladenen Links enthalten?
Doch gut möglich, aber es gibt eben keine Möglichkeit, einfach darauf zuzugreifen, weil das nie so gedacht war.

Grüße, psp
__________________
JD Supporter, Plugin Dev. & Community Manager

Erste Schritte & Tutorials || JDownloader 2 Setup Download
Spoiler:

A users' JD crashes and the first thing to ask is:
Quote:
Originally Posted by Jiaz View Post
Do you have Nero installed?
That's true James
Quote:
Originally Posted by James
Die Leute verstehen einfach nicht dass nur weil man mit einer Waffe auch auf Menschen schießen kann dass ein Schützenver​ein kein Ort für Amoklaufide​en ist

Last edited by pspzockerscene; 05.02.2020 at 16:37. Reason: Verlinkung ergänzt
Reply With Quote
  #11  
Old 04.02.2020, 20:36
Fetter Biff Fetter Biff is offline
JD Legend
 
Join Date: Oct 2014
Posts: 945
Default

Hmmm, tja, sehr verwirrend. Aber auf jeden Fall nicht nutzbar für so ein Skript also oder zur Nutzung der (alten) Links.

OK, vielen Dank!
Reply With Quote
  #12  
Old 04.02.2020, 22:34
oEFLKQzikCqw oEFLKQzikCqw is offline
JD Legend
 
Join Date: Mar 2012
Posts: 1,605
Default

Die Backups liegen aber doch nicht in cfg/archives. Dort finde ich nur ein paar JSON-Dateien.
Reply With Quote
  #13  
Old 04.02.2020, 22:50
Fetter Biff Fetter Biff is offline
JD Legend
 
Join Date: Oct 2014
Posts: 945
Default

Ja, stimmt, die Backup-Dateien sind im Ordner cfg. Im Ordner archives sind hier fast 28.000 json-Dateien.
Reply With Quote
  #14  
Old 05.02.2020, 00:26
oEFLKQzikCqw oEFLKQzikCqw is offline
JD Legend
 
Join Date: Mar 2012
Posts: 1,605
Default

downloadListXXX.zip.backup dürften zudem kaputte Listen sein.
Reply With Quote
  #15  
Old 05.02.2020, 09:24
Fetter Biff Fetter Biff is offline
JD Legend
 
Join Date: Oct 2014
Posts: 945
Default

Wie kommt denn das?
Reply With Quote
  #16  
Old 05.02.2020, 12:33
mgpai mgpai is offline
Script Master
 
Join Date: Sep 2013
Posts: 1,003
Default

Quote:
Originally Posted by Fetter Biff View Post
Ja, stimmt, die Backup-Dateien sind im Ordner cfg. Im Ordner archives sind hier fast 28.000 json-Dateien.
Related Post #447485
Reply With Quote
  #17  
Old 05.02.2020, 12:42
mgpai mgpai is offline
Script Master
 
Join Date: Sep 2013
Posts: 1,003
Default

Quote:
Originally Posted by oEFLKQzikCqw View Post
downloadListXXX.zip.backup dürften zudem kaputte Listen sein.
Quote:
Originally Posted by Fetter Biff View Post
Wie kommt denn das?
Related post #426155

Quote:
Originally Posted by Jiaz View Post
... In case there would be an error while loading list from disk, JDownloader will automatically create a .backup file that can be loaded/restored later ...
Reply With Quote
  #18  
Old 05.02.2020, 13:05
mgpai mgpai is offline
Script Master
 
Join Date: Sep 2013
Posts: 1,003
Default

Quote:
Originally Posted by Fetter Biff View Post
Gibt es ein Skript oder sonst eine automatisierte Möglichkeit, zu vermeiden, dass Links, deren Dateien JD schon irgendwann einmal (in den letzten Jahren) runtergeladen hat, nicht noch einmal ruterlädt?
Following context menu scripts will delete links from download/linkgrabber list, which cannot be undone. Keep a backup of your link lists and test the scripts with non-critical links first.

Default location of history file: "<JDownloader folder>\cfg\history.txt"

Move selected download links to history file:
Code:
// Add finished download links from selection to history, and remove them from the list
// Tirgger required: Downloadlist Contextmenu Button Pressed
// Customize downloadlist context menu > Add new "Eventscripter Trigger" button > Rename it to "Move to history" (without quotes) > Change Icon (optional)

if (name == "Move to history") {
    var historyFile = getPath(JD_HOME + "/cfg/history.txt");
    if (!historyFile.exists()) writeFile(historyFile, "", true);
    var history = readFile(historyFile);

    var linkUrls = [];
    var linkIds = [];

    var removeLinks = function(linkIds) {
        callAPI("downloadsV2", "removeLinks", linkIds, []);
    }

    dlSelection.getLinks().forEach(function(link) {
        if (link.isFinished()) {
            var url = link.getContentURL() || link.getPluginURL();
            var id = link.getUUID();

            if (history.indexOf(url) == -1) linkUrls.push(url);
            linkIds.push(id);
        }
    })


    if (linkUrls.length) {
        data = "Added from the downloadlist list on " + Date().toString().substring(4, 24) + "\r\n";
        data += linkUrls.join("\r\n") + "\r\n\r\n";
        writeFile(historyFile, data, true);
    }

    if (linkIds.length) removeLinks(linkIds);
}

Move selected linkgrabber lnks to history file:
Code:
// Add selected linkgrabber links to history, and remove them from the list
// Tirgger required: Linkgrabber Contextmenu Button Pressed
// Customize linkgrabber context menu > Add new "Eventscripter Trigger" button > Rename it to "Move to history" (without quotes) > Change Icon (optional)

if (name == "Move to history") {
    var historyFile = getPath(JD_HOME + "/cfg/history.txt");
    if (!historyFile.exists()) writeFile(historyFile, "", true);
    var history = readFile(historyFile);

    var linkUrls = [];
    var linkIds = [];

    var removeLinks = function(linkIds) {
        callAPI("linkgrabberv2", "removeLinks", linkIds, []);
    }

    lgSelection.getLinks().forEach(function(link) {
        var url = link.getUrl();
        var id = link.getUUID();

        if (history.indexOf(url) == -1) linkUrls.push(url);
        linkIds.push(id);
    })

    if (linkUrls.length) {
        data = "Added from the lingkrabber list on " + Date().toString().substring(4, 24) + "\r\n";
        data += linkUrls.join("\r\n") + "\r\n\r\n";
        writeFile(historyFile, data, true);
    }

    if (linkIds.length) removeLinks(linkIds);
}

Detect/mark duplicate files when they are added to the linkgrabber tab:
Code:
// If download link is present in history file, mark it as duplicae (add "#duplicatelink" to comment)
// Trigger required: Packagizer Hook

if (state == "AFTER") {
    var url = link.getURL();
    var historyFile = getPath(JD_HOME + "/cfg/history.txt");
    var history = historyFile.exists() ? readFile(historyFile) : "";

    if (history.indexOf(url) > -1) {
        var text = "#duplicatelink";
        var comment = link.getComment();
        comment = comment ? text + " " + comment : text;
        link.setComment(comment);
    }
}

Skip duplicate links on download start:
Code:
// Skip link if it present in download history (has "#duplicatelink" in comment)
// To download the file (prevent skipping), remove "#duplicatelink" from comment
// Trigger required: A Download Started

var comment = link.getComment() || "";

if (comment.indexOf("#duplicatelink") > -1) {
    var url = link.getContentURL() || link.getPluginURL();
    link.setSkipped(true);
    alert("Download Skipped: \"" + url + "\" is present in history file.");
}
Reply With Quote
  #19  
Old 05.02.2020, 13:44
Fetter Biff Fetter Biff is offline
JD Legend
 
Join Date: Oct 2014
Posts: 945
Default

Quote:
Related post #426155
Thank you very much for the links!
Reply With Quote
  #20  
Old 05.02.2020, 13:50
Fetter Biff Fetter Biff is offline
JD Legend
 
Join Date: Oct 2014
Posts: 945
Default

Extremely fast done, thank you very much!

So one somehow has to add each single script to a new item in the event scripter, I assume. And to give the items a name and do anything else?
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

All times are GMT +2. The time now is 02:01.
Provided By AppWork GmbH | Privacy | Imprint
Parts of the Design are used from Kirsch designed by Andrew & Austin
Powered by vBulletin® Version 3.8.10 Beta 1
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.