Examples
Grundlegende Verwendung
Einfacher Download
form-download-helper /tmp/ozg ck@novareto.de mein-passwort 2 https://formulare.uv-kooperation.de/ozg/rul/ozg-90
Ausgabe:
INFO! Download - https://formulare.uv-kooperation.de/ozg/rul/ozg-90 💥
Write - /tmp/ozg/ozg-90/v2_0/schema.json
Write - /tmp/ozg/ozg-90/v2_0/deptree._json
Write - /tmp/ozg/ozg-90/v2_0/form.pt
Write - /tmp/ozg/ozg-90/v2_0/form.py
Write - /tmp/ozg/ozg-90/v2_0/__init__.py
Write - /tmp/ozg/ozg-90/v2_0/tests/test_form.py
READY !!! 💥
Batch-Processing
Mehrere Versionen herunterladen
#!/bin/bash
BASE_URI="https://formulare.uv-kooperation.de/ozg/rul/ozg-90"
USERNAME="ck@novareto.de"
PASSWORD="mein-passwort"
TARGET_DIR="/tmp/ozg"
# Versionen 1, 2 und 3 herunterladen
for version in 1 2 3; do
echo "Downloading version $version..."
form-download-helper "$TARGET_DIR" "$USERNAME" "$PASSWORD" "$version" "$BASE_URI"
done
Mehrere Formulare herunterladen
#!/bin/bash
USERNAME="ck@novareto.de"
PASSWORD="mein-passwort"
TARGET_DIR="/tmp/ozg"
VERSION=2
# Liste der Formular-URIs
FORMS=(
"https://formulare.uv-kooperation.de/ozg/rul/ozg-90"
"https://formulare.uv-kooperation.de/ozg/rul/ozg-91"
"https://formulare.uv-kooperation.de/ozg/rul/ozg-92"
)
for form_uri in "${FORMS[@]}"; do
echo "Downloading from $form_uri..."
form-download-helper "$TARGET_DIR" "$USERNAME" "$PASSWORD" "$VERSION" "$form_uri"
done
CI/CD Integration
GitLab CI Job
download-forms:
stage: prepare
script:
- pip install git+https://git.bg-kooperation.de/novareto/form_download_helper.git
- form-download-helper ./forms $FORM_USERNAME $FORM_PASSWORD 2 $FORM_URI
artifacts:
paths:
- forms/
expire_in: 1 day
only:
- main
GitHub Actions
name: Download Forms
on:
workflow_dispatch:
schedule:
- cron: '0 2 * * *' # Täglich um 2 Uhr
jobs:
download:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.9'
- name: Install tool
run: pip install git+https://git.bg-kooperation.de/novareto/form_download_helper.git
- name: Download forms
run: |
form-download-helper ./forms \
${{ secrets.FORM_USERNAME }} \
${{ secrets.FORM_PASSWORD }} \
2 \
https://formulare.uv-kooperation.de/ozg/rul/ozg-90
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: forms
path: forms/
Python Integration
Als Python-Modul verwenden
from pathlib import Path
from form_download_helper import DownloadOZG
# Downloader initialisieren
downloader = DownloadOZG(
path="/tmp/ozg",
uri="https://formulare.uv-kooperation.de/ozg/rul/ozg-90",
username="ck@novareto.de",
password="mein-passwort",
version=2
)
# Download starten
downloader.get()
Mit Umgebungsvariablen
import os
from pathlib import Path
from form_download_helper import download
# Konfiguration aus Umgebung
config = {
'path': Path(os.getenv('FORM_TARGET_DIR', '/tmp/ozg')),
'username': os.getenv('FORM_USERNAME'),
'password': os.getenv('FORM_PASSWORD'),
'version': int(os.getenv('FORM_VERSION', '2')),
'uri': os.getenv('FORM_URI')
}
# Download mit Fehlerbehandlung
try:
download(**config)
print("Download erfolgreich!")
except Exception as e:
print(f"Fehler beim Download: {e}")
Erweiterte Konfiguration
Mit Docker
FROM python:3.9-slim
RUN pip install git+https://git.bg-kooperation.de/novareto/form_download_helper.git
WORKDIR /app
VOLUME ["/app/forms"]
ENTRYPOINT ["form-download-helper"]
CMD ["/app/forms", "user", "pass", "2", "https://formulare.uv-kooperation.de/ozg/rul/ozg-90"]
# Docker Container ausführen
docker run -v $(pwd)/forms:/app/forms \
-e FORM_USERNAME=ck@novareto.de \
-e FORM_PASSWORD=mein-passwort \
form-downloader
Monitoring und Logging
import logging
from form_download_helper import DownloadOZG
# Logging konfigurieren
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(levelname)s - %(message)s',
handlers=[
logging.FileHandler('form_download.log'),
logging.StreamHandler()
]
)
class MonitoredDownloadOZG(DownloadOZG):
def get(self):
logging.info(f"Starting download from {self.uri}")
try:
super().get()
logging.info("Download completed successfully")
except Exception as e:
logging.error(f"Download failed: {e}")
raise
# Verwendung
downloader = MonitoredDownloadOZG(
"/tmp/ozg",
"https://formulare.uv-kooperation.de/ozg/rul/ozg-90",
"ck@novareto.de",
"mein-passwort",
2
)
downloader.get()