Skip to main content

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
  • 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

webload-0.1.1.tar.gz (19.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

webload-0.1.1-py3-none-any.whl (28.4 kB view details)

Uploaded Python 3

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

Hashes for webload-0.1.1.tar.gz
Algorithm Hash digest
SHA256 01472360f0342db89f234fbdc544a96be2d3319943f0f4bfabd391dbe29af86d
MD5 27f1bcc30808f507a290a8a016537b93
BLAKE2b-256 2fe0dd51522e05dfe9241a8f2eace7aebcc236cec94cbd423d357fac6e0ada9a

See more details on using hashes here.

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

Hashes for webload-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6a1e4343d23a90bf4a92078755f955fbf16bb4672ffc0535f1595bb9c63ce5ef
MD5 7009f08ad64deffd13eaae73fec3cc2c
BLAKE2b-256 fd0bdccb07ee6e934852da18459f7506b2ab138318d47d452d6391c12e3bee5f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page