Skip to main content

Webload

Biblioteka do automatycznego pobierania faktur i wyciągów z różnych serwisów internetowych.

Opis

Webload to narzędzie, które automatycznie pobiera faktury, wyciągi i inne dokumenty finansowe z różnych serwisów internetowych (PayPal, Wise, Aftermarket, itp.) i organizuje je w strukturze katalogów według dat i dostawców.

Funkcje

  • Automatyczne logowanie do serwisów za pomocą podanych danych uwierzytelniających
  • Pobieranie faktur i wyciągów w formatach PDF, CSV, HTML
  • Konwersja dokumentów HTML do PDF (jeśli potrzebne)
  • Organizacja plików w strukturze katalogów YYYY.MM/{provider}/files
  • Obsługa wielu dostawców (PayPal, Wise, Aftermarket, OVH, itp.)
  • Uruchamianie w kontenerze Docker dla izolacji i bezpieczeństwa
  • Planowanie automatycznych pobrań
  • Integracja z modułem pdf_to_json.py do automatycznej konwersji PDF na JSON
  • Testy jednostkowe dla kluczowych komponentów

Wymagania

  • Python 3.8+
  • Docker
  • Poetry (zarządzanie zależnościami)

Instalacja

# Klonowanie repozytorium
git clone https://github.com/fin-officer/webload.git
cd webload

# Instalacja zależności za pomocą Poetry
poetry install

# Konfiguracja zmiennych środowiskowych
cp .env.example .env
# Edytuj plik .env i dodaj swoje dane uwierzytelniające

Konfiguracja

Skopiuj plik .env.example do .env i uzupełnij dane uwierzytelniające dla serwisów, z których chcesz pobierać dokumenty:

# Przykład konfiguracji
WISE_EMAIL=twoj_email@example.com
WISE_PASSWORD=twoje_haslo

PAYPAL_EMAIL=twoj_email@example.com
PAYPAL_PASSWORD=twoje_haslo

# Dodaj więcej danych uwierzytelniających dla innych serwisów

Użycie

Uruchomienie z Poetry

# Pobieranie dokumentów dla wszystkich dostawców
poetry run webload download-all

# Pobieranie dokumentów dla konkretnego dostawcy
poetry run webload download --provider paypal

# Pobieranie dokumentów dla konkretnego miesiąca
poetry run webload download --month 9 --year 2024

# Pobieranie dokumentów dla konkretnego dostawcy i miesiąca
poetry run webload download --provider wise --month 9 --year 2024

# Pobieranie i przetwarzanie dokumentów na JSON
poetry run webload download-and-process --month 9 --year 2024

# Pobieranie i przetwarzanie dokumentów dla konkretnego dostawcy
poetry run webload download-and-process --provider wise --month 9 --year 2024 --languages pol eng

Uruchomienie w Dockerze

# Budowanie obrazu Docker
docker build -t webload .

# Uruchomienie kontenera
docker run --rm -v $(pwd)/downloads:/app/downloads -v $(pwd)/.env:/app/.env webload download-all

# Uruchomienie kontenera z pobieraniem i przetwarzaniem na JSON
docker run --rm -v $(pwd)/downloads:/app/downloads -v $(pwd)/.env:/app/.env webload download-and-process --month 9 --year 2024

Obsługiwani dostawcy

  • Wise (statements)
  • PayPal (accountStatements)
  • SAV (transaction_list)
  • OpenAI (billing history)
  • Aftermarket (faktury)
  • DDRegistrar (faktury)
  • Premium.pl (faktury)
  • Namecheap (zamówienia)
  • Fiverr (billing)
  • OVH (historia płatności)
  • IONOS (billing)
  • STRATO (faktury)
  • Spaceship (orders-transactions)
  • Meetup.com (historia płatności)
  • Adobe
  • GoDaddy
  • Afternic
  • Scribd (historia płatności)
  • Envato (statements)
  • Proton
  • LinkedIn

Struktura katalogów

Pobrane dokumenty są organizowane w następującej strukturze:

downloads/
  └── YYYY.MM/
      └── {provider}/
          └── files/
              ├── invoice_1.pdf
              ├── invoice_2.pdf
              └── statement.pdf
      └── json/
          └── invoice_1.json
          └── invoice_2.json

Integracja z pdf_to_json

Biblioteka webload integruje się z istniejącym modułem pdf_to_json.py do konwersji plików PDF na format JSON:

  • Automatyczne pobieranie dokumentów i ich konwersja w jednym kroku
  • Wsparcie dla wielu języków rozpoznawania tekstu
  • Możliwość wyboru między standardową konwersją a użyciem invoice2data
  • Konfiguracja przez parametry wiersza poleceń

Testy

# Uruchomienie testów jednostkowych
poetry run pytest

# Uruchomienie testów z raportowaniem pokrycia kodu
poetry run pytest --cov=webload

Rozwój

Aby dodać obsługę nowego dostawcy:

  1. Utwórz nowy plik w katalogu webload/providers/
  2. Zaimplementuj klasę dostawcy dziedziczącą po BaseProvider
  3. Zarejestruj dostawcę w webload/providers/__init__.py

Licencja

Ten projekt jest objęty licencją MIT.

Metadata

Release files for webload 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for webload 0.1.1
File Size Uploaded
webload-0.1.1.tar.gz 19.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for webload 0.1.1
File Interpreter ABI Platform
webload-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 47.6 kB

Release files / webload-0.1.1.tar.gz

Download URL webload-0.1.1.tar.gz
Size 19.1 kB
Tags Source
SHA-256 checksum
How to use checksums
01472360f0342db89f234fbdc544a96be2d3319943f0f4bfabd391dbe29af86d
BLAKE2b-256 checksum
How to use checksums
2fe0dd51522e05dfe9241a8f2eace7aebcc236cec94cbd423d357fac6e0ada9a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.1.1 CPython/3.13.3 Linux/6.14.0-15-generic

Release files / webload-0.1.1-py3-none-any.whl

Download URL webload-0.1.1-py3-none-any.whl
Size 28.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6a1e4343d23a90bf4a92078755f955fbf16bb4672ffc0535f1595bb9c63ce5ef
BLAKE2b-256 checksum
How to use checksums
fd0bdccb07ee6e934852da18459f7506b2ab138318d47d452d6391c12e3bee5f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.1.1 CPython/3.13.3 Linux/6.14.0-15-generic

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page