JDownloader Community - Appwork GmbH
 

Reply
 
Thread Tools Display Modes
  #1  
Old 11.12.2024, 15:08
rosalyn rosalyn is offline
Super Loader
 
Join Date: Sep 2023
Posts: 25
Default Pornhub Plugin - verfügbare props ?

Hallo,
ich kann leider keine Liste aller verfügbaren props für den Paketverwalter finden. Rechtsklick auf das Textfeld, so wie der popup hinweis es mir sagt, zeigt mir nur 6 stück an. Ich verwende aber bereits welche, die dort nicht aufgelistet sind. Gibt es irgendwo eine Liste aller props ?

Ich benötige nämlich alles was direkt unter einem video steht:
Kategorien, Pornostars, Tags ,Model Attributes und Produktion.

Sind diese Werte bereits verfügbar ?

Beste Grüße
Reply With Quote
  #2  
Old 11.12.2024, 15:14
pspzockerscene's Avatar
pspzockerscene pspzockerscene is online now
Community Manager
 
Join Date: Mar 2009
Location: Deutschland
Posts: 74,111
Default

Forensuche nach "jd:prop pornhub" sollte einige Ergebnisse liefern, ansonsten hier copy & paste:
Code:
    public static final String                    PROPERTY_TITLE                          = "title";
    public static final String                    PROPERTY_FORMAT                         = "format";
    public static final String                    PROPERTY_QUALITY                        = "quality";
    public static final String                    PROPERTY_DIRECTLINK                     = "directlink";
    public static final String                    PROPERTY_DATE                           = "date";
    public static final String                    PROPERTY_CATEGORIES_COMMA_SEPARATED     = "categories_comma_separated";
    public static final String                    PROPERTY_TAGS_COMMA_SEPARATED           = "tags_comma_separated";
    public static final String                    PROPERTY_ACTORS_COMMA_SEPARATED         = "actors_comma_separated";
    public static final String                    PROPERTY_USERNAME                       = "username";
    public static final String                    PROPERTY_VIEWKEY                        = "viewkey";
__________________
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?
Reply With Quote
  #3  
Old 11.12.2024, 15:18
rosalyn rosalyn is offline
Super Loader
 
Join Date: Sep 2023
Posts: 25
Default

Vielen lieben Dank!
Mir würden dann noch die Model Attributes und Produktion fehlen.
Bekomm ich die irgendwie anders oder müsste das implementiert werden ?

Beste Grüße
Reply With Quote
  #4  
Old 11.12.2024, 15:19
pspzockerscene's Avatar
pspzockerscene pspzockerscene is online now
Community Manager
 
Join Date: Mar 2009
Location: Deutschland
Posts: 74,111
Default

Testlinks und Beschreibung, wo diese Attribute zu finden sind bitte.
__________________
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?
Reply With Quote
  #5  
Old 11.12.2024, 15:28
rosalyn rosalyn is offline
Super Loader
 
Join Date: Sep 2023
Posts: 25
Default

Ich habe grade sogar noch eines entdeckt ("Language Spoken"), weiss nicht welche dinge hier noch so stehen können.
Auf jeden fall hier der erste Link als Beispiel:
**External links are only visible to Support Staff****External links are only visible to Support Staff**
-> Die Dinge, die unter dem Actorname stehen, auf demselben Level, wie die tags: Hier sind es Kategorien, Pornostars (leer), Tags, Produktion und Language Spoken.

zweiter Link:
**External links are only visible to Support Staff****External links are only visible to Support Staff**
-> hier fehlt Language Spoken, aber Model Attributes sind vorhanden.
Reply With Quote
  #6  
Old 11.12.2024, 15:53
pspzockerscene's Avatar
pspzockerscene pspzockerscene is online now
Community Manager
 
Join Date: Mar 2009
Location: Deutschland
Posts: 74,111
Default

Neue pornhub Properties für alle Links, die nach Release des nächsten Pluginupdates hinzugefügt werden:
  • video_production
  • language_spoken_in_video
  • model_attributes_comma_separated

Wartest du auf einen angekündigten Bugfix oder ein neues Feature?
Updates werden nicht immer sofort bereitgestellt!
Bitte lies unser Update FAQ! | Please read our Update FAQ!

---
Are you waiting for recently announced changes to get released?
Updates to not necessarily get released immediately!
Bitte lies unser Update FAQ! | Please read our Update FAQ!


-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?
Reply With Quote
  #7  
Old 11.12.2024, 16:35
pspzockerscene's Avatar
pspzockerscene pspzockerscene is online now
Community Manager
 
Join Date: Mar 2009
Location: Deutschland
Posts: 74,111
Default

Update ist live.
EDIT

Nachtrag:
Wie man verfügbare Plugin Properties findet, ist hier erklärt:
https://support.jdownloader.org/de/k...the-packagizer
__________________
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?

Last edited by pspzockerscene; 11.12.2024 at 16:35. Reason: EDIT
Reply With Quote
  #8  
Old 11.12.2024, 17:28
rosalyn rosalyn is offline
Super Loader
 
Join Date: Sep 2023
Posts: 25
Default

Vielen Dank, funktioniert super!
Reply With Quote
  #9  
Old 12.12.2024, 10:38
pspzockerscene's Avatar
pspzockerscene pspzockerscene is online now
Community Manager
 
Join Date: Mar 2009
Location: Deutschland
Posts: 74,111
Default

Danke für dein Feedback
__________________
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?
Reply With Quote
  #10  
Old 12.12.2024, 11:45
rosalyn rosalyn is offline
Super Loader
 
Join Date: Sep 2023
Posts: 25
Default

hätte aber trotzdem noch eine frage: wieso erscheint als value for pornstars ein "No", wenn die liste leer ist ? hast du das dahingeschrieben, oder kommt dieser wert von dort ?
Reply With Quote
  #11  
Old 12.12.2024, 11:54
pspzockerscene's Avatar
pspzockerscene pspzockerscene is online now
Community Manager
 
Join Date: Mar 2009
Location: Deutschland
Posts: 74,111
Default

Testlinks bitte.
__________________
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?
Reply With Quote
  #12  
Old 12.12.2024, 12:00
rosalyn rosalyn is offline
Super Loader
 
Join Date: Sep 2023
Posts: 25
Default

**External links are only visible to Support Staff****External links are only visible to Support Staff**

hier zB bekomme ich für actors ein "No"
Reply With Quote
  #13  
Old 12.12.2024, 12:05
pspzockerscene's Avatar
pspzockerscene pspzockerscene is online now
Community Manager
 
Join Date: Mar 2009
Location: Deutschland
Posts: 74,111
Default

Siehe html code von pornhub.com:
Code:
'pornstars_in_video' : 'No',
__________________
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?
Reply With Quote
  #14  
Old 12.12.2024, 12:13
pspzockerscene's Avatar
pspzockerscene pspzockerscene is online now
Community Manager
 
Join Date: Mar 2009
Location: Deutschland
Posts: 74,111
Default

Nachtrag:
Die Datenquelle war schlecht: Dort steht auch "No" bei Videos, die eine Liste von Pornstars haben z.B.
de.pornhub.org/view_video.php?viewkey=674f5d431bc0a

Plugin angepasst.

Wartest du auf einen angekündigten Bugfix oder ein neues Feature?
Updates werden nicht immer sofort bereitgestellt!
Bitte lies unser Update FAQ! | Please read our Update FAQ!

---
Are you waiting for recently announced changes to get released?
Updates to not necessarily get released immediately!
Bitte lies unser Update FAQ! | Please read our Update FAQ!


-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?
Reply With Quote
  #15  
Old 12.12.2024, 12:33
rosalyn rosalyn is offline
Super Loader
 
Join Date: Sep 2023
Posts: 25
Default

Danke du bist ein Schatz, jetzt bekomme ich einen leeren Value, wenn die Liste leer ist und bei deinem Beispiellink eine Liste mit actors.
Reply With Quote
  #16  
Old 12.12.2024, 13:23
pspzockerscene's Avatar
pspzockerscene pspzockerscene is online now
Community Manager
 
Join Date: Mar 2009
Location: Deutschland
Posts: 74,111
Default

So soll es sein.

Danke fürs Feedback.

Was stellst du mit den Informatinen an?
__________________
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?
Reply With Quote
  #17  
Old 16.12.2024, 22:52
rosalyn rosalyn is offline
Super Loader
 
Join Date: Sep 2023
Posts: 25
Default

also zunächst schreib ich mir die ganzen daten mit dem paketverwalter in das kommentar feld der video datei:

Code:
{"username":"<jd:prop:username>","title":"<jd:prop:title>","date":"<jd:prop:date>","viewkey":"<jd:prop:viewkey>","directlink":"<jd:prop:directlink>","quality":"<jd:prop:quality>","format":"<jd:prop:format>","categories":"<jd:prop:categories_comma_separated>","actors":"<jd:prop:actors_comma_separated>","tags":"<jd:prop:tags_comma_separated>","model_tags":"<jd:prop:model_attributes_comma_separated>","production":"<jd:prop:video_production>","language":"<jd:prop:language_spoken_in_video>"}
so hab ich die daten erstmal in nem validen json format.

dann benutz ich dein skript in etwas modifizierter form und lasse das mit dem ereignis skripter ausführen:

Code:
// Writes link comment to text file
// Trigger: "A download has stopped"
// Has some settings, just search for "settings" in this code

// Main function that runs the script based on the early return principle
function run() {
    // Early return if the download is not finished
    if (!link.isFinished()) {
        // console.log("Link is not yet downloaded");
        return;
    }

    var comment = link.getComment(); // Retrieve the comment from the link

    // Early return if the comment is empty
    if (!comment) {
        return;
    }

    // Retrieve the link's file name and download folder path
    var fileName = link.name;
    var sourcePath = package.getDownloadFolder();
    
    // "Settings", see vars down below
    // Define allowed file types (set to null or undefined to allow all types)
    var allowedFileTypes = null; // Example: set to null to allow all file types
    // var allowedFileTypes = [".mp3"];
    // Option to overwrite existing files
    var overwriteExisting = false; // Set to true to overwrite existing files

    // Check if the file type is allowed (skip check if allowedFileTypes is null or undefined)
    if (allowedFileTypes && !allowedFileTypes.some(function(extension) { return fileName.endsWith(extension); })) {
        return;
    }

    // Change the file name to add ".txt" as the new extension
    var outputPath = sourcePath + "/" + adjustFileName(fileName) + ".json";

    // Early return if the file exists and overwriting is disabled
    if (!overwriteExisting && getPath(outputPath).exists()) {
        return;
    }
    
    // Write the comment to the file
    writeFile(outputPath, formatJsonString(comment), true);
}

// Funktion zum Überprüfen und Anpassen des Dateinamens
function adjustFileName(fileName) {
    // Splitte den Dateinamen auf Unterstriche
    var fileNameParts = fileName.split('_');

    // Entferne den vorletzten Teil, wenn er eine Zahl mit einem "p" am Ende ist (z.B. 1080p, 480p)
    if (fileNameParts.length > 1 && /^\d+p\.mp4$/.test(fileNameParts[fileNameParts.length - 1])) {
        fileNameParts.pop();
    }
    
        // Entferne den letzten Teil, wenn er "hls" ist
    if (fileNameParts[fileNameParts.length - 1] === 'hls') {
        fileNameParts.pop();
    }

    // Füge die verbleibenden Teile wieder zusammen
    return fileNameParts.join('_');
}

// Funktion zum Formatieren des JSON-Strings
function formatJsonString(jsonString) {
    try {
        // Parse den JSON-String in ein Objekt
        var jsonObject = JSON.parse(jsonString);
        
        // Konvertiere das Objekt zurück in einen formatierten JSON-String
        return JSON.stringify(jsonObject, null, 4); // 4 Leerzeichen für Einrückung
    } catch (error) {
        console.error('Fehler beim Parsen des JSON-Strings:', error.message);
        return null;
    }
}

// Execute the run function
run();
musste mir noch hinzufügen, dass json ordentlich formatiert rauskommt, dann dass überhaupt n json rauskommt und der dateiname hatte mir so nicht gefallen. wollte, dass er gleich heisst wie das jpg vom thumbnail.

beste grüße
Reply With Quote
  #18  
Old 17.12.2024, 10:31
Jiaz's Avatar
Jiaz Jiaz is offline
JD Manager
 
Join Date: Mar 2009
Location: Germany
Posts: 81,926
Default

@rosalyn: Nur als Information. Du kannst die Informationen auch direkt im Eventscripter Skript abrufen und brauchst den Umweg über das Kommentarfeld nicht. Sprich die Properties kannst du auch mittels Lese/Get Methoden direkt in deinem Skript holen. Dann kannst du auch das JSON "on the fly" zusammenbauen und mit allen möglichen Informationen anreichern und brauchst keine *Zwischenspeicherung via Kommentar*
__________________
JD-Dev & Server-Admin
Reply With Quote
  #19  
Old 17.12.2024, 12:14
pspzockerscene's Avatar
pspzockerscene pspzockerscene is online now
Community Manager
 
Join Date: Mar 2009
Location: Deutschland
Posts: 74,111
Default

Quote:
Originally Posted by rosalyn View Post
so hab ich die daten erstmal in nem validen json format.
Mir gefällt dein simpler Ansatz und ich möchte ihn nicht zerstören, aber bedenke folgendes:
Die Strings, die diese Felder zurückgeben können jegliche Zeichen enthalten.
Würde also einmal ein Anführungszeichen oder ein Backslash in einem der Felder stehen, ist dein json kaputt

Quote:
Originally Posted by rosalyn View Post
Nur als Information. Du kannst die Informationen auch direkt im Eventscripter Skript abrufen und brauchst den Umweg über das Kommentarfeld nicht.
Das wäre auch der bessere Weg und der einzige, sicher immer ein valides json zu erhalten.
EDIT

Nachtrag zu dem Teil deines Scripts, mit dem du die Dateinamen anpasst:
Kannst du so machen, aber die Dateinamen könntest du auch mit einer Packagizer Regel anpassen also komplett ohne Programmierarbeit.
__________________
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?

Last edited by pspzockerscene; 17.12.2024 at 12:15. Reason: EDIT
Reply With Quote
  #20  
Old 03.02.2025, 17:12
rosalyn rosalyn is offline
Super Loader
 
Join Date: Sep 2023
Posts: 25
Default

Hallo,
ich war leider einige zeit aus privaten gründen abwesend von dem thema.

hier hab ich mal das skript angepasst und lese die werte nicht mehr aus dem kommentarfeld, sondern greife sie mit den gettern ab:

Code:
// Writes link comment to text file
// Trigger: "A download has stopped"
// Has some settings, just search for "settings" in this code

// Main function that runs the script based on the early return principle
function run() {
    // Early return if the download is not finished
    if (!link.isFinished()) {
        // console.log("Link is not yet downloaded");
        return;
    }
    
    // Retrieve the link's file name
    var fileName = link.name;
    
    // Early return if the download is no mp4 file
    if (!fileName.endsWith('.mp4')) {
        // console.log("Link is no mp4 file");
        return;
    }

    // Retrieve the link's download folder path
    var sourcePath = package.getDownloadFolder();
    
    // "Settings", see vars down below
    // Define allowed file types (set to null or undefined to allow all types)
    var allowedFileTypes = null; // Example: set to null to allow all file types
    // var allowedFileTypes = [".mp3"];
    // Option to overwrite existing files
    var overwriteExisting = false; // Set to true to overwrite existing files

    // Check if the file type is allowed (skip check if allowedFileTypes is null or undefined)
    if (allowedFileTypes && !allowedFileTypes.some(function(extension) { return fileName.endsWith(extension); })) {
        return;
    }

    // Change the file name to add ".txt" as the new extension
    var outputPath = sourcePath + "/" + adjustFileName(fileName) + ".json";

    // Early return if the file exists and overwriting is disabled
    if (!overwriteExisting && getPath(outputPath).exists()) {
        return;
    }
    
    writeFile(outputPath, buildJsonFromObject(link), true);
}

// Funktion zum Überprüfen und Anpassen des Dateinamens
function adjustFileName(fileName) {
    // Splitte den Dateinamen auf Unterstriche
    var fileNameParts = fileName.split('_');

    // Entferne den vorletzten Teil, wenn er eine Zahl mit einem "p" am Ende ist (z.B. 1080p, 480p)
    if (fileNameParts.length > 1 && /^\d+p\.mp4$/.test(fileNameParts[fileNameParts.length - 1])) {
        fileNameParts.pop();
    }
    
        // Entferne den letzten Teil, wenn er "mp4" ist
    if (fileNameParts[fileNameParts.length - 1] === 'hls') {
        fileNameParts.pop();
    }

    // Füge die verbleibenden Teile wieder zusammen
    return fileNameParts.join('_');
}

function buildJsonFromObject(inputObject) {
    // JSON-Objekt zusammenbauen
    var jsonObject = {
        username: inputObject.getProperty("username"),
        title: inputObject.getProperty("title"),
        date: inputObject.getProperty("date"),
        viewkey: inputObject.getProperty("viewkey"),
        directlink: inputObject.getProperty("directlink"),
        quality: inputObject.getProperty("quality"),
        format: inputObject.getProperty("format"),
        categories: inputObject.getProperty("categories_comma_separated"),
        actors: inputObject.getProperty("actors_comma_separated"),
        tags: inputObject.getProperty("tags_comma_separated"),
        model_tags: inputObject.getProperty("model_attributes_comma_separated"),
        production: inputObject.getProperty("video_production"),
        language: inputObject.getProperty("language_spoken_in_video")
    };

    // JSON-Objekt als String zurückgeben
    return JSON.stringify(jsonObject, null, 4);
}

// Execute the run function
run();
und hier werden sonderzeichen, die n json kaputt machen würden automatisch escaped ?
und gibts es für die getter nochn paramater, dass ich kein null, sondern einen leeren wert zurückbekomme, wenn er nicht da ist ? bin irgendwie zu doof hier ne doku zu zu finden.

und ist es noch möglich, dass man als attribut auch den pornhub link zum model hier rein bekommt ? über den viewkey kann man ja zum video gelangen. aber zum model gibts hier keinen weg, oder ? bei manchen steht ja in der url "pornstar" und bei manchen stattdessen "model"...

Beste Grüße
Rosalyn
Reply With Quote
  #21  
Old 03.02.2025, 17:31
pspzockerscene's Avatar
pspzockerscene pspzockerscene is online now
Community Manager
 
Join Date: Mar 2009
Location: Deutschland
Posts: 74,111
Default

Quote:
Originally Posted by rosalyn View Post
und hier werden sonderzeichen, die n json kaputt machen würden automatisch escaped ?
Davon gehe ich aus.
Das könntest du einfach ausprobieren, indem du z.B. ein Anführungszeichen mit an einen String anhängst aka:
Code:
username: inputObject.getProperty("username" + "\""),
Quote:
Originally Posted by rosalyn View Post
und gibts es für die getter nochn paramater, dass ich kein null, sondern einen leeren wert zurückbekomme, wenn er nicht da ist ?
Dürfte so gehen;
Code:
inputObject.getProperty("key", "fallbackWert"),
Quote:
Originally Posted by rosalyn View Post
bin irgendwie zu doof hier ne doku zu zu finden.
Beliebiges Script im JD Scripteditor öffnen -> Hilfe zeigen/verstecken -> Liste von möglichen Methoden & Beispielen erscheint.

Quote:
Originally Posted by rosalyn View Post
und ist es noch möglich, dass man als attribut auch den pornhub link zum model hier rein bekommt ?
Möglich ja, nötig nein.
Die Info ist im Quell-Link enthalten, daher kannst du sie dir dort herausziehen.
__________________
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?
Reply With Quote
  #22  
Old 03.02.2025, 21:06
rosalyn rosalyn is offline
Super Loader
 
Join Date: Sep 2023
Posts: 25
Default

Quote:
Originally Posted by pspzockerscene View Post
Code:
inputObject.getProperty("key", "fallbackWert"),
...Beliebiges Script im JD Scripteditor öffnen -> Hilfe zeigen/verstecken -> Liste von möglichen Methoden & Beispielen erscheint.
ah ok hab den "button" mal gekonnt übersehen... :D

EDIT:
finde in der doku nur das hier:
Code:
var myObject = myDownloadLink.getProperty(myString);
und es knallt, wenn ich es trotzdem versuche mit nem fallback wert an der stelle, dass er keine funktion "getProperty" hat mit (String, String) als parameter..
hier der stacktrace
Code:
net.sourceforge.htmlunit.corejs.javascript.EvaluatorException: Can't find method org.jdownloader.extensions.eventscripter.sandboxobjects.DownloadLinkSandBox.getProperty(string,string). (#69)
	at net.sourceforge.htmlunit.corejs.javascript.DefaultErrorReporter.runtimeError(DefaultErrorReporter.java:71)
	at net.sourceforge.htmlunit.corejs.javascript.Context.reportRuntimeError(Context.java:1090)
	at net.sourceforge.htmlunit.corejs.javascript.Context.reportRuntimeError(Context.java:1137)
	at net.sourceforge.htmlunit.corejs.javascript.Context.reportRuntimeError1(Context.java:1105)
	at net.sourceforge.htmlunit.corejs.javascript.NativeJavaMethod.call(NativeJavaMethod.java:134)
	at net.sourceforge.htmlunit.corejs.javascript.Interpreter.interpretLoop(Interpreter.java:1536)
	at script.buildJsonFromObject(:69)
	at script.run(:45)
	at script(:90)
	at net.sourceforge.htmlunit.corejs.javascript.Interpreter.interpret(Interpreter.java:798)
	at net.sourceforge.htmlunit.corejs.javascript.InterpretedFunction.call(InterpretedFunction.java:105)
	at net.sourceforge.htmlunit.corejs.javascript.ContextFactory.doTopCall(ContextFactory.java:411)
	at org.jdownloader.scripting.JSHtmlUnitPermissionRestricter$SandboxContextFactory.doTopCall(JSHtmlUnitPermissionRestricter.java:134)
	at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3286)
	at net.sourceforge.htmlunit.corejs.javascript.InterpretedFunction.exec(InterpretedFunction.java:115)
	at net.sourceforge.htmlunit.corejs.javascript.Context.evaluateString(Context.java:1361)
	at org.jdownloader.extensions.eventscripter.ScriptThread.evalUNtrusted(ScriptThread.java:346)
	at org.jdownloader.extensions.eventscripter.ScriptThread.executeScipt(ScriptThread.java:194)
	at org.jdownloader.extensions.eventscripter.ScriptThread.run(ScriptThread.java:174)
ne idee ?
ich mein klar, offensichtlich gibts das so nicht, da ich kein js experte bin könnt ich da plain n null check machen und dann leeren string einsetzen, aber gibt doch sicher ne schönere lösung :D


Quote:
Originally Posted by pspzockerscene View Post
Möglich ja, nötig nein.
Die Info ist im Quell-Link enthalten, daher kannst du sie dir dort herausziehen.
kannst du mir das bitte ein wenig genauer erklären bzw. sagen welcher getter die modelseite holt ?
hab n paar die in frage kommen vom namen her ausprobiert, aber kommt entweder n null oder die url mit dem viewkey zurück

Last edited by rosalyn; 03.02.2025 at 23:54.
Reply With Quote
  #23  
Old 04.02.2025, 08:34
pspzockerscene's Avatar
pspzockerscene pspzockerscene is online now
Community Manager
 
Join Date: Mar 2009
Location: Deutschland
Posts: 74,111
Default

Quote:
Originally Posted by rosalyn View Post
finde in der doku nur das hier:
Dann gibt es auch nur das.
Tut mir leid ich bin nicht so in der EventScripter Thematik drin.

In diesem Fall empfehle ich dir, dir eine Wrapperfunktion zu bauen, die genau so funktioniert wie das was ich geschrieben hatte also Property vom DownloadLink Item holen und sofern die null ist, den angegebenen Fallbackwert zurückgeben.

Quote:
Originally Posted by rosalyn View Post
ich mein klar, offensichtlich gibts das so nicht, da ich kein js experte bin könnt ich da plain n null check machen und dann leeren string einsetzen, aber gibt doch sicher ne schönere lösung :D
Ich denke eine Wrapper Funktion ist auch nicht hässlich.
Intern haben wir die besagte Funktion mit Fallback.
Ob Jiaz die auch ins js Framework einbauen möchte, dazu kann er sich später gerne in diesem Thread äußern.
Hast du ein LLM zur Hilfe genommen, um das obige Script zu erstellen?

Quote:
Originally Posted by rosalyn View Post
kannst du mir das bitte ein wenig genauer erklären bzw. sagen welcher getter die modelseite holt ?
Wie gesagt ich bin da nicht so drin.
Hier meine Vermutung:
Code:
var myString = myDownloadLink.getContainerURL();
__________________
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?
Reply With Quote
  #24  
Old 04.02.2025, 10:11
rosalyn rosalyn is offline
Super Loader
 
Join Date: Sep 2023
Posts: 25
Default

Quote:
Originally Posted by pspzockerscene View Post
In diesem Fall empfehle ich dir, dir eine Wrapperfunktion zu bauen, die genau so funktioniert wie das was ich geschrieben hatte also Property vom DownloadLink Item holen und sofern die null ist, den angegebenen Fallbackwert zurückgeben.
dann mach ich das einfach^^

Quote:
Originally Posted by pspzockerscene View Post
Hast du ein LLM zur Hilfe genommen, um das obige Script zu erstellen?
naja so kleinkram schreibe ich nicht mehr selbst seit ich den github copiloten hab^^
das basis skript hatte ich aber irgendwann mal hier ausm forum und das halt modifiziert.

Quote:
Originally Posted by pspzockerscene View Post
Hier meine Vermutung:
Code:
var myString = myDownloadLink.getContainerURL();
ich hab diese getter hier probiert, aber gibt mir nicht das was ich brauche... die links hab ich "maskiert" :D
Code:
    "origin_url": null,
    "content_url": "link with viewkey",
    "container_url": "link with viewkey",
    "referred_url": null
Reply With Quote
  #25  
Old 04.02.2025, 10:24
pspzockerscene's Avatar
pspzockerscene pspzockerscene is online now
Community Manager
 
Join Date: Mar 2009
Location: Deutschland
Posts: 74,111
Default

Quote:
Originally Posted by rosalyn View Post
naja so kleinkram schreibe ich nicht mehr selbst seit ich den github copiloten hab^^
Bin ich ganz bei dir.
Anhand der vielen Kommentare konnte man das gut erkennen.

Quote:
Originally Posted by rosalyn View Post
ich hab diese getter hier probiert, aber gibt mir nicht das was ich brauche... die links hab ich "maskiert" :D
Versuchs mal zusätzlich mit:
Code:
getOriginURL
getPluginURL
getReferrerURL
Wenns keines davon ist empfehle ich dir, den EventScripter Thread zu durchsuchen und/oder auf Antwort eines Teammitglieds oder User mgpai zu warten.
__________________
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?
Reply With Quote
  #26  
Old 04.02.2025, 11:21
rosalyn rosalyn is offline
Super Loader
 
Join Date: Sep 2023
Posts: 25
Default

Quote:
Originally Posted by pspzockerscene View Post
Bin ich ganz bei dir.
Anhand der vielen Kommentare konnte man das gut erkennen.


Quote:
Originally Posted by pspzockerscene View Post
Versuchs mal zusätzlich mit:
Code:
getOriginURL
getPluginURL
getReferrerURL
Zwei davon stehen schon oben und den dritten bekomm ich sowas:
Code:
"plugin_url": "**External links are only visible to Support Staff**
evtl. is das noch garnich da ? ich warte mal, wie du schon empfohlen hattest
Reply With Quote
  #27  
Old 04.02.2025, 21:39
Jiaz's Avatar
Jiaz Jiaz is offline
JD Manager
 
Join Date: Mar 2009
Location: Germany
Posts: 81,926
Default

Quote:
Originally Posted by rosalyn View Post
mit nem fallback wert an der stelle, dass er keine funktion "getProperty" hat mit (String, String) als parameter..
Eine (String,String) mit der Angabe des "default" ist so nicht machbar, weil ja auch andere Datentypen erwartet werden können.
int nummer=getProperty("gibtsnicht","1000") knallt halt dann
Entweder wird es eine generische Funktion (String,Object) und man muss selbst den richtigen Datentypen sicherstellen oder ich mach nen Wrapper für Properties mit getString, getBoolean,getNumber usw, wie es intern auch im JDownloader hinterlegt ist.

Wäre ein solcher Wrapper in Ordnung?
ala link.getProperties().getInteger("zahl",1000) und link.getProperties().getString("bla","Yeah") ?
__________________
JD-Dev & Server-Admin
Reply With Quote
  #28  
Old 04.02.2025, 21:44
Jiaz's Avatar
Jiaz Jiaz is offline
JD Manager
 
Join Date: Mar 2009
Location: Germany
Posts: 81,926
Default

@rosalyn:
getPluginURL -> gibt die JDownloader interne URL zurück. Diese kann, muss aber keine gültige URL sein.

getOriginURL ist schon die richtige Methode, aber es hängt natürlich stark davon ab, wie du den Link hinzufügst. Sprich wenn du ein Video direkt einfügst, dann gibt es kein Origin. Origin wäre zb Übersichtslink der dann auf die einzelnen Videos/Links verlinkt.
__________________
JD-Dev & Server-Admin
Reply With Quote
  #29  
Old 04.02.2025, 22:42
rosalyn rosalyn is offline
Super Loader
 
Join Date: Sep 2023
Posts: 25
Default

Quote:
Originally Posted by Jiaz View Post
int nummer=getProperty("gibtsnicht","1000") knallt halt dann
naja javascript und dem json ist das erstmal egal und meiner weiteren verarbeitung der daten auch, da ich alles als string behandel, was ich hier raus ziehe.

Quote:
Originally Posted by Jiaz View Post
Entweder wird es eine generische Funktion (String,Object) und man muss selbst den richtigen Datentypen sicherstellen
das muss man ja ohne default wert unter umständen auch schon :D

Quote:
Originally Posted by Jiaz View Post
Entweder wird es eine generische Funktion (String,Object) und man muss selbst den richtigen Datentypen sicherstellen oder ich mach nen Wrapper für Properties mit getString, getBoolean,getNumber usw, wie es intern auch im JDownloader hinterlegt ist.

Wäre ein solcher Wrapper in Ordnung?
ala link.getProperties().getInteger("zahl",1000) und link.getProperties().getString("bla","Yeah") ?
mir ist beides recht, wie auch immer du es lieber machen möchtest :D ich kann mir den wrapper aber auch selbst machen...^^

EDIT: wenn ich so drüber nachdenke finde ich die lösung mit dem wrapper zwar sehr gut, aber welche datentypen möchtest du denn alles abdecken ? String, int, double, boolean... ? weiss nicht ob das nicht schon zuviel aufwand für sone kleine sache ist. mit object wäre denk ich einfacher und vielseitiger einsetzbar

Last edited by rosalyn; 04.02.2025 at 23:43.
Reply With Quote
  #30  
Old 04.02.2025, 22:48
rosalyn rosalyn is offline
Super Loader
 
Join Date: Sep 2023
Posts: 25
Default

Quote:
Originally Posted by Jiaz View Post
@rosalyn:
getPluginURL -> gibt die JDownloader interne URL zurück. Diese kann, muss aber keine gültige URL sein.

getOriginURL ist schon die richtige Methode, aber es hängt natürlich stark davon ab, wie du den Link hinzufügst. Sprich wenn du ein Video direkt einfügst, dann gibt es kein Origin. Origin wäre zb Übersichtslink der dann auf die einzelnen Videos/Links verlinkt.
meistens füge ich die links über die model url mit "/videos" am ende hinzu. manchmal aber auch direkt über die videos. ich brauche konsistent über einen getter die zugehörige modelseite. das würde mir jedenfalls das leben sehr viel leichter machen^^
Reply With Quote
  #31  
Old 05.02.2025, 09:41
Jiaz's Avatar
Jiaz Jiaz is offline
JD Manager
 
Join Date: Mar 2009
Location: Germany
Posts: 81,926
Default

@rosalyn: Ich werde nen Wrapper einbauen, gebe dir Bescheid sobald fertig/released.
Ich denke es macht mehr Sinn das *Model* als Property abzulegen @pspzockerscene und sich die URL selbst zusammenzubauen, da OriginURL eben nur dann verfügbar ist, wenn auch über entsprechende Links eingefügt wurde. Evtl gibt es das nötige Property ja auch schon, muss mal geprüft werden.
__________________
JD-Dev & Server-Admin
Reply With Quote
  #32  
Old 05.02.2025, 09:55
rosalyn rosalyn is offline
Super Loader
 
Join Date: Sep 2023
Posts: 25
Default

danke!
mir würde das "/model/name" oder halt "/pornstar/name" genügen. das kann ich auch bei sichtung des seiten quellcodes dort auch so als href finden. wenn ich das easy abgreifen könnte, das würd mir gefallen.
Reply With Quote
  #33  
Old 05.02.2025, 09:59
rosalyn rosalyn is offline
Super Loader
 
Join Date: Sep 2023
Posts: 25
Default

@pspzockerscene
falls dir das hilft, ich hab das mal testweise so rausgeholt:

Code:
	const divElement = doc.querySelector('div.from');
        if (divElement) {
            const linkElement = divElement.querySelector('div span a');
            if (linkElement) {
                const hrefValue = linkElement.getAttribute('href');
                console.log('href-Wert:', hrefValue);
                return hrefValue;
            } else {
                console.log('Das <a>-Element wurde nicht gefunden');
                return null;
            }
        } else {
            console.log('Das <div>-Element mit der Klasse "from" wurde nicht gefunden');
            return null;
        }
EDIT: entschuldige meinen evtl jugendlichen ansatz. ich habe sonst mit webentwicklung nix zu tun :D

Last edited by rosalyn; 05.02.2025 at 10:02.
Reply With Quote
  #34  
Old 05.02.2025, 11:52
pspzockerscene's Avatar
pspzockerscene pspzockerscene is online now
Community Manager
 
Join Date: Mar 2009
Location: Deutschland
Posts: 74,111
Default

Quote:
Originally Posted by Jiaz View Post
Ich denke es macht mehr Sinn das *Model* als Property abzulegen @pspzockerscene
Bin ich anderer Meinung.
Ich verstehe nicht, warum er über das js Framework nicht an die URL kommt, während sie klar vorhanden ist.

@rosalyn
Du hast mich nicht verstanden.
Nochmal gaanz von vorne:
Du fügst einen "pornstar" Link ein z.B.:
Code:
de.pornhub.org/pornstar/coco-lovelock
Nun crawlt JD alle Videos.
Du willst später an die Eingangsurl kommen, damit du z.B. das Pfadsegment hinter "pornstar" abgreifen kannst oder den String "pornstar" selbst, ist das korrekt?

Wenn du in der GUI im Linkgrabber auf ein Video rechtsklick machst -> Properties -> Show download URLs -> Doppelklick auf die Zeile in der Spalte "Download From" siehst du alle bekannten Quell-URLs.
Screenshot:
Spoiler:

Die Frage lautet nun also:
Wie kommt man per EventScripter an diese URL?
Ich kann mir nicht vorstellen, dass das nicht geht.
__________________
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?
Reply With Quote
  #35  
Old 05.02.2025, 13:08
rosalyn rosalyn is offline
Super Loader
 
Join Date: Sep 2023
Posts: 25
Default

Quote:
Originally Posted by pspzockerscene View Post
Du willst später an die Eingangsurl kommen, damit du z.B. das Pfadsegment hinter "pornstar" abgreifen kannst oder den String "pornstar" selbst, ist das korrekt?
den string selbst. also eigtl alles nach "pornhub.org". oder zumindest den teil "/model/modelName" oder halt auch "/pornstar/modelName" ooder was auch immer da noch stehen könnte. wobei mir da noch nichts anderes untergekommen ist.

Quote:
Originally Posted by pspzockerscene View Post
Wenn du in der GUI im Linkgrabber auf ein Video rechtsklick machst -> Properties -> Show download URLs -> Doppelklick auf die Zeile in der Spalte "Download From" siehst du alle bekannten Quell-URLs.
Screenshot:
Spoiler:

Die Frage lautet nun also:
Wie kommt man per EventScripter an diese URL?
Ich kann mir nicht vorstellen, dass das nicht geht.
wenn ich die links über die modelseite hinzufüge, dann bekomm ich die vollständige einfüge url in der gui angezeigt und kann sie auch im skript über getOriginURL() holen.
Code:
"origin_url": "**External links are only visible to Support Staff**
füge ich ein video über die direkte url zum video hinzu, dann ist dieser wert null und wird mir auch nicht in der gui angezeigt.

EDIT: und selbst wenn dieser wert bei ner direkten url zum video gefüllt wäre, dann wär das ja auch sinngemäß auch die url zum video und nicht die url zur modelseite.

Last edited by rosalyn; 05.02.2025 at 13:13.
Reply With Quote
  #36  
Old 05.02.2025, 13:13
pspzockerscene's Avatar
pspzockerscene pspzockerscene is online now
Community Manager
 
Join Date: Mar 2009
Location: Deutschland
Posts: 74,111
Default

Quote:
Originally Posted by rosalyn View Post
wenn ich die links über die modelseite hinzufüge, dann bekomm ich die vollständige einfüge url in der gui angezeigt und kann sie auch im skript über getOriginURL() holen.
Okay okay erste Anzeichen, dass wir eventuell doch aneinander vorbeigeredet hatten.
Ich dachte, der Kontext der "/pornstar/" URL sei immer gegeben und habe mich gewundert, warum du nicht an die URL kommst.

Quote:
Originally Posted by rosalyn View Post
füge ich ein video über die direkte url zum video hinzu, dann ist dieser wert null und wird mir auch nicht in der gui angezeigt.
Das ist auch korrekt so, da die URL in diesem Fall ja keine Quell-URL ist.
Die Frage ist nun:
Kommst du über die existierenden Properties an die Info, dass die Quell-URL die mit "/pornstar/" ist oder wird doch ein weiteres Property benötigt.
__________________
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?
Reply With Quote
  #37  
Old 05.02.2025, 14:08
rosalyn rosalyn is offline
Super Loader
 
Join Date: Sep 2023
Posts: 25
Default

Quote:
Originally Posted by pspzockerscene View Post
Die Frage ist nun:
Kommst du über die existierenden Properties an die Info, dass die Quell-URL die mit "/pornstar/" ist oder wird doch ein weiteres Property benötigt.
also ich verwende alle mir bekannten props für das plugin. die benötigte info ist dort nicht bei.

ich weiss ja nicht wie du die infos aus den seiten extrahierst, aber beispielhaft hatte ich ja oben schon ein stückchen code geposted um zu zeigen welche info ich meine und wo sie steckt.
Reply With Quote
  #38  
Old 05.02.2025, 14:42
pspzockerscene's Avatar
pspzockerscene pspzockerscene is online now
Community Manager
 
Join Date: Mar 2009
Location: Deutschland
Posts: 74,111
Default

Quote:
Originally Posted by rosalyn View Post
fos aus den seiten extrahierst, aber beispielhaft hatte ich ja oben schon ein stückchen code geposted um zu zeigen welche info ich meine und wo sie steckt.
Das habe ich gelesen und verstanden.
Dennoch haben wir nochmals aneinander vorbeigeredet.

Ich zitiere mich eben selbst:
Quote:
Originally Posted by pspzockerscene View Post
Die Frage ist nun:
Kommst du über die existierenden Properties an die Info, dass die Quell-URL die mit "/pornstar/" ist oder wird doch ein weiteres Property benötigt.
Ich formuliere das neu:
Es scheint ja auf PH eine Unterscheidung zwischen "pornstars" und "models" zu geben.
Diese Info möchtest du pro Video abrufbar haben.
Ich stellte mir die Frage, ob man aus den bisher schon gesetzten Properties nicht bereits drauf schließen kann, ob das Video von einem "pornstar" oder einem "model" gepostet wurde.
Dies würde die Notwendigkeit, ein weiteres Property zu setzen eliminieren.
__________________
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?
Reply With Quote
  #39  
Old 05.02.2025, 14:54
pspzockerscene's Avatar
pspzockerscene pspzockerscene is online now
Community Manager
 
Join Date: Mar 2009
Location: Deutschland
Posts: 74,111
Default

Nachtrag:

Meine Findings:
Mit den bisherigen Properties kann man nicht drauf schließen, ob es sich um Typ "model" oder "pornstar" handelt.

Beispiel model
Code:
pornhub.org/view_video.php?viewkey=6582ccbdb0a29
->
Code:
pornhub.org/model/nolube
Beispiel Pornstar:
Code:
pornhub.org/view_video.php?viewkey=ph5f9367646298e
->
Code:
pornhub.org/pornstar/leana-lovings
Allerdings scheint es PH egal zu sein, ob man den Username im Link richtig hat. Man kann immer "/model/" verwenden und wird zum richtigen Link weitergeleitet z.B.
Code:
pornhub.org/model/leana-lovings
-> Leitet weiter auf:
Code:
pornhub.org/pornstar/leana-lovings
Benötigst du die Property noch immer?
Jetzt weißt du ja, dass du mit dem Namen des Uploaders immer auch an eine im Browser aufrufbare URL kommst.

Falls ja:
Wenn ich im html Code schaue erscheint mir folgendes als Datenquelle besser geeignet als das was du gepostet hast:
Code:
'video_uploader': ...
Bei Typ "pornstar":
Code:
'video_uploader' : 'Professional Model',
Bei Typ "model":
Code:
'video_uploader' : 'Amateur Model',
Das könntest du dir dann im Script umbiegen auf "/pornstar/" und "/model/".
__________________
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?
Reply With Quote
  #40  
Old 05.02.2025, 15:38
rosalyn rosalyn is offline
Super Loader
 
Join Date: Sep 2023
Posts: 25
Default

Quote:
Originally Posted by pspzockerscene View Post
Nachtrag:

Meine Findings:
Mit den bisherigen Properties kann man nicht drauf schließen, ob es sich um Typ "model" oder "pornstar" handelt.

Beispiel model
Code:
pornhub.org/view_video.php?viewkey=6582ccbdb0a29
->
Code:
pornhub.org/model/nolube
Beispiel Pornstar:
Code:
pornhub.org/view_video.php?viewkey=ph5f9367646298e
->
Code:
pornhub.org/pornstar/leana-lovings
Allerdings scheint es PH egal zu sein, ob man den Username im Link richtig hat. Man kann immer "/model/" verwenden und wird zum richtigen Link weitergeleitet z.B.
Code:
pornhub.org/model/leana-lovings
-> Leitet weiter auf:
Code:
pornhub.org/pornstar/leana-lovings
Benötigst du die Property noch immer?
Jetzt weißt du ja, dass du mit dem Namen des Uploaders immer auch an eine im Browser aufrufbare URL kommst.

Falls ja:
Wenn ich im html Code schaue erscheint mir folgendes als Datenquelle besser geeignet als das was du gepostet hast:
Code:
'video_uploader': ...
Bei Typ "pornstar":
Code:
'video_uploader' : 'Professional Model',
Bei Typ "model":
Code:
'video_uploader' : 'Amateur Model',
Das könntest du dir dann im Script umbiegen auf "/pornstar/" und "/model/".
vielen lieben dank für deine umfassende recherche!
dass in der url auch model für pornstar verwendet werden kann, hatte ich bisher noch nicht gewusst...
da ich mir nun aber bereits ideen für die verwendung der unterscheidung zurecht gesponnen habe, würde ich den typen, wie du ihn als video_uploader rauholst, sehr gerne haben wollen.

würdest du mir das als property einbauen ?
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 16:55.
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 - 2025, Jelsoft Enterprises Ltd.