Updated the proostekrant to work properly again.
This commit is contained in:
Executable
+84
@@ -0,0 +1,84 @@
|
||||
#!/bin/bash
|
||||
# Simuleert 20 familiezendingen via de echte website-flow (paszin -> formulier),
|
||||
# publiceert ze als redactie en drukt de Herfst-editie.
|
||||
set -u
|
||||
BASE=http://localhost:8080
|
||||
PASS="ProostenKrant2024!"
|
||||
JAR=/tmp/sim.cookies
|
||||
IMG1="/home/douwe/Projects/proostenkrant.net/app/public/images/articles/930c7e6f_ScreenshotFrom20260806141156.png"
|
||||
IMG2="/home/douwe/Projects/proostenkrant.net/app/public/images/articles/3b901c4e_ScreenshotFrom20260212232013.png"
|
||||
|
||||
get_token() {
|
||||
curl -s -b "$JAR" -c "$JAR" "$BASE$1" -o "$2"
|
||||
TOKEN=$(grep -o 'name="__RequestVerificationToken"[^>]*value="[^"]*"' "$2" | head -1 | sed 's/.*value="//;s/"$//')
|
||||
HANDLER=$(grep -o 'name="_handler" value="[^"]*"' "$2" | head -1 | sed 's/.*value="//;s/"$//')
|
||||
}
|
||||
|
||||
echo "=== Opruimen: testartikelen van eerder ==="
|
||||
docker exec proostenkrant-mysql mysql -u proostenkrant -pproostenkrant proostenkrant -e "TRUNCATE TABLE articles;" 2>/dev/null
|
||||
|
||||
echo "=== 20 artikelen indienen via /indienen ==="
|
||||
n=0
|
||||
declare -A UID_MAP
|
||||
while IFS=$'\t' read -r naam id; do
|
||||
UID_MAP["$naam"]="$id"
|
||||
done < <(docker exec proostenkrant-mysql mysql -N -u proostenkrant -pproostenkrant proostenkrant -e "SELECT display_name, id FROM users;" 2>/dev/null | tr -d ' ')
|
||||
id_van() { echo "${UID_MAP[$1]:-0}"; }
|
||||
|
||||
while IFS='|' read -r TITEL TEKST SCHRIJVER DEELNEMERS DATUM; do
|
||||
[ -z "$TITEL" ] && continue
|
||||
n=$((n+1))
|
||||
# paszin-flow per artikel (cookie wordt na elke indiening gewist)
|
||||
rm -f "$JAR"
|
||||
get_token "/indienen" /tmp/sim_pas.html
|
||||
curl -s -b "$JAR" -c "$JAR" -X POST "$BASE/indienen" \
|
||||
--data-urlencode "_handler=$HANDLER" \
|
||||
--data-urlencode "Input.Paszin=$PASS" \
|
||||
--data-urlencode "__RequestVerificationToken=$TOKEN" \
|
||||
-o /dev/null
|
||||
get_token "/indienen/formulier" /tmp/sim_form.html
|
||||
# wissel de twee dummy-afbeeldingen af
|
||||
if [ $((n % 2)) -eq 1 ]; then IMG="$IMG1"; else IMG="$IMG2"; fi
|
||||
IFS=',' read -ra NAMEN <<< "$DEELNEMERS"
|
||||
ARGS=()
|
||||
for d in "${NAMEN[@]}"; do ARGS+=(-F "Participants=$(id_van "$d")"); done
|
||||
code=$(curl -s -b "$JAR" -X POST "$BASE/indienen/formulier" \
|
||||
-F "_handler=$HANDLER" \
|
||||
-F "Input.Title=$TITEL" \
|
||||
-F "Input.Content=$TEKST" \
|
||||
-F "Input.WriterId=$(id_van "$SCHRIJVER")" \
|
||||
-F "Input.EventDate=$DATUM" \
|
||||
"${ARGS[@]}" \
|
||||
-F "Afbeelding=@$IMG" \
|
||||
-F "__RequestVerificationToken=$TOKEN" \
|
||||
-o /dev/null -w "%{http_code}")
|
||||
echo "artikel $n: $code - $TITEL"
|
||||
done < /home/douwe/Projects/proostenkrant.net/scripts/demo-articles.tsv
|
||||
|
||||
echo "=== Inloggen als redactie en publiceren ==="
|
||||
rm -f "$JAR"
|
||||
get_token "/login" /tmp/sim_login.html
|
||||
curl -s -b "$JAR" -c "$JAR" -X POST "$BASE/login" \
|
||||
--data-urlencode "_handler=$HANDLER" \
|
||||
--data-urlencode "Input.Username=douwe" \
|
||||
--data-urlencode "Input.Password=$PASS" \
|
||||
--data-urlencode "__RequestVerificationToken=$TOKEN" \
|
||||
-o /dev/null
|
||||
|
||||
IDS=$(docker exec proostenkrant-mysql mysql -N -u proostenkrant -pproostenkrant proostenkrant -e "SELECT id FROM articles WHERE status='draft' ORDER BY id;" 2>/dev/null)
|
||||
for id in $IDS; do
|
||||
get_token "/artikelen/$id" /tmp/sim_art.html
|
||||
code=$(curl -s -b "$JAR" -X POST "$BASE/artikelen/$id" \
|
||||
--data-urlencode "_handler=$HANDLER" \
|
||||
--data-urlencode "__RequestVerificationToken=$TOKEN" \
|
||||
-o /dev/null -w "%{http_code}")
|
||||
echo "publiceer $id: $code"
|
||||
done
|
||||
|
||||
echo "=== Krant drukken (Herfst) ==="
|
||||
get_token "/seizoenen" /tmp/sim_seiz.html
|
||||
curl -s -b "$JAR" -X POST "$BASE/api/genereer-pdf" \
|
||||
-F "SeizoenId=3" \
|
||||
-F "__RequestVerificationToken=$TOKEN" \
|
||||
-o /dev/null -w "drukken: %{http_code} -> %{redirect_url}\n" --max-time 240
|
||||
ls -la /home/douwe/Projects/proostenkrant.net/app/storage/latex/*.pdf
|
||||
Reference in New Issue
Block a user