Hallo zusammen,

ich arbeite derzeit an einer Extension, die mittels Cronjob automatisch Beiträge aus sozialen Netzwerken in ein bestimmtes Newsarchiv importieren kann. Das klappt alles bisher ganz wunderbar - jedoch füge ich derzeit als Feature hinzu, dass ebenfalls Bilder mit importiert werden können. Diese werden von dem Cronjob automatisch in einen Ordner des Dateisystems geschrieben.

Da die Bilder mit den Artikeln via ID verknüpft werden sollen, muss am Ende des Bildimports einmal das Dateisystem syncronisiert werden. Provisorisch habe ich das derzeit mit der Klasse \Database\Updater und der daraus entstammenden Funktion scanUploadFolder gelöst, jedoch funktioniert dies nur bei einem Import eines zuvor noch nicht indizierten Ordners. Wenn bereits Dateien in der Datenbank des Dateisystems hinterlegt sind erhalte ich folgenden Fehler:

Code:
Fatal error: Uncaught exception Exception with message Query error: Duplicate entry 'files/socialAggregator/12546_587687937924857_1535943301_n.png' for key 'path' (INSERT INTO tl_files (pid, tstamp, name, type, path, extension, hash) VALUES (0, 1366615081, '12546_587687937924857_1535943301_n.png', 'file', 'files/socialAggregator/12546_587687937924857_1535943301_n.png', 'png', '7d04abf847e485386a149114afc091ce')) thrown in system/modules/core/library/Contao/Database/Statement.php on line 317
Bei der Durchschau der Funktion scanUploadFolder fällt auf, dass hier keine Abfrage vorhanden ist, die prüft ob Datensätze bereits in der DB existieren. Gibt es eine alternative Funktion, die dies beinhaltet, oder müsste ich an dieser Stelle das Feature selber nachbauen?

Vielen Dank und viele Grüße,
Johannes