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.
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)
| File | Size | Uploaded | |
|---|---|---|---|
| webload-0.1.1.tar.gz | 19.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|