ucast/README.md
2022-05-10 19:01:14 +02:00

53 lines
1.7 KiB
Markdown

# Ucast
Der Ucast-Server bietet dem Nutzer die Möglichkeit, YouTube-Videos (z.B. News, Kommentare)
einfach unterwegs oder z.B. während der Arbeit zu konsumieren. Dafür kann er Videos ausgewählter
Kanäle automatisch als MP3 herunterladen und als Podcast-Feed bereitstellen.
## Funktionsweise
Der Nutzer soll über eine Weboberfläche YouTube-Kanäle abonnieren können.
Wenn diese Kanäle ein neues Video veröffentlichen, sollte der Server dieses Video
automatisch herunterladen und ins MP3-Format konvertieren. Für jeden abonnierten
Kanal soll der Server einen RSS-Feed bereitstellen, den man mit einen Podcast-Client
abrufen kann.
## Technik
Der Server sollte mit dem Webframework [Django](https://djangoproject.com/)
realisiert werden.
Die Weboberfläche wird mit Jinja-Templates gerendert, auf ein JS-Framework kann vorerst verzichtet werden.
Für ein ansehnliches Ansehen sorgt Bootstrap.
## Entwicklung
### Project aufsetzen
1. Python3 + Node.js + [Poetry](https://python-poetry.org/) dependency manager +
[pnpm](https://pnpm.io/) installieren
2. Python-Dependencies mit ``poetry install`` installieren
3. Node-Dependencies mit ``pnpm i`` installerien
### Tasks (Python)
Ausführen: `invoke <taskname>`
`test` Unittests ausführen
`lint` Codequalität/Formatierung überprüfen
`format` Code mit black formatieren
`makemigrations` Datenbankmigration erstellen
`get-cover --vid <YouTube-Video-ID>` YouTube-Thumbnail herunterladen
und Coverbilder zum Testen erzeugen (werden unter `ucast/tests/testfiles` abgelegt)
### Tasks (Node.js)
Ausführen: `npm run <taskname>`
`start` Sass-Stylesheets automatisch bei Änderungen kompilieren
`build` Sass-Stylesheets kompilieren und optimieren