#1
|
|||
|
|||
Automatische Erhöhung des Tageslimits
Ich betreibe Account-Sharing. Deswegen habe ich das Tageslimit für Share-Online auf 50GB gelegt. Jedoch lädt die andere Partei nicht jeden Tag etwas. Somit gehen 50GB verloren. Könntet ihr eine Einstellungsmöglichkeit implementieren, die das Tageslimit eine halbe Stunde vor Mitternacht auf 100GB erhöht und die Downloads startet?
|
#2
|
||||
|
||||
Quote:
https://board.jdownloader.org/showpo...&postcount=775 angefordert. @mgpai And plugin settings with Event Scripter possible? Example? Like set TRAFFIC_LIMIT to 90 for share-online.biz Thanks!
__________________
Join 9kw.eu Captcha Service now and let your JD continue downloads while you sleep. Last edited by thecoder2012; 10.06.2019 at 22:26. |
#3
|
|||
|
|||
@thecoder2012: myjd API namespace "plugins" via calllAPI
|
#4
|
|||
|
|||
Danke für eure Antworten. Leider weiss ich nicht, wie JavaScript funktioniert :( Zudem wird bei den Triggern im Ereignis-Skripter keine Möglichkeit zur Eingabe eines täglichen Zeitpunktes zur Ausführung angegeben.
|
#5
|
||||
|
||||
Quote:
Jeweils dann wenn der Traffic vorhanden und Zeit erreicht wäre, dann auf 100 setzen und ab Mitternacht wieder auf 50. Leider bekomme ich es grad auch nicht hin, da ich vermutlich irgendetwas anders machen muss mit dem Aufruf callAPI. Eventuell kann mgpai helfen, da er der Experte dafür ist. Der untere Abschnitt ist nur zur Klärung damit hoffentlich dein Skript in Zukunft erhälst. @mgpai Yes but it not works in my tests. I have only "false" as return value with callAPI+plugins+set/reset. Code test as example: Code:
// Pluginlist var pluginlist = callAPI("plugins", "list", {}); //alert(pluginlist); // Full pluginquery var pluginquery = callAPI("plugins", "query", { "defaultValues": true, "description": true, "enumInfo": true, "includeExtensions": true, "values": true }); //alert(pluginquery); for (i = 0; i < pluginquery.length; ++i) { if (pluginquery[i].storage == "share-online.biz" && pluginquery[i].key == "TRAFFIC_LIMIT") { //alert(pluginquery[i]); } } var displayName = "share-online.biz";//wrong? var interfaceName = "deprecated.jd.plugins.hoster.ShareOnlineBiz";//wrong? //var interfaceName = "jd.plugins.hoster.ShareOnlineBiz"; var key = "TRAFFIC_LIMIT";//wrong? var pluginCheck = callAPI("plugins", "set", interfaceName, displayName, key, {"value": 50});//wrong? //var pluginCheck = callAPI("plugins", "reset", interfaceName, displayName, key);//same alert(pluginCheck);
__________________
Join 9kw.eu Captcha Service now and let your JD continue downloads while you sleep. |
#6
|
|||
|
|||
Quote:
Code:
var tempLimit = 100; // <- user specified var interfaceName = "deprecated.jd.plugins.hoster.ShareOnlineBiz"; var displayName = "share-online.biz"; var key = "TRAFFIC_LIMIT"; var values = ["100", "99", "98", "97", "96", "95", "90", "80", "70", "60", "50", "40", "30", "20", "10"]; var oldValue = callAPI("plugins", "get", interfaceName, displayName, key); // Store old value callAPI("plugins", "set", interfaceName, displayName, key, tempLimit.toString()); // Set temp value callAPI("plugins", "set", interfaceName, displayName, key, values[oldValue]); // Restore old value |
#7
|
||||
|
||||
@mgpai
Thanks! @yondu Kannst du einmal im Ereignis-Skripter (Event Scripter) folgende 2 Zeilen ausführen und den Abschnitt mit Share-online posten (text oder screenshot)? Code:
var premiumAccounts = callAPI("accountsV2", "listAccounts", {"enabled": true,"trafficLeft": true,"trafficMax": true}); alert(premiumAccounts);
__________________
Join 9kw.eu Captcha Service now and let your JD continue downloads while you sleep. Last edited by thecoder2012; 11.06.2019 at 13:01. |
#8
|
||||
|
||||
@thecoder2012: werte sind traffic in bytes, jedoch hat javascript selbst nur doubles
Quote:
__________________
JD-Dev & Server-Admin |
#9
|
|||
|
|||
Ich habe das im Testlauf machen lassen. Wenn ich das Dialogfeld schliesse und im Reiter Accountverwaltung nachschaue, werden 60GB Traffic angezeigt. |
#10
|
||||
|
||||
@yondu: Danke für den Screenshot!
__________________
JD-Dev & Server-Admin |
#11
|
||||
|
||||
Habe mal versucht ein solches Skript zu bauen aber ist ungetestet.
Allgemein Interval wählen und auf 60000 stellen. Mit tempLimit stellst ein ab wie viel übrige Gigabytes die Downloads gestartet und worauf am Ende das Limit wieder gesetzt werden soll. Meines Wissens kann man den Scheduler nicht für den Ereignis Skripter (Event Scripter) nutzen um eine gezielte Zeit einzustellen. Aus dem Grund hab ich die Startzeit und die Resetzeit als Uhrzeit im Skript hinterlegt. Code:
// Change SO daily limit // Trigger: Interval var tempLimit = 50; var starttime = "23:30"; //23:30 Uhr var resettime = "00:00"; //00:00 Uhr var displayName = "share-online.biz"; var interfaceName = "jd.plugins.hoster.ShareOnlineBiz"; var key = "TRAFFIC_LIMIT"; var values = ["100", "99", "98", "97", "96", "95", "90", "80", "70", "60", "50", "40", "30", "20", "10"]; var trafficLeft = ""; var trafficMax = ""; var defaultValue = ""; var value = ""; var hh = new Date().getHours(); var mm = new Date().getMinutes(); hh = (hh < 10) ? "0" + hh : hh; mm = (mm < 10) ? "0" + mm : mm; var checktime = hh + ":" + mm; var long1; if (checktime == starttime || checktime == resettime) { var premiumAccounts = callAPI("accountsV2", "listAccounts", { "enabled": true, "trafficLeft": true, "trafficMax": true }); for (i = 0; i < premiumAccounts.length; ++i) { if (premiumAccounts[i].hostname == "share-online.biz" && premiumAccounts[i].enabled == true) { long1 = [premiumAccounts[i].uuid]; trafficLeft = (premiumAccounts[i].trafficLeft / 1024 / 1024 / 1024); //trafficMax = (premiumAccounts[i].trafficLeft / 1024 / 1024 / 1024); break; } } var pluginquery = callAPI("plugins", "query", { "defaultValues": true, "description": true, "enumInfo": true, "includeExtensions": true, "values": true }); for (i = 0; i < pluginquery.length; ++i) { if (pluginquery[i].storage == "share-online.biz" && pluginquery[i].key == "TRAFFIC_LIMIT") { defaultValue = pluginquery[i].defaultValue; value = pluginquery[i].Value; break; } } if (checktime == starttime) { //if (trafficLeft <= tempLimit) { //if ((100-trafficLeft) >= tempLimit) { if (trafficLeft >= tempLimit) { callAPI("plugins", "set", interfaceName, displayName, key, defaultValue.toString()); } else { callAPI("plugins", "set", interfaceName, displayName, key, tempLimit.toString()); } sleep(3000); callAPI("accountsV2", "disableAccounts", long1); sleep(5000); callAPI("accountsV2", "enableAccounts", long1); startDownloads();/*Start Downloads*/ } if (checktime == resettime) { callAPI("plugins", "set", interfaceName, displayName, key, tempLimit.toString()); sleep(3000); callAPI("accountsV2", "disableAccounts", long1); sleep(5000); callAPI("accountsV2", "enableAccounts", long1); stopDownloads();/*Stop Downloads*/ } } Skript um SO Accounts schneller zu aktualisieren auch ohne Workaround: Code:
// SO with faster account refresh // Trigger: Interval (e.g. 600000ms = 10min) var premiumAccounts = callAPI("accountsV2", "listAccounts", { "enabled": true, "userName": true, }); for (i = 0; i < premiumAccounts.length; ++i) { if (premiumAccounts[i].hostname == "share-online.biz" && premiumAccounts[i].enabled == true) { var long1 = [premiumAccounts[i].uuid]; callAPI("accountsV2", "refreshAccounts", long1, true); } }
__________________
Join 9kw.eu Captcha Service now and let your JD continue downloads while you sleep. Last edited by thecoder2012; 11.07.2019 at 16:36. |
#12
|
||||
|
||||
Ja, derzeit gibts da keine Pläne für *Überschneidungen* beider Erweiterungen und der Eventscripter ist zu Bevorzugen, da mächtiger und flexibler.
__________________
JD-Dev & Server-Admin |
#13
|
|||
|
|||
Dankeschön! Ich habe das Skript gespeichert und aktiviert, werde die Download-Liste füllen und heute Abend um 23.45 Uhr nochmals in den JDownloader reinschauen.
EDIT: Habe während des einen Downloads den SO-Account "aktualisiert" und er ist wieder auf 60GB/60GB gesprungen. Hätte ich wohl nicht machen sollen, werde morgen nochmals testen ohne rumfummeln. EDIT: Habe den Download nachher gestoppt und nach einiger Zeit die korrekte Anzeige von "0b/60GB left" bekommen. Das Skript habe ich so umgeschrieben, dass es um 22.30 Uhr zündet. Es hat dann nach einer Erlaubnis gefragt, die ich erteilt habe. Leider blieb die Einstellung auf 60GB und somit wurde kein weiterer Traffic angezeigt. Aus Jux habe ich das Skript auf 100GB Traffic und 22.42 Uhr umgeschrieben, und just hat es nach erneut erteilter Erlaubnis geklappt. Neu sind 100GB Trafficlimit eingestellt und JD saugt munter weiter. Meine Frage ist nun, wie ich es hinkriege, dass um Mitternacht wieder 60GB gesetzt werden. Last edited by yondu; 12.06.2019 at 22:46. |
#14
|
|||
|
|||
Das Problem ist nicht 100% solved, auch wenn schon sehr viel steht. Würde mich riesig freuen, wenn sich ein Sachverständiger die Lage im letzten Post nochmal anschauen würde
|
#15
|
||||
|
||||
Hm, 60/60GB bedeutet es sind noch 60GB frei. Da die Bedingung
if (trafficLeft >= tempLimit) ist und tempLimit 50gb ist, kann diese Bedingung ja nie eintreten? wenn nicht mind 50GB noch übrig sind. Letztendlich müsste es doch reichen, einfach um 22.30 auf 100 zu switchen und irgendwann nach Mitternacht wieder auf 50 , oder nicht?
__________________
JD-Dev & Server-Admin |
#16
|
||||||
|
||||||
Möchte auch darauf hinweisen wenn es um sehr schnelle Downloads handelt, dann mag der JDownloader korrekt den Start von Downloads berechnen aber SO erlaubt bis zu ca. 15 GB mehr Traffic am Tag in Tests, wenn die Downloads bereits erfolgreich noch laufen.
Der Wert bei SO kann ins Minus gehen und wird um Mitternacht zurückgesetzt. Quote:
Quote:
disablePermissionChecks(); schreiben. Quote:
Quote:
Hab oben im Skript mal paar Pausen eingefügt ggf. muss es noch vergrößert werden. In einem anderen Thema hat ein Skript ohne Pausen nicht funktioniert weil das System zu langsam war (damit auch die Requests). Auf dem eigenen System muss ich oft ein Timeout unter 1s senken damit ich überhaupt einen Timeout mal erlebe. Quote:
Quote:
Weiß auch nicht wie schwierig es ist. Also ein Skript im Ereignis-Skripter (Eventscripter) vom Scheduler aus zu starten im Code.
__________________
Join 9kw.eu Captcha Service now and let your JD continue downloads while you sleep. Last edited by thecoder2012; 22.06.2019 at 11:16. |
#17
|
||||
|
||||
Sorry, kann mir auch nicht alles merken :p
Quote:
Es würde hier mehr Sinn machen, den Eventscripter ein Event "Zeitpunkt" zu ermöglichen und im Script selbst wird dann dieser Zeitpunkt/Zeitpunkte definiert. Das würde sich auch wesentlich leichter umsetzen lassen
__________________
JD-Dev & Server-Admin |
#18
|
|||
|
|||
Habe das Skript nun in der aktualisierten Form abgespeichert und suche mir 100GB Downloads zusammen, damit ich testen kann ob es klappt. Gebe Bescheid sobald ich mehr weiss. Danke abermals!
|
#19
|
||||
|
||||
Quote:
Hab weiter oben noch ein zusätzliches kleines Skript geschrieben um schneller den SO Traffic (Accountdaten) zu aktualisieren über SO selbst. Siehe auch SO-Plugin - Berechnung / Volumen Zusätzlich gibt es inzwischen die Plugineinstellung "max. traffic workaround".
__________________
Join 9kw.eu Captcha Service now and let your JD continue downloads while you sleep. Last edited by thecoder2012; 16.07.2019 at 01:44. |
|
|