#!/usr/bin/perl

use strict;
use warnings;
use utf8;

use XML::LibXML;

use Ernad::Dates;
use Ernad::Erimp;
#use Ernad::Layer;
use Ernad::Yanabino;
use Krichel::File;

## give the impna
my $impna=$ARGV[0] // '';
if(not $impna) {
  print "I don't have an impna parameter\n";
  exit;
}

our $e=Ernad::Erimp->new({'impna'=>$impna});
my $ernad_ns = $e->{'const'}->{'ernad_ns'};
## create an xpath contents
my $xpc = $e->{'x'}->{'xpc'} // die "I need an xpc";

my $q_file = $e->{'dir'}->{'www'}.'queue.html';
my $q_xml = '/tmp/queue.xml';

my $q_doc = XML::LibXML::Document->new('1.0','utf-8');
my $q_ele = $q_doc->createElementNS($ernad_ns,'queue');

my $piles = &Ernad::Yanabino::get_piles();
my $count_papers_in_queue = &Ernad::Yanabino::count_papers_in_queue($piles);
$q_ele->setAttribute('total',$count_papers_in_queue);
$q_ele->setAttribute('today',&Ernad::Dates::today);

## fixme: this should be read from the Layer.pm module
$q_ele->setAttribute('bad','99999');

foreach my $date (reverse sort keys %$piles) {
  my $file=$piles->{$date} // die;
  if(not -f $file) {
    die "I can't open $file.";
  }
  my $doc=&Krichel::File::load($piles->{$date}) // die;
  my $ele=$doc->documentElement() // die;
  my $issuedate_ele=$xpc->find('//e:issuedate',$ele)->[0] or die;
  my $issuedate=$issuedate_ele->textContent;
  my $pretty_issuedate=$issuedate;
  $pretty_issuedate=~s|-|\x{2012}|g;
  print $issuedate_ele->setAttribute('pretty',$pretty_issuedate);
  $q_ele->appendChild($ele);
}
$q_doc->setDocumentElement($q_ele);
my $xslt_file=$e->{'dir'}->{'style'}.'/queue.xslt.xml';
#my $html_doc=Ernad::Common::xslt_transform($q_doc,$xslt_file);
my $html_doc=$e->{'t'}->transform($q_doc,'queue');
my $html_doc_file=$e->{'dir'}->{'web_opt'}.'/queue.html';
$html_doc->toFile($html_doc_file);

exit;
