updated books.pl to have variables for file names; changed the js variable names; updated index.html to match changes

This commit is contained in:
Jacob Haddon 2024-03-17 19:57:37 -04:00
parent ccde468e88
commit 697aff0b8d
2 changed files with 42 additions and 23 deletions

View File

@ -5,8 +5,8 @@ use 5.010;
use strict;
use warnings;
use File::Slurp; # https://metacpan.org/pod/File::Slurp
use JSON;
use Time::Piece;
use JSON; # https://metacpan.org/pod/JSON
use Time::Piece; # https://perldoc.perl.org/Time::Piece
use DateTime;
@ -19,15 +19,24 @@ use DateTime;
# splitting them up into "pages" for easier display
#
# license GPLv3.0 https://www.gnu.org/licenses/gpl-3.0.en.html
# Code repository:
#
# Code repository: https://code.jacobhaddon.com/jake/dbpc
# Written by Jacob Haddon https://jacobhaddon.com
#
# This uses File::Slurp - https://metacpan.org/pod/File::Slurp
# This uses
# * File::Slurp - https://metacpan.org/pod/File::Slurp
# * JSON - https://metacpan.org/pod/JSON
#
# Texts are from Project Gutenburg - https://www.gutenberg.org/
#
###################################
# While these have json formatting, they are JS files
my $complete_books_js = "complete_books.js";
my $book_pages_js = "book_pages2.js";
# number of lines in a page
my $number_of_lines = 31;
my $json = new JSON;
# my $date = localtime->strftime('%Y-%m-%d');
@ -38,19 +47,22 @@ my @books = (
title => "Wuthering Heights",
author => "Emily Bronte",
url => "https://www.gutenberg.org/ebooks/768",
file => "books/wutheringheights.txt"
file => "books/wutheringheights.txt",
chapter_marker => "CHAPTER"
},
{
title => "Jane Eyre",
author => "Charlotte Bronte",
url => "https://www.gutenberg.org/ebooks/1260",
file => "books/janeeyre.txt"
file => "books/janeeyre.txt",
chapter_marker => "CHAPTER"
},
{
title => "Agnes Grey",
author => "Anne Bronte",
url => "https://www.gutenberg.org/ebooks/767",
file => "books/agnesgrey.txt"
file => "books/agnesgrey.txt",
chapter_marker => "CHAPTER"
}
); # books hash
@ -69,12 +81,11 @@ foreach (@books) {
# read in a whole file into a scalar
my $book = read_file($books[$k]{'file'});
my @chapters = split('\nCHAPTER', $book);
my @chapters = split('\n' . $books[$k]{'chapter_marker'}, $book);
my $test = @chapters;
# print($test);
# number of lines in a page
my $number_of_lines = 31;
my $j = 0;
my @page_text;
@ -141,10 +152,10 @@ $books[$k]{'pages'} = \@page_text;
# my $json_text = encode_json(\%books);
my $json_text = $json->pretty->encode( \@books );
my $js_text = "let book = " . $json_text;
my $js_text = "let books = " . $json_text;
# write the file
open(FH, '>', "test4.js") or die $!;
open(FH, '>', $complete_books_js) or die $!;
print FH $js_text;
close(FH);
@ -182,12 +193,18 @@ for ( my $l; $l < 365; $l++){
# my $new_test = $dt->add(days => 1)->ymd;
# print $new_test . "\n";
$page_list2{$dt->add(days => 1)->ymd} = {
# $page_list2{$dt->add(days => 1)->ymd} = {
# title => $books[$book_list]{'title'},
# author => $books[$book_list]{'author'},
# page => $page_rand
# };
$page_list2{$dt->ymd} = {
title => $books[$book_list]{'title'},
author => $books[$book_list]{'author'},
page => $page_rand
};
$dt->add(days => 1);
# print $dt->add(days => 1)->ymd;
# my $new_date = $dt->add(days => $l);
@ -207,10 +224,10 @@ for ( my $l; $l < 365; $l++){
# my $json_text = encode_json(\%books);
my $json_text2 = $json->pretty->encode( \%page_list2 );
my $js_text2 = "let book = " . $json_text2;
my $js_text2 = "let book_pages = " . $json_text2;
# write the file
open(FH, '>', "test5.js") or die $!;
open(FH, '>', $book_pages_js) or die $!;
print FH $js_text2;
close(FH);

View File

@ -36,7 +36,7 @@ this file uses:
<script src="jquery-3.7.1.min.js"></script>
<script src="html2canvas.min.js"></script>
<script src="FileSaver.min.js"></script>
<script src="test5.js"></script>
<script src="book_pages.js"></script>
<script>
@ -69,11 +69,11 @@ $(document).ready(function(){
// console.log(book[todayString]);
// Make the header with the book info
$("#poem_header").html("<h2>" + book[todayString].title + "</h2>\n\n<h3>" + book[todayString].author + "</h3>\n");
$("#poem_header").html("<h2>" + book_pages[todayString].title + "</h2>\n\n<h3>" + book_pages[todayString].author + "</h3>\n");
// Add in the page, change the underscores to italics
// $("#spina").html(book.pages[14][6].replace(/(_([a-z0-9]+)_)/ig, "<i>$2</i>"));
$("#spina").html(book[todayString].page.replace(/(_([a-z0-9]+)_)/ig, "<i>$2</i>"));
$("#spina").html(book_pages[todayString].page.replace(/(_([a-z0-9]+)_)/ig, "<i>$2</i>"));
// format the text with span tags
$("#spina p").each(function( index ) {
@ -123,7 +123,7 @@ $(document).ready(function(){
todayFormatted = today.toString();
// add the byline
$("#byline").html("<p>blackout poem inspired by " + book[todayString].title + " by " + book[todayString].author + "</p><p>composed on: " + todayFormatted) + "</p>";
$("#byline").html("<p>blackout poem inspired by " + book_pages[todayString].title + " by " + book_pages[todayString].author + "</p><p>composed on: " + todayFormatted) + "</p>";
// toggle the text on the button
$(this).text(function(i, text) {
@ -158,7 +158,7 @@ $(document).ready(function(){
todayFormatted = today.toString();
// add the meta to the copyed text
var poem_meta = "#dailyBlackoutPoetryChallenge\n\n" + $("#poem_list").text() + "\n\n" + book[todayString].title + " - " + todayFormatted;
var poem_meta = "#dailyBlackoutPoetryChallenge\n\n" + $("#poem_list").text() + "\n\n" + book_pages[todayString].title + " - " + todayFormatted;
navigator.clipboard.writeText(poem_meta);
}); // copy text w/meta
@ -187,7 +187,9 @@ $(document).ready(function(){
<header>
<h1>Daily <span class="purple">Blackout</span> Poetry Challenge</h1>
<p>Your daily blackout poetry challenge! Make a poem, save the poem, share the poem!</p><p>Tag the poem: #dailyBlackoutPoetryChallenge</p>
<p>Your daily blackout poetry challenge! Make a poem, save the poem, share the poem!</p>
<p>Tag the poem: #dailyBlackoutPoetryChallenge</p>
<p>Click on a word to select it, click on it again to unselect. When youve found your poem hit Blackout! Get a screen shot and copy the words below!</p>
</header>