mirror of
https://github.com/kmein/niveum
synced 2026-03-16 10:11:08 +01:00
package .bin/ scripts as proper nix packages, delete .bin/
Packaged 14 scripts from .bin/ into packages/ with proper dependency declarations (writers.writeDashBin/writeBashBin/writePython3Bin): - 256color → two56color (terminal color chart) - avesta.sed → avesta (Avestan transliteration) - bvg.sh → bvg (Berlin transit disruptions) - unicode → charinfo (Unicode character info) - chunk-pdf → chunk-pdf (split PDFs by page count) - csv2json → csv2json (CSV to JSON converter) - fix-sd.sh → fix-sd (exFAT SD card recovery, improved output handling) - json2csv → json2csv (JSON to CSV converter) - mp3player-write → mp3player-write (audio conversion for MP3 players) - mushakkil.sh → mushakkil (Arabic diacritization) - nix-haddock-index → nix-haddock-index (GHC Haddock index generator) - pdf-ocr.sh → pdf-ocr (OCR PDFs via tesseract) - prospekte.sh → prospekte (German supermarket flyer browser) - readme → readme (GitHub README as man page) All added to overlay and packages output. .bin/ directory removed.
This commit is contained in:
77
packages/prospekte.nix
Normal file
77
packages/prospekte.nix
Normal file
@@ -0,0 +1,77 @@
|
||||
# Browse and view German supermarket flyers (Lidl, Aldi, REWE, Kaufland, Netto)
|
||||
{
|
||||
writers,
|
||||
curl,
|
||||
jq,
|
||||
fzf,
|
||||
zathura,
|
||||
coreutils,
|
||||
htmlq,
|
||||
gnugrep,
|
||||
gnused,
|
||||
lib,
|
||||
}:
|
||||
writers.writeDashBin "prospekte" ''
|
||||
export PATH=${lib.makeBinPath [ curl jq fzf zathura coreutils htmlq gnugrep gnused ]}:$PATH
|
||||
|
||||
lidl() {
|
||||
echo LIDL
|
||||
curl -sSL 'https://endpoints.lidl-flyer.com/v3/region-overview/lidl/de-DE/0.json' \
|
||||
| jq -r '
|
||||
.categories
|
||||
| map(select(.name == "Filial-Angebote") | .subcategories | map(.flyers))
|
||||
| flatten
|
||||
| flatten
|
||||
| .[]
|
||||
| .pdfUrl
|
||||
'
|
||||
}
|
||||
|
||||
aldi_nord() {
|
||||
echo ALDI nord
|
||||
echo 'https://magazine.aldi-nord.de/aldi-nord/aldi-aktuell/GetPDF.ashx'
|
||||
echo 'https://magazine.aldi-nord.de/aldi-nord/aldi-vorschau/GetPDF.ashx'
|
||||
}
|
||||
|
||||
rewe_berlin() {
|
||||
store_id=662366923
|
||||
publisher_id=1062
|
||||
|
||||
echo REWE
|
||||
curl -sSL "https://www.bonialserviceswidget.de/de/stores/$store_id/brochures?storeId=$store_id&publisherId=$publisher_id" | while read -r brochure_id; do
|
||||
curl -sSL "https://www.bonialserviceswidget.de/de/v5/brochureDetails/$brochure_id?publisherId=$publisher_id" | jq -r .pdfUrl
|
||||
done
|
||||
}
|
||||
|
||||
kaufland() {
|
||||
region_code=8920
|
||||
echo KAUFLAND
|
||||
curl -sSL https://filiale.kaufland.de/prospekte.html | htmlq --attribute href '.flyer a' | grep -Eo 'DE_de_KDZ[^/]*' | sed "s/_3000_/_''${region_code}_/" | while read -r flyer_id; do
|
||||
curl -sSL "https://endpoints.leaflets.kaufland.com/v3/$flyer_id/flyer.json?regionCode=$region_code" | jq -r .flyer.pdfUrl
|
||||
done
|
||||
}
|
||||
|
||||
netto_schwarz() {
|
||||
echo 'NETTO (schwarz)'
|
||||
curl -sSL 'https://squid-api.tjek.com/v2/catalogs?dealer_ids=90f2VL&order_by=created' \
|
||||
| jq -r '.[] | .id' \
|
||||
| while read -r flyer_id; do
|
||||
curl -sSL "https://squid-api.tjek.com/v2/catalogs/$flyer_id/download" \
|
||||
| jq -r .pdf_url
|
||||
done
|
||||
}
|
||||
|
||||
dir="$(mktemp -d)"
|
||||
trap 'rm -rf "$dir"' EXIT
|
||||
|
||||
prospekt_url="$( (
|
||||
lidl
|
||||
aldi_nord
|
||||
rewe_berlin
|
||||
kaufland
|
||||
netto_schwarz
|
||||
) | fzf)"
|
||||
|
||||
curl -sSL "$prospekt_url" -o "$dir/prospekt.pdf"
|
||||
zathura "$dir/prospekt.pdf"
|
||||
''
|
||||
Reference in New Issue
Block a user