From 4bdefbb5e93cce228c73f77d1eae3ca7012cfec2 Mon Sep 17 00:00:00 2001 From: mb Date: Thu, 26 Jan 2023 18:11:40 +0100 Subject: [PATCH] pushing the scripts to generate bricolages --- download-materials.sh | 35 ++++++++++ generate-bricolages.py | 145 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 180 insertions(+) create mode 100644 download-materials.sh create mode 100644 generate-bricolages.py diff --git a/download-materials.sh b/download-materials.sh new file mode 100644 index 0000000..861dd6c --- /dev/null +++ b/download-materials.sh @@ -0,0 +1,35 @@ +USERNAME=mb +KEY=~/.ssh/varia.pub + +mkdir materials +mkdir materials/hold-and-release/ +mkdir materials/publishing-partyline/ +mkdir materials/plaintext-protocols/ +mkdir materials/push-to-talk/ +mkdir materials/colonial-infrastructures/ + +scp -r -P 12345 -i $KEY $USERNAME@vvvvvvaria.org:/var/www/archive/2022-12-3-4-Colonial_Infrastructures ./materials/colonial-infrastructures/ +scp -r -P 12345 -i $KEY $USERNAME@vvvvvvaria.org:/var/www/archive/2022-12-08-Push-To-Talk-Partyline ./materials/push-to-talk/ +scp -r -P 12345 -i $KEY $USERNAME@vvvvvvaria.org:/var/www/archive/2022-10-publishing-partyline ./materials/publishing-partyline/ +scp -r -P 12345 -i $KEY $USERNAME@vvvvvvaria.org:/var/www/archive/2022-09-17-16-Plaintext-Protocol-Partyline/ ./materials/plaintext-protocols/ + +scp -r -P 12345 -i $KEY $USERNAME@vvvvvvaria.org:/var/www/logs/x-y/ ./materials/plaintext-protocols/ +scp -r -P 12345 -i $KEY $USERNAME@vvvvvvaria.org:/var/www/logs/hold-and-release/ ./materials/hold-and-release/ +scp -r -P 12345 -i $KEY $USERNAME@vvvvvvaria.org:/var/www/logs/publishing-partyline/ ./materials/publishing-partyline/ + +curl https://pad.vvvvvvaria.org/partylines.hold-and-release/export/html > materials/hold-and-release/pad.html +curl https://pad.vvvvvvaria.org/ppp/export/html > materials/plaintext-protocols/pad.html +curl https://pad.vvvvvvaria.org/partylines.publishing-partyline/export/html > materials/publishing-partyline/pad.html + +scp -p 12345 $USERNAME@vvvvvvaria.org:/var/www/html/plaintext-protocols-partyline.html ./materials/plaintext-protocols/announcement-nl.html +scp -P 12345 -i $KEY $USERNAME@vvvvvvaria.org:/var/www/html/hold-and-release.html ./materials/hold-and-release/announcement-nl.html +scp -P 12345 -i $KEY $USERNAME@vvvvvvaria.org:/var/www/html/publishing-partyline.html ./materials/publishing-partyline/announcement-nl.html +scp -P 12345 -i $KEY $USERNAME@vvvvvvaria.org:/var/www/html/push-to-talk-partyline.html ./materials/push-to-talk/announcement-nl.html +scp -P 12345 -i $KEY $USERNAME@vvvvvvaria.org:/var/www/html/colonial-infrastructures.html ./materials/colonial-infrastructures/announcement-nl.html + +scp -P 12345 -i $KEY $USERNAME@vvvvvvaria.org:/var/www/html/en/plaintext-protocols-partyline.html ./materials/plaintext-protocols/announcement-en.html +scp -P 12345 -i $KEY $USERNAME@vvvvvvaria.org:/var/www/html/en/hold-and-release.html ./materials/hold-and-release/announcement-en.html +scp -P 12345 -i $KEY $USERNAME@vvvvvvaria.org:/var/www/html/en/publishing-partyline.html ./materials/publishing-partyline/announcement-en.html +scp -P 12345 -i $KEY $USERNAME@vvvvvvaria.org:/var/www/html/en/push-to-talk-partyline.html ./materials/push-to-talk/announcement-en.html +scp -P 12345 -i $KEY $USERNAME@vvvvvvaria.org:/var/www/html/en/colonial-infrastructures.html ./materials/colonial-infrastructures/announcement-en.html + diff --git a/generate-bricolages.py b/generate-bricolages.py new file mode 100644 index 0000000..d8e236e --- /dev/null +++ b/generate-bricolages.py @@ -0,0 +1,145 @@ +import os +from glob import glob +from pprint import pprint +from random import choice +import pypandoc +import base64 + +# -------------------------------------------------- +# Parameters + +# number of items on one page +nr_of_items = 10 + +# number of different pages it will generate for each partyline +nr_of_versions = 10 + +# you can download the materials with download-materials.sh +materials_folder = "materials" + +# this is the folder where the bricolages will be saved to +output_folder = "generated-bricolages" + +# for uploading the pages with images somehwere +encode_imgs_as_base64 = True + +# -------------------------------------------------- +# First make an index of all the files + +index = {} + +dir = f"./{ materials_folder }/*" +folders = glob(dir, recursive=True) + +for folder in folders: + name = folder.replace("./materials/", "") + dir = folder + "/**" + materials = glob(dir, recursive=True) + index[name] = materials + +# pprint(index) + +# --------------------------------------------------- +# Functions + +def parsePad(pad): + """Parses pad into a list of

's""" + html = open(pad, "r").read() + paragraphs = html.split("
") + paragraphs = [p for p in paragraphs if p] + paragraphs = [p for p in paragraphs if not "body>" in p] + paragraphs = [p for p in paragraphs if not "html>" in p] + return paragraphs + +def parseAnnouncement(page): + """Parses an announcement page from the website into a list of

's""" + html = open(page, "r").read() + paragraphs = html.split("\n") + paragraphs = [p for p in paragraphs if p] + paragraphs = [p for p in paragraphs if "

" in p] + paragraphs = [p for p in paragraphs if not "body>" in p] + paragraphs = [p for p in paragraphs if not "html>" in p] + paragraphs = [p.replace("\t", "") for p in paragraphs] + return paragraphs + +def parseAllItems(partyline): + """Makes a list of all items of one partyline""" + all_items = [] + + for item in index[partyline]: + el = "" + for ext in ["jpg","png","jpeg"]: + if item.endswith(ext): + if encode_imgs_as_base64 == True: + img = open(item, "rb").read() + img_in_base64 = base64.b64encode(img) + el = f"" + else: + el = f"" + all_items.append(el) + if "pad.html" in item: + paragraphs = parsePad(item) + for paragraph in paragraphs: + # do not wrap