weed
This commit is contained in:
1 parent
a6c208eb46
commit
fcec3b8c36
10 files changed
+440
-3
No files matched your search
@@ -0,0 +1,85 @@
|
||||
# CLAUDE.md
|
||||
|
||||
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||
|
||||
## Project Overview
|
||||
|
||||
This is "maple" - a music collection management system built in Rust that orchestrates downloading music from Soulseek using slsk-batchdl (sldl) and serving files through slskd. The project uses Docker containers to run two main services: a Soulseek downloader/organizer and a Soulseek daemon for sharing.
|
||||
|
||||
## Architecture
|
||||
|
||||
The project consists of:
|
||||
- **Rust application** (`src/main.rs`): Currently minimal, likely intended for future music management logic
|
||||
- **slsk-batchdl integration**: Downloads music from Soulseek with organized file structure
|
||||
- **slskd daemon**: Provides web interface and sharing capabilities for Soulseek
|
||||
- **Docker orchestration**: Two containers managed via docker-compose
|
||||
|
||||
### Key Components
|
||||
|
||||
- `maple` service: Runs the Rust app and sldl downloader
|
||||
- `slskd` service: Runs the Soulseek daemon with web interface on port 5030
|
||||
- Shared data directory structure under `data/` for music files and metadata
|
||||
- Configuration templates in `etc/` that use environment variable substitution
|
||||
|
||||
## Common Commands
|
||||
|
||||
### Development and Building
|
||||
```bash
|
||||
# Build containers
|
||||
just build
|
||||
|
||||
# Start all services
|
||||
just up
|
||||
|
||||
# Stop all services
|
||||
just down
|
||||
|
||||
# Run interactive shell in maple container
|
||||
just run
|
||||
|
||||
# Execute command in running maple container
|
||||
just exec
|
||||
|
||||
# Download music using sldl
|
||||
just dl <search_target>
|
||||
```
|
||||
|
||||
### Docker Operations
|
||||
```bash
|
||||
# Manual container operations
|
||||
docker compose -f compose.yaml up --remove-orphans
|
||||
docker compose -f compose.yaml down -v --remove-orphans
|
||||
docker compose -f compose.yaml build
|
||||
```
|
||||
|
||||
### Rust Development
|
||||
```bash
|
||||
# Build Rust code
|
||||
cargo build
|
||||
|
||||
# Run locally (outside container)
|
||||
cargo run
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
- Environment variables are loaded from `.env` file
|
||||
- Required variables: `SLDL_USER`, `SLDL_PASS` for Soulseek authentication
|
||||
- sldl configuration template: `etc/sldl.tpl.conf`
|
||||
- slskd configuration template: `etc/slskd.tpl.yml`
|
||||
|
||||
## File Organization
|
||||
|
||||
Music files are organized as: `{artist}/{album}/{track} {title}` with fallback to `_missing_tags/` for untagged files. The system prefers FLAC and MP3 formats with bitrate range 200-2500 kbps.
|
||||
|
||||
## Data Structure
|
||||
|
||||
- `data/maple/`: Organized music collection by artist/album
|
||||
- `data/_metadata/`: Index files and metadata
|
||||
- `data/slskd/`: Soulseek daemon data (downloads, shared files)
|
||||
- `data/PIONEER/`: DJ software settings and playlists
|
||||
|
||||
## Current Development Status
|
||||
|
||||
The Rust application is in early development (currently just prints "Hello, world!"). The infrastructure for downloading and organizing music is operational through the Docker services.
|
||||
- use an indentation of 4 spaces
|
||||
Reference in new issue
Block a user