revbank-inflatinator/README.md
2025-03-23 13:59:30 +01:00

86 lines
2.5 KiB
Markdown

RevBank Inflatinator
====================
Dit programma werkt de productlijst van [RevBank](https://github.com/revspace/revbank/) bij om de
verkoopprijzen actueel te houden op basis van de inkoopprijzen.
Er zijn scrapers voor deze supermarkten:
* Albert Heijn
* Sligro
## Installatie
Doe een git clone en zorg dat het om de zo veel tijd draait met bijvoorbeeld een Systemd Timer:
```
# /etc/systemd/system/revbank-inflatinator.service
[Unit]
Description=Update product prices in Revbank
[Service]
Type=oneshot
ExecStart=/usr/bin/python3 /opt/revbank-inflatinator/inflatinator/ /home/bank/revbank.products
EnvironmentFile=/etc/revbank-inflatinator/env.conf
User=bank
Group=bank
```
```
# /etc/systemd/system/revbank-inflatinator.timer
[Unit]
Description=Run revbank-inflatinator weekly
[Timer]
OnCalendar=weekly
Persistent=true
[Install]
WantedBy=timers.target
```
## Configuratie
Inflatinator vereist minimaal versie 6.0 van RevBank. Deze versie introduceert een metadataformaat
waar Inflatinator gebruik van maakt.
Het is vereist om de productbeschrijving te quoten. Metadata komt aan het einde van een regel en is
in `#<key>=<value>` formaat, waar de `=<value>` optioneel is.
Inflatinator zal regels herschrijven met nieuwe prijzen, beschrijvingen en eventueel nieuwe
barcodes. Aliassen en barcodes die je zelf toegevoegd blijven staan.
### Albert Heijn
Zie hier onder voorbeelden van de metadata die toegevoegd moet worden per product:
```
8711327538481 0.80 "Ola Liuk" #ah
8712100340666 0.45 "Ola Raket" #ah
```
### Sligro
Het verkrijgen van de prijzen van de Sligro vereist een account. Je configureert deze met
environment variables:
```
SLIGRO_USERNAME=<email>
SLIGRO_PASSWORD=<wachtwoord>
```
Sligro producten zien er zo uit:
```
5000112659184,5000112658873 0.95 "Coca-Cola Cola Zero Sugar (33 cl)" #sligro
4011100240216,40111216 0.80 "Bounty Kokos Melk Chocolade Singles (57 gram)" #sligro
```
Alleen een `#sligro` aan het einde van de regel is voldoende, Inflatinator gebruikt de **eerste**
barcode om het product te vinden op de website.
Verpakkingen van de Sligro hebben over het algemeen producten hier in zitten die een andere
barcode hebben dan de verpakking. Inflatinator schrijft beide barcodes naar dezelfde productregel.
Zo kunnen producten ook afgerekend worden door de doos te scannen.
## Q&A
* Q: Wat nou als een product in de aanbieding is en het is eerder voor meer ingekocht? Maak ik dan
verlies?
* A: Nee. Inflatinator gebruikt altijd de oorspronkelijke prijs, ookal is er een lopende aanbieding.