1. If environment variables are not set before by docker compose, program tries to get them from .env file. 2. Fix: If text marker was not found on bs page a wrong text marker was added. |
||
|---|---|---|
| .env.example | ||
| .gitignore | ||
| bsupdate.py | ||
| docker-compose.example | ||
| Dockerfile | ||
| readme.md | ||
| req-short.py | ||
| requirements.txt | ||
Ich möchte eine Möglichkeit haben, Informationen von meinem Smartphone aus mit dem Wiki oder etwas anderem zu teilen.
Generelle Aufgaben:
- Link aus Webbrowser teilen -> automatische Eintragung ins Wiki
- Datei aus z.B. Fotoverwaltung teilen -> autmoatische Ablage auf dem Server
- Wiki-Artikel schneller erstellen (Bilder)
Konzept
- Teilen über Android mittels App HTTP Request Shortcuts
- Python Gegenstück auf Server um Dateien und Texte entgegen zu nehmen (Flask)
Konfiguration HTTP Request Shortcuts
Für das Basisbeispiel in welchem wir zum einen Dateien und zum anderen Links bzw. Texte teilen möchten, benötigen wir zwei Konfigurationseinträge bzw. HTTP Shortcuts.
Datei teilen
Sobald dieser Eintrag in die App hinzugefügt wurde, kann jede Datei auf den Server übertragen werden. Hierzu muss nur in der entsprechenden App "Teilen" ausgewählt und als Ziel HTTP Request Shortcuts gewählt werden.
- Neuen Eintrag über + hinzufügen
- Auswahl Von Grund auf erstellen
- Shortcut-Name: File to Server
- Allgemeine Einstellungen:
- Methode: Post
- URL: https://bsbridge.my-domain.com/upload
- Request Header:
- mittels + Eintrag für API-Token hinzufügen (siehe API_TOKEN Umgebungsvariable)
- Header: X-API-Token
- Wert: my-secret-token
- Request Body:
- Request-Body-Typ: Parameterliste (form-data)
- Eintrat mit + hinzufügen
- Einzelne Datei auswählen
- Parametername: file
- Daten-Quelle: Dateiauswahl öffnen
- Response-Einstellungen - Was passiert, wenn das Teilen ausgeführt wurde?
- Bei Erfolg: Benutzerdefinierte Nachricht anzeigen
- Nachricht: Wurde mit Server geteilt.
- Anzeige-Typ: Toast-PopUp
Alle nicht aufgeführten Einstellungen entsprechen den Standardeinstellungen und wurden nicht angepasst.
Text / Link teilen
Um einen Text teilen zu können, muss zuvor noch eine Variable angelegt werden.
- drei Punkte oben Rechts auswählen (App)
- {} Variablen auswählen
- mit + neue Variable hinzufügen
- Statische Variable wählen
- Name: shared_text
- "Teilen..." erlauben anwählen
Im Anschluss einen neuen Eintrag hinzufügen. Dies geht am schnellsten in dem man den bereits angelegten Shortcut Dupliziert.
- vorhandenen Eintrag lange drücken
- Im Kontextmenü Duplizieren auswählen
- Shortcut-Name ändern z.B.: Link to Server
- Request-Body anpassen:
- Vorhandenen Eintrag löschen
- Neuen Eintrag über + hinzufügen
- Parametertyp: Text
- Parametername: text
- Wert: {{shared_text}} (mit allen Klammern)
Nun sollte es möglich sein, auch aus dem Browser heraus direkt einen Link zu teilen.
Python Gegenstück
Das Programm req-short.py hat die folgenden Aufgaben:
- Kann Dateien am Endpunkt /upload entgegennehmen und im Ordner uploads speichern
- Kann einen Text am Endpunkt /upload entgegennehmen und speichert diesen in log.txt
- Zeigt eine Galerie der hochgeladenen Dateien bzw. nur der Bilder an
- Der Upload ist über ein "API_TOKEN" gesichert (nur Basis)
Die Anwendung muss hinter einem Reverse-Proxy gehostet werden, um einen sicheren Zugriff über SSL zu haben.
Um einen geteilten Link bzw. einen Text in Book Stack zu hinterlegen wird bsupdate.py verwendet. Hierzu müssen die .env Variablen gesetzt werden.