Skip to content

TerrorSource/MPWatcher

Repository files navigation

MPWatcher – Marktplaats Advertentie Watcher

MPWatcher is een Docker-based webapplicatie waarmee je automatisch Marktplaats-advertenties monitort op basis van zoekwoorden en direct via Telegram meldingen ontvangt bij nieuwe advertenties.

✅ Webinterface
✅ Telegram notificaties
✅ Per zoekwoord instelbaar
✅ Docker / Portainer / NAS-proof
✅ Persistente configuratie via volume


🚀 Functionaliteit

  • Monitor meerdere zoekwoorden op Marktplaats.nl of 2dehands.be
  • Alleen nieuwe advertenties worden gemeld
  • Telegram berichten bevatten:
    • Titel
    • Prijs
    • Afbeelding
    • Button met link naar advertentie
  • Instelbaar:
    • Zoekinterval
    • Min. / max. prijs per zoekwoord
    • Resultaatlimiet per zoekopdracht
    • Postcode en straal
    • Nachtmodus (slaapstand)
    • Blocklist voor verkopers
  • Handmatige zoekactie mogelijk via de GUI

📸 Screenshot

MPWatcher Dashboard


🐳 Installatie (Docker)

MPWatcher is bedoeld om te draaien als Docker container en werkt uitstekend met Portainer en andere Docker-omgevingen.

De container gebruikt één volume voor persistente data:

  • /config – instellingen, zoekwoorden en resultaten

Na het starten is de webinterface bereikbaar via de ingestelde poort.

services:
  mpwatcher:
    image: ghcr.io/terrorsource/mpwatcher:latest
    container_name: mpwatcher
    restart: unless-stopped
    network_mode: bridge
    environment:
      - TZ=Europe/Amsterdam
    ports:
      - "8000:8000"
    volumes:
      - /path/to/mpwatcher-config:/config

ℹ️ Het image staat op GitHub Container Registry. Het oude Docker Hub-image (makooy/mpwatchter) wordt niet meer bijgewerkt — stap over op ghcr.io/terrorsource/mpwatcher. Naast :latest is per release ook een versie-tag beschikbaar (bijv. :v18).

De container heeft een ingebouwde healthcheck op /health die ook de interne scheduler bewaakt: blijft die hangen, dan wordt de container unhealthy gemeld en kan Docker/Portainer hem automatisch herstarten.

Goed om te weten:

  • De container draait als non-root gebruiker (uid 1000). Zorg dat de host-map die je aan /config koppelt schrijfbaar is voor uid 1000.
  • Instellingen en zoekwoorden staan in results.db (SQLite). Bestaande settings.json / keywords.json uit oudere versies worden bij de eerste start automatisch geïmporteerd en hernoemd naar *.imported.
  • Per zoekwoord worden maximaal 500 resultaten bewaard; oudere worden automatisch opgeruimd.
  • Dezelfde advertentie die op meerdere zoekwoorden matcht wordt maar één keer via Telegram gemeld.

⚙️ Configuratie via Web-GUI

Ga in de webinterface naar Configuratie.

🔁 Zoekinstellingen

  • Marketplace
    Marktplaats.nl of 2dehands.be
  • Standaard interval (minuten)
    Wordt gebruikt voor nieuwe zoekwoorden
  • Limiet per zoekopdracht
    Maximaal aantal advertenties per run (1–20)

🌙 Slaapstand (nachtmodus)

  • Minder vaak zoeken tijdens de nacht
  • Standaard actief tussen 23:00 – 07:00
  • Maximaal 1 zoekactie per uur tijdens slaapstand

📍 Locatie-instellingen

  • Postcode (bijv. 1234AB)
  • Straal
    • 3, 5, 10, 15, 25, 50, 75 km
    • of alle afstanden

📲 Telegram configuratie

Vul de Telegram gegevens in onder Configuratie → Telegram:

  • Telegram Bot Token
  • Telegram Chat ID

Gebruik de knop “Test Telegram” om te controleren of alles werkt.


🚫 Blocklist verkopers

Onder Configuratie → Blocklist verkopers kun je verkopers uitsluiten (één naam per regel). Advertenties van deze verkopers worden genegeerd en dus ook niet via Telegram gemeld.

Op de resultatenpagina van een zoekwoord staat per advertentie een Blokkeer-knop om de verkoper direct aan de blocklist toe te voegen (de blocklist wordt daarbij automatisch ingeschakeld).


🔍 Zoekwoorden beheren

Via het Overzicht in de GUI:

  • Voeg nieuwe zoekwoorden toe
  • Stel per zoekwoord in:
    • Min. prijs
    • Max. prijs
    • Limiet per zoekopdracht
  • Beschikbare acties:
    • Handmatig zoeken
    • Laatste resultaten bekijken
    • Resultaten resetten
    • Zoekwoord verwijderen

✅ Alleen nieuwe advertenties worden doorgestuurd
✅ Duplicaten worden automatisch gefilterd

ℹ️ Stel je een min- of maxprijs in, dan vallen advertenties zonder bruikbare prijs (zoals Bieden of Gratis) buiten de resultaten.


🧪 Handmatig zoeken

  • Start direct een zoekactie via de GUI
  • Resultaten verschijnen:
    • in de webinterface
    • optioneel direct via Telegram

Handig om nieuwe instellingen te testen.


🛠️ Ontwikkelen & tests

pip install -r requirements-dev.txt
pytest

Lokaal draaien zonder Docker kan met python app.py; zet eventueel MPWATCHER_CONFIG_DIR naar een lokale map (standaard /config).

About

Marktplaats Watchter in Docker

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors