Files
pie 47e66478c4
Build and Push Docker Image / build-and-push-image (push) Failing after 14m8s
Initial commit
2026-04-19 17:08:09 +01:00

61 lines
2.1 KiB
Markdown

# Crunchyroll Watchlist
A polished, Streamlit-based dashboard for viewing and managing your Crunchyroll watchlist. This project provides a custom-styled interface with category-based grouping and interactive carousels.
## Project Overview
- **Purpose:** Provide an enhanced visual interface for the Crunchyroll watchlist using the Crunchyroll API.
- **Main Technologies:**
- [Python](https://www.python.org/)
- [Streamlit](https://streamlit.io/) (Web Framework)
- [Requests](https://requests.readthedocs.io/) (API communication)
- **Key Features:**
- OAuth2 Authentication with Crunchyroll.
- Custom CSS for a dark-themed, "Netflix-style" UI.
- Category-based sorting (Action, Adventure, Comedy, etc.).
- Interactive row carousels for series navigation.
## Building and Running
### Using Docker (Recommended)
The project is fully containerized for easy deployment.
1. **Build the image:**
```bash
docker build -t crunchyroll-watchlist .
```
2. **Run the container:**
```bash
docker run -p 8501:8501 \
-e CR_EMAIL="your-email@example.com" \
-e CR_PASSWORD="your-password" \
crunchyroll-watchlist
```
Access the app at `http://localhost:8501`. If environment variables are provided, the app will attempt to log in automatically.
### Local Development
1. **Install dependencies:**
```bash
pip install streamlit requests
```
2. **Run the application:**
```bash
streamlit run crunchyroll_watchlist.py
```
## Development Conventions
- **Frontend:** Custom styling is handled via `st.markdown` with `unsafe_allow_html=True`.
- **Components:** Complex interactive elements (like the carousel) are implemented using Streamlit HTML components (`components.html`).
- **State Management:** Uses `st.session_state` to manage authentication tokens and account data.
- **Caching:** API calls are cached using `st.cache_data` to improve performance and reduce API load.
## Project Structure
- `crunchyroll_watchlist.py`: The main application logic, including authentication, API interaction, and UI rendering.
- `Dockerfile`: Configuration for building the project as a container.