[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[EP-tech] Re: Datestamp of documents?



Hiya,

Try to get the File objects (if you're on 3.3+) and get the mtime field 
value (i think that's its lastmod)?

Alternatively, "stat" the file on-disk?

Seb.

On 22/07/14 13:15, Florian He? wrote:
> Hi,
>
> the code in cfg.d/eprint_fields_automatic.pl is executed on commit of an
> eprint. We are obliged to create an archive file of documents of a
> multi-doc eprint. I assume that the tarball would be rewritten every
> once in a while (e.g. regeneration of thumbnails), which would take a
> long time for large files. Hence I want to tar them only when either of
> the two following conditions are true:
>
>     * the eprint is put in the live area for the first time
>     * documents have been changed (i.e. fresh upload)
>
> My function is_archive_needed(), provided in a custom module I `use` in
> eprint_fields_automatic.pl reads like:
>
> use List::Util qw(
> sub is_archive_needed {
>       my ($eprint, @documents) = @_;
>
>       return 0 if @documents < 2;
>       return 1 if $eprint->value("datestamp") =~ m{ \A [ 0:-] \z }xms;
>
>       my $latestDate_doc_commit
>           = maxstr map { $_->value("lastmod") } @documents;
>
>       return $eprint->value("lastmod") < $latestDate_doc_commit;
> }
>
> My problem is that there is no lastmod date for document records, there
> is one for the associated eprint only. So is there any other way to test
> the second condition or am I to define a custom lastmod field for that
> dataset?
>
>
>
> Kind regards
> Florian
>