#!/usr/bin/perl

use strict;
use warnings;

use EBook::MOBI;
use GD::Simple;

my $someText = '';
for (1..500) {
    $someText .= 'Hello World! This is just a test. '
}

my $pod = '';
my @image_paths = ();
my $img_path = '';

for (my $i=0;$i<50;$i++) {
    $img_path = "./examples/img/img_$i.jpg";
    push (@image_paths, $img_path);

    print "creating $img_path\n";

    $pod .= "=head1 Title $i\n\nThis picture should have the same number as the title...\n\n";
    $pod .= "=for image $img_path Pic number $i\n\n$someText\n\n";

    my $im = GD::Simple->new(200, 80);
    $im->fgcolor('black');
    $im->bgcolor('yellow');
    $im->moveTo(20,40);
    $im->font('Times:italic');
    $im->fontsize(18);
    $im->string("Nr. $i"); 

    open(my $PICTURE, ">$img_path") or die("Cannot open file for writing");
    binmode $PICTURE;
    print $PICTURE $im->jpeg;
    close $PICTURE;
}

$pod .= "=cut\n";

my $book = EBook::MOBI->new();

# let's define a debug sub witch will be used by all modules
sub debug {
    my ($package, $filename, $line) = caller;
    print "$package\t$_[0]\n";
}

# pass the reference of the sub to our book
$book->debug_on(\&debug);

# fill the book with meta info
$book->set_filename('BigSimple.mobi');
$book->set_title   ('A Test: BigSimple');
$book->set_author  ('Boris');
$book->set_encoding(':encoding(UTF-8)');

# fill the book with content
$book->add_mhtml_content(" <h1>A Test Titlepage</h1><p>Very simple...</p>");
$book->add_pagebreak();
$book->add_toc_once();
$book->add_pagebreak();
$book->add_content(data => $pod, pagemode => 1);

$book->make();
#$book->print_mhtml();
$book->save();

print "\n\neBook done... cleaning up...\n\n";

foreach my $pic (@image_paths) {
    print "deleting $pic\n";
    unlink $pic;
}