|
#1
|
|||
|
|||
[LinkCrawler Regel] Plugin für fotocommunity.de
Guten abend,
Könnte jemand bitte ein plugin für die seite fotocommunity.de erstellen? Die seite ist ziemlich populär und aktiv, es befinden sich über 15 millionen größtenteils äußerst hochwertige bilder in der galerie und es sollte ziemlich einfach sein, unter links die immer im folgenden format sind: **External links are only visible to Support Staff****External links are only visible to Support Staff** ...findet sich genau ein bild mit variabler breite aber immer 1080 pixel hoch. Jedoch ist der rechtsklick gesperrt, das bild lässt sich lediglich im vollbildmodus auf die originalgröße zoomen. Jdownloader erkennt mit der zwischenablage-überwachung links im oberen format normal nicht, tiefen scan jedoch viel zu viel, aufgrund cryptischer dateinamen nicht praktikabel. Markiert man jedoch mit der maus das bild und übernimmt per strg c in die zwischenablage, wird ausschließlich das gewünschte bild in den linksammler aufgenommen, jedoch auch mit cryptischem dateinamen. Ideal wäre es also aus links im oberen format jeweils nur das gewünschte bild zu übernehmen und als dateinamen entweder den teil vor dem vorletzten slash / zu übernehmen, im beispiel link wäre das also: ..../zwei-jackies/.... ...da dies der titel des bildes zusammen mit dem fotograf ist und so evtl probleme mit leer- oder sonderzeichen vermieden werden und das bild leicht identifizierbar ist. Wenn das nicht möglich ist wäre die zweite präferenz einfach der titel des bildes, der leider oft eher nichtssagend ist. Ihr würdet mir sehr helfen, ich bedanke mich schonmal im vorraus für das nicht selbstverständliche engagement. Schönes wochenende! Last edited by Mathamphetematiker; 06.05.2023 at 00:53. |
#2
|
||||
|
||||
Sers,
es handelt sich um eine simple Webseite und eine LinkCrawler Regel reicht aus, um beim Kopieren/Hinzufügen von Einzelbilderlinks genau den einen 1080p Link zu finden. Bitte lies den Artikel und gib bescheid, falls du Hilfe dabei brauchst. Grüße, psp
__________________
JD Supporter, Plugin Dev. & Community Manager
Erste Schritte & Tutorials || JDownloader 2 Setup Download |
#3
|
|||
|
|||
Obwohl meine Ausbildung schon 6 Jahre her ist, und ich da nichmal explizit reguläre Ausdrücke gelernt hab, hab ich es ganz alleine geschafft (nachdem ich schon zweimal dabei war hier nach Hilfe zu fragen^^). Es war ein bisschen tricky, weil beim deep scan zunächst das 1080px bild überhaupt nicht gefunden wird, sondern nur adressen mit den endungen width=1000 oder height=1000, aber das konnte man einfach mit der rewrite funktion ändern.
Danke für die schnelle Antwort und den Raum zum selber-lernen^^, hier ist noch die Regel falls du was siehst was man besser machen kann: Code:
{ "name" : "DEEPDECRYPT fotocommunity.de", "rule" : "DEEPDECRYPT", "enabled" : true, "logging" : false, "maxDecryptDepth" : 1, "pattern" : "**External links are only visible to Support Staff**, "deepPattern" : "(**External links are only visible to Support Staff**, "packageNamePattern" : "<a href=\"/photo/([A-Za-z0-9]+(-[A-Za-z0-9]+)+)/[0-9]+\">" }, { "name" : "REWRITE fotocommunity.de", "rule" : "REWRITE", "enabled" : true, "pattern" : "(**External links are only visible to Support Staff**, "rewriteReplaceWith" : "$1height=1080" } regex-generator.olafneumann.org und noch darauf hinweisen, dass auf der Seite zum Überprüfen regulärer Ausdrücke, die in der Knowledgebase verlinkt ist, mit dem Hinweis man solle Java 8 auswählen, trotzdem z.B. Punkte "." nur richtig erkannt werden wenn sie mit einem Backslash "" maskiert werden obwohl sie in den Linkcrawler-Regeln mit zwei "" maskiert werden müssen, das kann sehr verwirrend sein wenn man sich damit überhaupt nicht auskennt: **External links are only visible to Support Staff****External links are only visible to Support Staff** EDIT: hab gerade gemerkt dass Code:
"packageNamePattern" : "<a href="/photo/([A-Za-z0-9]+(-[A-Za-z0-9]+)+)/[0-9]+">" von einer Adresse, z.B. **External links are only visible to Support Staff****External links are only visible to Support Staff** den Teil "zwei-jackies" als Packet Name, das ist der Titel des bildes und der Name des Fotografen. EDIT2: Ich hab es noch mit Code:
"packageNamePattern" : "<meta property=\"og:url\" content=\"**External links are only visible to Support Staff**>"
__________________
Wo gezogen wird, wird auch geschoben. Last edited by pspzockerscene; 10.05.2023 at 11:39. Reason: regex-generator.olafneumann.org Link öffentlich sichtbar gemacht |
#4
|
||||
|
||||
Quote:
Ich hätte die Ausdrücke für die URLs noch generischer gestaltet also auch "**External links are only visible to Support Staff** und ohne "www." erlaubt, aber höchstwahrscheinlich wirst du das nicht benötigen. Quote:
Ich werde es jedoch erstmal nicht in den Supportartikeln verlinken, da wir regex101.com an vielen Stellen verlinkt haben. Quote:
Es mag zwar sein, dass andere Webtools den Doppelbackslash akzeptieren, aber theoretisch ist der hier korrekt. Erklärung: Im json nimmst du Backslash üblicherweise, wenn du ein Anführungszeichen schreiben willst also auch zum Escapen. Beispiel: Code:
{ "testKey": "gueltiges json mit \"anfuehrungszeichen\"" } Code:
{ "testKey": "ungueltiges json mit "anfuehrungszeichen" " } Code:
{ "testKey": "Ungueltiges json: Punkt in json mit nur einem Backslash escapen geht nicht: \." } Es kann also sein, dass dein Webtool das erkennt und korrigiert. Dazu poste ich gleich noch eine Antwort.
__________________
JD Supporter, Plugin Dev. & Community Manager
Erste Schritte & Tutorials || JDownloader 2 Setup Download |
#5
|
||||
|
||||
Ich hab die Regel mal so angepasst, wie sie bei mir funktioniert.
Die Anpassung des regulären Ausdruckes für den Paketnamen war die einzig notwendige. Regel: Code:
[ { "name": "DEEPDECRYPT fotocommunity.de", "rule": "DEEPDECRYPT", "enabled": true, "logging": false, "maxDecryptDepth": 1, "pattern": "https?://(www\\.)?fotocommunity\\.de/photo/([A-Za-z-]+)/[A-Za-z0-9]+", "deepPattern": "(https?://img\\.fotocommunity\\.com/[A-Za-z0-9-]+\\.jpg\\?[A-Za-z]+=1000)", "packageNamePattern": "<meta property=\"og:url\" content=\"https?://(?:www\\.)?fotocommunity\\.de/photo/([^/]+)/[0-9]+\"\\s*>" }, { "name": "REWRITE fotocommunity.de", "rule": "REWRITE", "enabled": true, "pattern": "(https?://img\\.fotocommunity\\.com/([A-Za-z0-9-]+)\\.jpg\\?)[A-Za-z]+=1000", "rewriteReplaceWith": "$1height=1080" } ] pastebin.com/raw/ENuhCmZs EDIT Bei Fragen fragen!
__________________
JD Supporter, Plugin Dev. & Community Manager
Erste Schritte & Tutorials || JDownloader 2 Setup Download |
#6
|
|||
|
|||
erledigt
Guten Morgen,
ich musste noch zwei kleine Änderungen vornehmen, es gibt auch Benutzernamen die Zahlen enthalten, und hab dann noch einen Sonderfall bemerkt, es gibt noch Panorama Bilder die nur height=500 sind, was aber direkt durch den deep scan gefunden wird und keine REWRITE Regel benötigt, hab einfach die Pixel angabe von =1000 zu =(5|10)00 geändert. Das ist also die fertige Regel: Code:
{ "name": "DEEPDECRYPT fotocommunity.de", "rule": "DEEPDECRYPT", "enabled": true, "logging": false, "maxDecryptDepth": 1, "pattern": "https?://(www\\.)?fotocommunity\\.de/photo/([A-Za-z0-9-]+)/[0-9]+", "deepPattern": "(https?://img\\.fotocommunity\\.com/[A-Za-z0-9-]+\\.jpg\\?[A-Za-z]+=(5|10)00)", "packageNamePattern": "<meta property=\"og:url\" content=\"https?://(?:www\\.)?fotocommunity\\.de/photo/([^/]+)/[0-9]+\"\\s*>" }, { "name": "REWRITE fotocommunity.de", "rule": "REWRITE", "enabled": true, "pattern": "(https?://img\\.fotocommunity\\.com/([A-Za-z0-9-]+)\\.jpg\\?)[A-Za-z]+=1000", "rewriteReplaceWith": "$1height=1080" } Ich würde nur nochmal was zu den doppel Backslashes sagen, um das Missverständniss auszuräumen, denn ich hab mich nochmal mit der Seite "regex101.com" beschäftigt, und bemerkt, dass ich zunächst die Funktionsweise des Tools nicht ganz begriffen hab. In der knowledge Base steht: Quote:
Das war falsch, wenn man den Regulären Ausdruck so einfügt, wird er in dem Test nicht erkannt, man muss also den regulären Ausdruck in dem Standart mit NUR EINEM Backslash zum escapen einfügen, wie er z.B. auf meiner Seite "regex-generator.olafneumann.org" unter Punkt "4 Regular Expression" generiert wird. Wenn man auf der Seite "regex101.com" dann den korrekten regulären Ausdruck ermittelt hat, wählt man im "TOOLS" Menü auf der linken Seite unter dem "FLAVOR" Menü den einzigen Punkt "Code Generator" aus, und es erscheint ein Fenster mit Java Code in dem der reguläre Ausdruck mit doppel Backslash vor dem Punkt, dem Java standard entsprechend, enthalten ist, den man dann kopieren und z.B. in der Linkcrawler Regel benutzen kann. Ich fasse kurz zum besseren Verständnis zusammen: Da ich ja beim erstellen der Regel gesehen hab, dass zum escapen von Punkten in den Linkcrawler Regeln zwei Backslashes benötigt werden und in der Knowledgebase ja der Hinweis mit "Java 8" für die Seite "regex101.com" gegeben wird, hab ich also auf "regex101.com" einen regulären Ausdruck zum überprüfen eingefügt, der dem Java Standart entspricht, so wie ich ihn unter "Java" im Menüpunkt "5" ganz untenauf der Seite "regex-generator.olafneumann.org" generiert bekommen habe, und hab auch das "Java 8" in dem Menü ausgewählt, und mich anschließend lange gewundert, wieso der Ausdruck nicht erkannt wird, obwohl er scheinbar korrekt war. So damit wäre alles erledigt, jetzt kann ich meine über 9000 Links von der fotocommunity.de in den JDownloader einfügen, erspare mir tage- oder wochenlange, sehr stumpfsinnige Arbeit, und dafür BEDANKE ICH MICH HERZLICH (=^ェ^=).
__________________
Wo gezogen wird, wird auch geschoben. Last edited by Mathamphetematiker; 13.05.2023 at 02:25. |
#7
|
||||
|
||||
Quote:
Nochmal: Der doppel-Backslash hat nichts mit dem RegEx zu tun sondern mit dem json. stackoverflow.com/questions/19176024/how-to-escape-special-characters-in-building-a-json-string Nochmal: Nimm statt zwei mal nur einen Backslash und füge das json in JD ein. Du wirst eine Fehlermeldung erhalten, aber nicht wegen dem regulären Ausdruck sondern, weil du dir so das json zerschiesst. Außerdem ist die "Tools -> Code Generator" Funktionalität etwas anderes als das Feature des Verstellens des RegEx Flavors. Quote:
Wir haben regex101.com wie gesagt an verschiedenen Stellen verlinkt, aber wir haben nicht vor, in unserer Knowledgebase weiter auf reguläre Ausdrücke und deren Verwendung einzugehen. Das Feature der LinkCrawler Regeln bzw. die Verwendung der Profieinstellungen setzt einige erweiterte Kenntnisse voraus. Sollten da Fragen aufkommen, helfen wir gerne aber "das Niveau der Knowledgebase weiter zu senken" wäre denke ich nicht zielführend. Hätten wir mehr Supporter und Manpower, wäre sowas evtl. denkbar. Danke für dein Feedback und viel Spaß beim Downloaden!
__________________
JD Supporter, Plugin Dev. & Community Manager
Erste Schritte & Tutorials || JDownloader 2 Setup Download |
#8
|
|||
|
|||
Ich hät ne Frage, hab eine weitere Linkcrawler Regel für eine andere Seite erstellt, die gut funktioniert, ist es erwünscht dass man das an passender Stelle im Forum postet? Wird das irgendwo gesammelt oder so?
__________________
Wo gezogen wird, wird auch geschoben. Last edited by Mathamphetematiker; 25.05.2023 at 21:35. |
#9
|
|||
|
|||
sry doppelt
__________________
Wo gezogen wird, wird auch geschoben. |
#10
|
||||
|
||||
Quote:
Nein. Ich würde es im "Wünsche" Unterforum posten
__________________
JD Supporter, Plugin Dev. & Community Manager
Erste Schritte & Tutorials || JDownloader 2 Setup Download |
Thread Tools | |
Display Modes | |
|
|