Remove Duplicate URLs
Summary: Keeps only the latest record for each URL.
Requires: EagleFiler
Install Location: ~/Library/Scripts/Applications/EagleFiler/
Last Modified: 2019-10-02
Description
This script scans the selected records for multiple files downloaded from the same URL. For each URL, it keeps the newest file and moves the older ones to the trash.
Installation Instructions · Download in Compiled Format · Download in Text Format
Script
tell application "EagleFiler"
    set _urls to {}
    set _recordsSeen to {}
    set _records to selected records of browser window 1
    set _trash to trash of document of browser window 1
    repeat with _record in _records
        set _url to _record's source URL
        set _matches to my findMatch(_url, _urls, _recordsSeen)
        if _matches is {} then
            set _urls to {_url} & _urls
            set _recordsSeen to {_record} & _recordsSeen
        else
            set _otherRecord to item 1 of _matches
            if _otherRecord's modification date > _record's modification date then
                set _record's container to _trash
            else
                set _otherRecord's container to _trash
                set _urls to {_url} & _urls
                set _recordsSeen to {_record} & _recordsSeen
            end if
        end if
    end repeat
end tell
on findMatch(_url, _urls, _recordsSeen)
    tell application "EagleFiler"
        if _url is "" then return {}
        if _urls contains _url then
            repeat with i from 1 to length of _urls
                if item i of _urls is _url then
                    return item i of _recordsSeen
                end if
            end repeat
        end if
        return {}
    end tell
end findMatch