# NOTE: Derived from web_diary_dir/lib/TDS/Collection.pm.
# Changes made here will be lost when autosplit again.
# See AutoSplit.pm.
package TDS::Collection;

#line 330 "web_diary_dir/lib/TDS/Collection.pm (autosplit into web_diary_dir/lib/auto/TDS/Collection/pickup_recent.al)"
sub pickup_recent($$$$$)
{
    my ($self, $year, $month, $day, $num) = @_;
    my $date = new DateTime::Date(year=>$year, month=>$month, day=>$day);
    
    my @files;

    while ($date->year >= $TDS::Status->start_year && # 存在する年
	   ($num <= 0 ||                                    # 最大が指定されていないか
	    (@files < $num))){                         # 指定された数分
	#print STDERR "collect_files\n";
	push(@files, reverse $self->pickup_files($date->year, $date->month, 1, $day));
	$date -= '1M';
	$day = 31;
    }
    # 必要のないファイルの last_modified も見ているので、
    # もう一回調査
    my $lm;
    # 表示数が指定されていなかったら全部
    unless ($num){
	$num = $#files+1;
    }
    # ファイル数より指定表示数が大きかったらファイル数に（小さい方を取る）
    if ($num > $#files+1){
	$num = $#files+1;
    }
    # lm をチェック
    for (@files[0..$num-1]){
	my $the_lm = $_->[4] || 0;
	if ($lm < $the_lm){
	    $lm = $the_lm;
	}
    }
    $self->last_modified($lm);
    # 該当する @files を返す
    # print STDERR "collect_files done\n";
    return @files[0..$num-1];
}

# end of TDS::Collection::pickup_recent
1;
