Automatyczne pobieranie faktur i wyciągów z różnych serwisów
Project description
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
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:
- Utwórz nowy plik w katalogu
webload/providers/ - Zaimplementuj klasę dostawcy dziedziczącą po
BaseProvider - Zarejestruj dostawcę w
webload/providers/__init__.py
Licencja
Ten projekt jest objęty licencją MIT.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file webload-0.1.1.tar.gz.
File metadata
- Download URL: webload-0.1.1.tar.gz
- Upload date:
- Size: 19.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.1 CPython/3.13.3 Linux/6.14.0-15-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
01472360f0342db89f234fbdc544a96be2d3319943f0f4bfabd391dbe29af86d
|
|
| MD5 |
27f1bcc30808f507a290a8a016537b93
|
|
| BLAKE2b-256 |
2fe0dd51522e05dfe9241a8f2eace7aebcc236cec94cbd423d357fac6e0ada9a
|
File details
Details for the file webload-0.1.1-py3-none-any.whl.
File metadata
- Download URL: webload-0.1.1-py3-none-any.whl
- Upload date:
- Size: 28.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.1 CPython/3.13.3 Linux/6.14.0-15-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6a1e4343d23a90bf4a92078755f955fbf16bb4672ffc0535f1595bb9c63ce5ef
|
|
| MD5 |
7009f08ad64deffd13eaae73fec3cc2c
|
|
| BLAKE2b-256 |
fd0bdccb07ee6e934852da18459f7506b2ab138318d47d452d6391c12e3bee5f
|