This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user