2.0 KiB
#Laddar ned filer
##url format ex https://sxyprn.com/post/6814cdff5011a.html
#curl -X POST localhost:3000 -H "Content-Type: text/plain" --data 'https://sxyprn.com/post/653e2c6329e1c.html' #["MomPov E233 Malinda - 49 Year Old Horny Divorced Blonde MILF Beauty https://streamvid.net/ozfe24wrw95h #milf #casting #pov #anal - [01:08:17] (29.10.2023) on SexyPorn","https://sxyprn.com/cdn8/c9/22t1338zl607azp5q71zd1s4p6a/DjtVYfJJupZm-lC44cUtgw/1698771257/k615f1vfaardx6lcs07bsab3g6c/x86v5436eb27ck6836209zek16c.vid"]
Change log #!/bin/bash → robust start: #!/usr/bin/env bash, set -Eeuo pipefail, säkert IFS. Bug: idx användes innan base_url fanns (t.ex. i -p/-f-lägen) → nu sätts IDX dynamiskt via URL/host (även för relativa länkar). Mutual exclusivity: Din getopts-sträng tvingade argument på -n/-d och kontrollerade OPTARG mot flaggor (funkar inte). Nu: -n/-d är flaggor utan argument och vi räknar att exakt en av -c|-p|-f används. Låset: Fildeskriptor-baserat flock behålls men paketeras med trap på EXIT/INT/TERM så lås alltid släpps. Indexering: Skapande av katalog/fil för idx görs först när kontexten är känd; en hjälpfunktion plockar host från URL och bygger path. Append sker via separat helper. Curl-hygien: Tidsgränser, retries, --fail-with-body, komprimering och tydlig User-Agent. Downloads sker till .part och flyttas på succé. Dry-run stöds (-n). HTML-extraktion: Din sed|grep|awk-pipeline kvarstår (men noteras som skör). Tips: byt till pup/htmlq om möjligt. Sanering av filnamn: robust sanitize_filename() med truncation (80 tecken) och whitelisting av tecken. Resolver: POST mot localhost:3000 isolerad i resolve_item_link(); regex för ["name","url"] validerar svaret. Utskriftskatalog: Styrs via OUTDIR env var. Skapar mapp vid behov. Konfig: PAGES, SLEEP_BETWEEN_PAGES, LOCAL_RESOLVER_URL via env-variabler. Meddelanden/logg: Konsistent log() med tidsstämpel. Felhantering: die() med tydliga fel och konsekventa exits.