DSLRUser Geschrieben 25. Januar 2022 Share #1 Geschrieben 25. Januar 2022 Werbung (verschwindet nach Registrierung) Hallo, vielleicht hat sich jemand intensiver mit der LR SDK auseinander gesetzt und kann mir einen Tipp geben. Ich habe ein simples Plug-In. Dabei geht es um folgendes: Auf der Platte liegt eine Textdatei in der Zeile für Zeile komplette Pfand mit Dateinamen steht. Diese Datei wird eben von dem Plug-In eingelesen und eine Sammlung mit gleichen Namen wie die Textdatei angelegt und alle Dateien die in der Textdatei stehen werden dieser Sammlung hinzugefügt. Was mir noch fehlt um es perfekt zu machen ist, dass die Zahl neben dem Sammlungsnamen mit jedem Foto was hinzugefügt wird eben passend erhöht wird. Ich finde bis jetzt nicht wie dieser Zähler funktioniert. Es steht immer auf 0 und wenn das Hinzufügen Vorgang fertig ist, dann springt er auf die Zahl wie viele Fotos in der Sammlung sind. Link zum Beitrag Auf anderen Seiten teilen More sharing options...
Lufthummel Geschrieben 26. Januar 2022 Share #2 Geschrieben 26. Januar 2022 vor 12 Stunden schrieb DSLRUser: Ich finde bis jetzt nicht wie dieser Zähler funktioniert. Hast du ein paar Code Snippets oder besser einen Github Link? Dann kann ich da mal drauf schauen. So ist es etwas schwierig 😉 Link zum Beitrag Auf anderen Seiten teilen More sharing options...
DSLRUser Geschrieben 26. Januar 2022 Autor Share #3 Geschrieben 26. Januar 2022 Mit GitHub kann ich nicht dienen. So sieht mein Code z.Z aus: --- File2Collection.lua --- legt eine Sammlung aus den Bildern einer Textdatei an local LrApplication = import 'LrApplication' local LrDialogs = import 'LrDialogs' local LrFileUtils = import 'LrFileUtils' local LrPathUtils = import 'LrPathUtils' local LrProgressScope = import 'LrProgressScope' local LrTasks = import 'LrTasks' LrTasks.startAsyncTask (function() local catalog = LrApplication.activeCatalog() local trenner = "\n" local datei = (LrPathUtils.child(LrPathUtils.getStandardFilePath('documents'), '\\Lightroom\\Lightroom-Input.txt')) if datei == nil then LrDialogs.message ("abgebrochen") else catalog:withWriteAccessDo( "Sammlung anlegen und leeren", function( context ) -- Sammlungsname aus Dateinamen ohne datei und Typ erzeugen local s1, s2, s3 = string.match(datei, "(.-)([^\\]-([^%.]+))$") -- local sammlungsname = string.sub(s2, 1, string.len(s2) - string.len(s3) -1) local sammlungsname = os.date("%d-%m-%Y %R") --- neue Sammlung anlegen sammlung = catalog:createCollection(sammlungsname, nil, true) sammlung:removeAllPhotos() end) -- end WriteAccess catalog:withWriteAccessDo( "Fotos zur Sammlung hinzufügen", function( context ) fortschritt = LrProgressScope ({title = "Bilder in die Sammlung kopieren", caption = "Bilder in die Sammlung kopieren" }) local zeilen = split_text(trenner, LrFileUtils.readFile(datei)) PhotoCount = 0 ProcCount = 0 for _, zeile in ipairs(zeilen) do PhotoCount=PhotoCount+1 end --- jetzt wieder eigener Code for _, zeile in ipairs(zeilen) do -- dateiname ohne datei und Typ erzeugen ProcCount = ProcCount + 1 fortschritt:setPortionComplete(ProcCount, PhotoCount) local s1, s2, s3 = string.match(zeile, "(.-)([^\\]-([^%.]+))$") --- local s1, s2, s3 = string.match(zeile, "(.+-.+\\)(.*\.(.+))$") local dateiname = string.sub(s2, 1, string.len(s2) - string.len(s3) -1) local pfadname = string.gsub( s1,"C:\\DSLR\\DSLR-RAW", "" ) local pfadname = string.gsub( pfadname, "\\", " " ) --- LrDialogs.message (pfadname, dateiname) fortschritt:setCaption(dateiname) if string.len(zeile) > 1 then sammlung:addPhotos(catalog:findPhotos { ascending = true, searchDesc = { { criteria = "folder", operation = "words", value = pfadname, }, { criteria = "filename", operation = "beginsWith", value = s2, }, { criteria = "filename", operation = "endsWith", value = s3, }, combine = "intersect", } } ) end --- if string.len end -- for zeile fortschritt:done() end) -- end WriteAccess end end) -- Ende von startAsyncTask Link zum Beitrag Auf anderen Seiten teilen More sharing options...
Lufthummel Geschrieben 26. Januar 2022 Share #4 Geschrieben 26. Januar 2022 (bearbeitet) @DSLRUserMeinst du diesen Zähler? Bin mir nicht sicher ob der sich während des 'catalog:withWriteAccess' updatet. In der Doku steht dass erst nach Ende des Zugriffs die Informationen aus der Datenbank abgerufen werden können. Du siehst die Collection weil du den ersten Zugriff mit dem Anlegen der Collection abschliesst. Im zweiten Zugriff geht der Zähler dann nach Abschluss der Aktion (end write access) auf den Endwert. Theoretisch könntest den Write Access für jedes einzelne Bild machen - würde ich aber nicht empfehlen, damit handelst du dir dann Probleme mit dem Fortschrittsbalken ein. Hallo, lieber Besucher! Als Forumsmitglied (kostet nix) würdest du hier ein Bild sehen… Einfach hier registrieren – Wir freuen uns immer über neue Mitglieder! bearbeitet 26. Januar 2022 von Lufthummel Link zum Beitrag Auf anderen Seiten teilen More sharing options...
DSLRUser Geschrieben 26. Januar 2022 Autor Share #5 Geschrieben 26. Januar 2022 vor 21 Minuten schrieb Lufthummel: Meinst du diesen Zähler? Ja genau. Und ja in der Doku fand ich jetzt auch nichts womit das irgendwie "immer/ direkt" zusammenhängt, daher war ich etwas verwirrt Link zum Beitrag Auf anderen Seiten teilen More sharing options...
Lufthummel Geschrieben 26. Januar 2022 Share #6 Geschrieben 26. Januar 2022 vor 2 Stunden schrieb DSLRUser: Doku Die Doku ist schon nicht schlecht aber der Teufel steckt im Detail. Ich würde mir den Aufwand für die Kosmetik sparen. Du kannst ja am Ende noch einen Dialog anzeigen mit Prozess-Details. Link zum Beitrag Auf anderen Seiten teilen More sharing options...
DSLRUser Geschrieben 26. Januar 2022 Autor Share #7 Geschrieben 26. Januar 2022 Werbung (verschwindet nach Registrierung) vor 3 Stunden schrieb Lufthummel: Du kannst ja am Ende noch einen Dialog anzeigen mit Prozess-Details. Nee, es tut schon was es soll und Vorschrittbalken inkl. Anzeige der Dateiname habe ich. Es wäre eben vielleicht noch "schöner" mit dem Zähler wenn es schnell und einfach ginge. Link zum Beitrag Auf anderen Seiten teilen More sharing options...
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden