it is a mess, but it works, makes one file with the books in pages, makes a second with a year's worth of pages at random.

todo: check no repeats, clean up the code.
This commit is contained in:
Jacob Haddon 2024-03-13 21:53:51 -04:00
parent 6f42818518
commit d5361e391e

View File

@ -6,6 +6,9 @@ use strict;
use warnings; use warnings;
use File::Slurp; # https://metacpan.org/pod/File::Slurp use File::Slurp; # https://metacpan.org/pod/File::Slurp
use JSON; use JSON;
use Time::Piece;
use DateTime;
################################### ###################################
# #
@ -26,6 +29,9 @@ use JSON;
################################### ###################################
my $json = new JSON; my $json = new JSON;
# my $date = localtime->strftime('%Y-%m-%d');
# print $date;
my @books = ( my @books = (
{ {
@ -48,13 +54,15 @@ my @books = (
} }
); # books hash ); # books hash
print($books[1]{'file'}); # print($books[1]{'file'});
# print(int(rand($for)));
my $k = 0; my $k = 0;
foreach (@books) { foreach (@books) {
print $books[$k]{'title'}; # print $books[$k]{'title'};
@ -63,7 +71,7 @@ my $book = read_file($books[$k]{'file'});
my @chapters = split('\nCHAPTER', $book); my @chapters = split('\nCHAPTER', $book);
my $test = @chapters; my $test = @chapters;
print($test); # print($test);
# number of lines in a page # number of lines in a page
my $number_of_lines = 31; my $number_of_lines = 31;
@ -141,7 +149,70 @@ print FH $js_text;
close(FH); close(FH);
# make a list of 365 pages
my $for = @books;
my @page_list;
my %page_list2;
my $dt = DateTime->now();
# print $dt->ymd . "\n";
for ( my $l; $l < 365; $l++){
# print $l;
# $page_list[$l] = $l;
my $book_list = int(rand($for));
# print $book_list;
# my %book1 = $books[$book_list];
# print $books[$book_list]{'title'};
my $chapter_list = @{$books[$book_list]{'pages'}};
# print $chapter_list;
my $chapter_select = int(rand($chapter_list));
# print $chapter_select;
my $page_list = @{$books[$book_list]{'pages'}[$chapter_select]};
# print $page_list;
my $page_select = int(rand($page_list));
my $page_rand = $books[$book_list]{'pages'}[$chapter_select][$page_select];
# print $page_rand;
# my $page_select = int(rand($page_list));
$page_list[$l] = {
title => $books[$book_list]{'title'},
author => $books[$book_list]{'author'},
page => $page_rand
};
# my $new_test = $dt->add(days => 1)->ymd;
# print $new_test . "\n";
$page_list2{$dt->add(days => 1)->ymd} = {
title => $books[$book_list]{'title'},
author => $books[$book_list]{'author'},
page => $page_rand
};
# print $dt->add(days => 1)->ymd;
# my $new_date = $dt->add(days => $l);
# print $new_date->ymd;
# for ( my $m; $m < $for; $m++) {
#
#
# } # for m
#
} # for l
# print scalar keys %page_list2;
# print $page_list[55]{'title'};
#
# my $json_text = encode_json(\%books);
my $json_text2 = $json->pretty->encode( \%page_list2 );
my $js_text2 = "let book = " . $json_text2;
# write the file
open(FH, '>', "test5.js") or die $!;
print FH $js_text2;
close(FH);
# $books{'pages'} = \@page_text; # $books{'pages'} = \@page_text;