You've already forked wp-fedistream
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| db67a17fd4 | |||
| 96269eb355 | |||
| 01c256349f | |||
| 38377f11e0 |
18
CHANGELOG.md
18
CHANGELOG.md
@@ -7,6 +7,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
## [0.2.0] - 2026-01-28
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Settings and Dashboard links on the WordPress Plugins page for quick access
|
||||||
|
- Comprehensive user guide (`USERGUIDE.md`) covering installation, configuration, and all features
|
||||||
|
|
||||||
|
## [0.1.1] - 2026-01-28
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- WooCommerce product types (FediStream Album/Track) not appearing in product type selector
|
||||||
|
- Fixed timing issue where WooCommerce integration hooks were registered too late during `plugins_loaded`
|
||||||
|
|
||||||
## [0.1.0] - 2026-01-28
|
## [0.1.0] - 2026-01-28
|
||||||
|
|
||||||
Initial release of WP FediStream - a WordPress plugin for streaming music over ActivityPub.
|
Initial release of WP FediStream - a WordPress plugin for streaming music over ActivityPub.
|
||||||
@@ -139,5 +153,7 @@ Initial release of WP FediStream - a WordPress plugin for streaming music over A
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
[Unreleased]: https://src.bundespruefstelle.ch/magdev/wp-fedistream/compare/v0.1.0...HEAD
|
[Unreleased]: https://src.bundespruefstelle.ch/magdev/wp-fedistream/compare/v0.2.0...HEAD
|
||||||
|
[0.2.0]: https://src.bundespruefstelle.ch/magdev/wp-fedistream/compare/v0.1.1...v0.2.0
|
||||||
|
[0.1.1]: https://src.bundespruefstelle.ch/magdev/wp-fedistream/compare/v0.1.0...v0.1.1
|
||||||
[0.1.0]: https://src.bundespruefstelle.ch/magdev/wp-fedistream/releases/tag/v0.1.0
|
[0.1.0]: https://src.bundespruefstelle.ch/magdev/wp-fedistream/releases/tag/v0.1.0
|
||||||
|
|||||||
58
CLAUDE.md
58
CLAUDE.md
@@ -24,14 +24,9 @@ This project is proudly **"vibe-coded"** using Claude.AI - the entire codebase w
|
|||||||
|
|
||||||
**Note for AI Assistants:** Clean this section after the specific features are done or new releases are made. Effective changes are tracked in `CHANGELOG.md`. Do not add completed versions here - document them in the Session History section at the end of this file.
|
**Note for AI Assistants:** Clean this section after the specific features are done or new releases are made. Effective changes are tracked in `CHANGELOG.md`. Do not add completed versions here - document them in the Session History section at the end of this file.
|
||||||
|
|
||||||
### Version 0.1.0
|
### Version 0.2.1 (Bugfix)
|
||||||
|
|
||||||
- Document all relevant implementation details in CLAUDE.md, drop PLAN.md, because we don't need it anymore. All relevent Infos are kept in CLAUDE.md from now on
|
### Version 0.3.0 (Minor)
|
||||||
- Drop the current versioning, as this will be version 0.1.0. Merge the history contents in CHANGELOG.md into as single version 0.1.0
|
|
||||||
- Update the README.md according to the last changes and current implementation
|
|
||||||
- Commit the current sources to dev, merge it to main, tag it as 0.1.0 and push it all to origin
|
|
||||||
- Cleanup this Version entry from the temporary raodmap and create to empty sections for the next bugfix-version and the minor version.
|
|
||||||
- Call `/end-session`
|
|
||||||
|
|
||||||
## Technical Stack
|
## Technical Stack
|
||||||
|
|
||||||
@@ -353,3 +348,52 @@ wp-fedistream/
|
|||||||
---
|
---
|
||||||
|
|
||||||
## Session History
|
## Session History
|
||||||
|
|
||||||
|
### 2026-01-28 - Initial Release v0.1.0
|
||||||
|
|
||||||
|
**Summary:** Consolidated all development phases (0.0.1 through 0.7.0) into initial release v0.1.0.
|
||||||
|
|
||||||
|
**Completed:**
|
||||||
|
|
||||||
|
- Implemented Phase 6 (WooCommerce Integration):
|
||||||
|
- Custom product types for albums and tracks
|
||||||
|
- Pricing models (Fixed, PWYW, NYP)
|
||||||
|
- Digital delivery with secure downloads
|
||||||
|
- Streaming access control based on purchases
|
||||||
|
- Implemented Phase 7 (User Interactions):
|
||||||
|
- User library with favorites, follows, history
|
||||||
|
- Notification system (in-app and email)
|
||||||
|
- Library shortcode and frontend page
|
||||||
|
- Consolidated documentation:
|
||||||
|
- Moved implementation details from PLAN.md to CLAUDE.md
|
||||||
|
- Deleted PLAN.md (no longer needed)
|
||||||
|
- Merged all changelog entries into single v0.1.0 release
|
||||||
|
- Updated README.md with current features
|
||||||
|
- Git operations:
|
||||||
|
- Created initial commit on dev branch
|
||||||
|
- Merged to main branch
|
||||||
|
- Tagged as v0.1.0
|
||||||
|
- Push pending (requires credentials)
|
||||||
|
|
||||||
|
**Files Created:**
|
||||||
|
|
||||||
|
- `includes/WooCommerce/Integration.php`
|
||||||
|
- `includes/WooCommerce/AlbumProduct.php`
|
||||||
|
- `includes/WooCommerce/TrackProduct.php`
|
||||||
|
- `includes/WooCommerce/DigitalDelivery.php`
|
||||||
|
- `includes/WooCommerce/StreamingAccess.php`
|
||||||
|
- `includes/User/Library.php`
|
||||||
|
- `includes/User/LibraryPage.php`
|
||||||
|
- `includes/User/Notifications.php`
|
||||||
|
- `assets/js/library.js`
|
||||||
|
- `assets/js/notifications.js`
|
||||||
|
|
||||||
|
**Files Deleted:**
|
||||||
|
|
||||||
|
- `PLAN.md`
|
||||||
|
|
||||||
|
**Notes:**
|
||||||
|
|
||||||
|
- Successfully pushed dev, main branches and v0.1.0 tag to origin
|
||||||
|
- Remote URL updated from HTTPS to SSH for authentication
|
||||||
|
- First release is now live at the repository
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
Stream music over ActivityPub - Build your own music streaming platform for Musicians and Labels.
|
Stream music over ActivityPub - Build your own music streaming platform for Musicians and Labels.
|
||||||
|
|
||||||
[](CHANGELOG.md)
|
[](CHANGELOG.md)
|
||||||
[](https://php.net)
|
[](https://php.net)
|
||||||
[](https://wordpress.org)
|
[](https://wordpress.org)
|
||||||
[](https://www.gnu.org/licenses/gpl-2.0.html)
|
[](https://www.gnu.org/licenses/gpl-2.0.html)
|
||||||
|
|||||||
550
USERGUIDE.md
Normal file
550
USERGUIDE.md
Normal file
@@ -0,0 +1,550 @@
|
|||||||
|
# WP FediStream User Guide
|
||||||
|
|
||||||
|
A comprehensive guide to setting up and using WP FediStream, the WordPress plugin for streaming music over ActivityPub.
|
||||||
|
|
||||||
|
## Table of Contents
|
||||||
|
|
||||||
|
1. [Installation](#installation)
|
||||||
|
2. [Initial Configuration](#initial-configuration)
|
||||||
|
3. [Managing Artists](#managing-artists)
|
||||||
|
4. [Creating Albums](#creating-albums)
|
||||||
|
5. [Adding Tracks](#adding-tracks)
|
||||||
|
6. [Building Playlists](#building-playlists)
|
||||||
|
7. [Using Shortcodes](#using-shortcodes)
|
||||||
|
8. [Widgets](#widgets)
|
||||||
|
9. [ActivityPub Integration](#activitypub-integration)
|
||||||
|
10. [WooCommerce Integration](#woocommerce-integration)
|
||||||
|
11. [User Library Features](#user-library-features)
|
||||||
|
12. [Troubleshooting](#troubleshooting)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
### Requirements
|
||||||
|
|
||||||
|
- PHP 8.3 or higher
|
||||||
|
- WordPress 6.4 or higher
|
||||||
|
- Composer (for installation from source)
|
||||||
|
|
||||||
|
### Optional Requirements
|
||||||
|
|
||||||
|
- [ActivityPub Plugin](https://wordpress.org/plugins/activitypub/) - For Fediverse integration
|
||||||
|
- [WooCommerce](https://woocommerce.com/) 10.0+ - For selling music
|
||||||
|
|
||||||
|
### From Source
|
||||||
|
|
||||||
|
1. Navigate to your WordPress plugins directory:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd wp-content/plugins/
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Clone or download the repository:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone https://src.bundespruefstelle.ch/magdev/wp-fedistream.git
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Install Composer dependencies:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd wp-fedistream
|
||||||
|
composer install --no-dev
|
||||||
|
```
|
||||||
|
|
||||||
|
4. Activate the plugin in WordPress admin under **Plugins > Installed Plugins**
|
||||||
|
|
||||||
|
5. Navigate to **FediStream** in the admin menu to get started
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Initial Configuration
|
||||||
|
|
||||||
|
After activation, configure FediStream through **FediStream > Settings**.
|
||||||
|
|
||||||
|
### General Settings
|
||||||
|
|
||||||
|
| Setting | Description | Default |
|
||||||
|
|---------|-------------|---------|
|
||||||
|
| ActivityPub Integration | Enable Fediverse features for sharing releases | Enabled |
|
||||||
|
| WooCommerce Integration | Enable selling music (requires WooCommerce) | Disabled |
|
||||||
|
| Max Upload Size | Maximum audio file size in MB | 50 MB |
|
||||||
|
| Default License | Default copyright license for new uploads | All Rights Reserved |
|
||||||
|
|
||||||
|
### License Options
|
||||||
|
|
||||||
|
FediStream supports various licensing options:
|
||||||
|
|
||||||
|
- **All Rights Reserved** - Traditional copyright
|
||||||
|
- **CC BY** - Creative Commons Attribution
|
||||||
|
- **CC BY-SA** - Attribution-ShareAlike
|
||||||
|
- **CC BY-NC** - Attribution-NonCommercial
|
||||||
|
- **CC BY-NC-SA** - Attribution-NonCommercial-ShareAlike
|
||||||
|
- **CC0** - Public Domain Dedication
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Managing Artists
|
||||||
|
|
||||||
|
Artists represent musicians, bands, duos, or collectives. Each artist can have their own ActivityPub presence.
|
||||||
|
|
||||||
|
### Creating an Artist
|
||||||
|
|
||||||
|
1. Go to **FediStream > Artists > Add New**
|
||||||
|
2. Fill in the required information:
|
||||||
|
- **Name** - Artist or band name
|
||||||
|
- **Biography** - Detailed description (supports rich text)
|
||||||
|
- **Featured Image** - Artist photo/logo
|
||||||
|
3. Configure artist details in the meta boxes:
|
||||||
|
- **Artist Type** - Solo, Band, Duo, or Collective
|
||||||
|
- **Formation Date** - When the artist/band started
|
||||||
|
- **Location** - City, Country
|
||||||
|
- **Website** - Official website URL
|
||||||
|
4. Add social media links:
|
||||||
|
- Mastodon, Twitter/X, Instagram, Facebook, YouTube, Spotify, Bandcamp, SoundCloud
|
||||||
|
5. For bands: Add band members with their names and roles
|
||||||
|
6. Assign genres from the Genre taxonomy
|
||||||
|
7. Publish the artist
|
||||||
|
|
||||||
|
### Artist Types
|
||||||
|
|
||||||
|
| Type | Description |
|
||||||
|
|------|-------------|
|
||||||
|
| Solo | Individual musician |
|
||||||
|
| Band | Group of musicians |
|
||||||
|
| Duo | Two-person musical act |
|
||||||
|
| Collective | Loose group of collaborating artists |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Creating Albums
|
||||||
|
|
||||||
|
Albums organize your music into releases. They can be full albums, EPs, singles, or compilations.
|
||||||
|
|
||||||
|
### Creating an Album
|
||||||
|
|
||||||
|
1. Go to **FediStream > Albums > Add New**
|
||||||
|
2. Enter the album information:
|
||||||
|
- **Title** - Album name
|
||||||
|
- **Description** - Album notes, liner notes, story
|
||||||
|
- **Featured Image** - Album artwork (recommended: 1400x1400 pixels)
|
||||||
|
3. Configure album metadata:
|
||||||
|
- **Artist** - Select the primary artist
|
||||||
|
- **Album Type** - Album, EP, Single, or Compilation
|
||||||
|
- **Release Date** - Official release date
|
||||||
|
- **Catalog Number** - Your catalog reference (optional)
|
||||||
|
- **UPC/EAN** - Universal Product Code (optional)
|
||||||
|
4. Assign genres and license
|
||||||
|
5. Publish the album
|
||||||
|
|
||||||
|
### Album Types
|
||||||
|
|
||||||
|
| Type | Description | Typical Track Count |
|
||||||
|
|------|-------------|---------------------|
|
||||||
|
| Album | Full-length release | 8-15 tracks |
|
||||||
|
| EP | Extended Play | 4-6 tracks |
|
||||||
|
| Single | Single track release | 1-3 tracks |
|
||||||
|
| Compilation | Collection of tracks | Varies |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Adding Tracks
|
||||||
|
|
||||||
|
Tracks are the individual songs or audio files in your library.
|
||||||
|
|
||||||
|
### Creating a Track
|
||||||
|
|
||||||
|
1. Go to **FediStream > Tracks > Add New**
|
||||||
|
2. Enter track information:
|
||||||
|
- **Title** - Song title
|
||||||
|
- **Description** - Lyrics, notes, credits
|
||||||
|
3. Upload the audio file:
|
||||||
|
- Click **Select Audio File** in the Track Audio meta box
|
||||||
|
- Supported formats: MP3, WAV, FLAC, OGG, AAC
|
||||||
|
- Recommended: High-quality MP3 (320kbps) or FLAC
|
||||||
|
4. Configure track metadata:
|
||||||
|
- **Album** - Associate with an album
|
||||||
|
- **Track Number** - Position in the album
|
||||||
|
- **Disc Number** - For multi-disc releases
|
||||||
|
- **Duration** - Auto-detected from audio file
|
||||||
|
- **BPM** - Beats per minute (optional)
|
||||||
|
- **Key** - Musical key (optional)
|
||||||
|
- **ISRC** - International Standard Recording Code (optional)
|
||||||
|
5. Set the featured image (track artwork, optional)
|
||||||
|
6. Assign genres, moods, and license
|
||||||
|
7. Publish the track
|
||||||
|
|
||||||
|
### Audio File Guidelines
|
||||||
|
|
||||||
|
| Format | Quality | Recommended For |
|
||||||
|
|--------|---------|-----------------|
|
||||||
|
| MP3 | 320kbps | Web streaming |
|
||||||
|
| FLAC | Lossless | Downloads, archival |
|
||||||
|
| WAV | Uncompressed | Master files |
|
||||||
|
| OGG | Variable | Alternative streaming |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Building Playlists
|
||||||
|
|
||||||
|
Playlists are curated collections of tracks, useful for themed collections or user-generated content.
|
||||||
|
|
||||||
|
### Creating a Playlist
|
||||||
|
|
||||||
|
1. Go to **FediStream > Playlists > Add New**
|
||||||
|
2. Enter playlist information:
|
||||||
|
- **Title** - Playlist name
|
||||||
|
- **Description** - What the playlist is about
|
||||||
|
- **Featured Image** - Playlist cover art
|
||||||
|
3. Add tracks to the playlist:
|
||||||
|
- Use the **Playlist Tracks** meta box
|
||||||
|
- Search for tracks by title
|
||||||
|
- Click to add tracks to the playlist
|
||||||
|
- Drag and drop to reorder tracks
|
||||||
|
4. Configure visibility:
|
||||||
|
- **Public** - Visible to everyone
|
||||||
|
- **Private** - Only visible to the creator
|
||||||
|
5. Assign moods (optional)
|
||||||
|
6. Publish the playlist
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Using Shortcodes
|
||||||
|
|
||||||
|
FediStream provides shortcodes to display content anywhere in your WordPress site.
|
||||||
|
|
||||||
|
### Available Shortcodes
|
||||||
|
|
||||||
|
#### Display Single Artist
|
||||||
|
|
||||||
|
```txt
|
||||||
|
[fedistream_artist id="123"]
|
||||||
|
```
|
||||||
|
|
||||||
|
Shows the artist profile with bio, image, and social links.
|
||||||
|
|
||||||
|
**Attributes:**
|
||||||
|
|
||||||
|
- `id` (required) - Artist post ID
|
||||||
|
|
||||||
|
#### Display Album
|
||||||
|
|
||||||
|
```txt
|
||||||
|
[fedistream_album id="456"]
|
||||||
|
```
|
||||||
|
|
||||||
|
Shows the album with artwork, tracklist, and play buttons.
|
||||||
|
|
||||||
|
**Attributes:**
|
||||||
|
|
||||||
|
- `id` (required) - Album post ID
|
||||||
|
- `show_tracks` - Show tracklist (default: true)
|
||||||
|
|
||||||
|
#### Display Track
|
||||||
|
|
||||||
|
```txt
|
||||||
|
[fedistream_track id="789"]
|
||||||
|
```
|
||||||
|
|
||||||
|
Shows a single track with player controls.
|
||||||
|
|
||||||
|
**Attributes:**
|
||||||
|
|
||||||
|
- `id` (required) - Track post ID
|
||||||
|
|
||||||
|
#### Display Playlist
|
||||||
|
|
||||||
|
```txt
|
||||||
|
[fedistream_playlist id="101"]
|
||||||
|
```
|
||||||
|
|
||||||
|
Shows the playlist with all tracks and player.
|
||||||
|
|
||||||
|
**Attributes:**
|
||||||
|
|
||||||
|
- `id` (required) - Playlist post ID
|
||||||
|
|
||||||
|
#### Latest Releases
|
||||||
|
|
||||||
|
```txt
|
||||||
|
[fedistream_latest_releases count="5"]
|
||||||
|
```
|
||||||
|
|
||||||
|
Shows a grid of recent album releases.
|
||||||
|
|
||||||
|
**Attributes:**
|
||||||
|
|
||||||
|
- `count` - Number of releases to show (default: 6)
|
||||||
|
- `columns` - Grid columns (default: 3)
|
||||||
|
|
||||||
|
#### Popular Tracks
|
||||||
|
|
||||||
|
```txt
|
||||||
|
[fedistream_popular_tracks count="10"]
|
||||||
|
```
|
||||||
|
|
||||||
|
Shows a list of most-played tracks.
|
||||||
|
|
||||||
|
**Attributes:**
|
||||||
|
|
||||||
|
- `count` - Number of tracks to show (default: 10)
|
||||||
|
|
||||||
|
#### Artists Grid
|
||||||
|
|
||||||
|
```txt
|
||||||
|
[fedistream_artists count="12" columns="4"]
|
||||||
|
```
|
||||||
|
|
||||||
|
Shows a grid of artists.
|
||||||
|
|
||||||
|
**Attributes:**
|
||||||
|
|
||||||
|
- `count` - Number of artists (default: 12)
|
||||||
|
- `columns` - Grid columns (default: 4)
|
||||||
|
|
||||||
|
#### Audio Player Widget
|
||||||
|
|
||||||
|
```txt
|
||||||
|
[fedistream_player]
|
||||||
|
```
|
||||||
|
|
||||||
|
Shows the persistent audio player.
|
||||||
|
|
||||||
|
#### User Library
|
||||||
|
|
||||||
|
```txt
|
||||||
|
[fedistream_library]
|
||||||
|
```
|
||||||
|
|
||||||
|
Shows the logged-in user's music library (favorites, followed artists, history).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Widgets
|
||||||
|
|
||||||
|
FediStream includes widgets for your sidebar or widget areas.
|
||||||
|
|
||||||
|
### Available Widgets
|
||||||
|
|
||||||
|
| Widget | Description |
|
||||||
|
|--------|-------------|
|
||||||
|
| Recent Releases | Displays latest album releases |
|
||||||
|
| Popular Tracks | Shows most-played tracks |
|
||||||
|
| Featured Artist | Highlights a specific artist |
|
||||||
|
| Now Playing | Shows currently playing track |
|
||||||
|
|
||||||
|
### Adding Widgets
|
||||||
|
|
||||||
|
1. Go to **Appearance > Widgets**
|
||||||
|
2. Find FediStream widgets in the available widgets list
|
||||||
|
3. Drag to your desired widget area
|
||||||
|
4. Configure the widget options
|
||||||
|
5. Save
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ActivityPub Integration
|
||||||
|
|
||||||
|
FediStream integrates with the Fediverse through ActivityPub, allowing your artists to be followed from Mastodon, Pixelfed, and other platforms.
|
||||||
|
|
||||||
|
### Requirements
|
||||||
|
|
||||||
|
Install and activate the [ActivityPub plugin](https://wordpress.org/plugins/activitypub/) from WordPress.org.
|
||||||
|
|
||||||
|
### How It Works
|
||||||
|
|
||||||
|
1. Each artist becomes an ActivityPub actor (like a Mastodon account)
|
||||||
|
2. Fediverse users can follow artists using their handle: `@artist-slug@your-domain.com`
|
||||||
|
3. When you publish new albums or tracks, announcements are sent to followers
|
||||||
|
4. Followers can like and boost your releases, which shows on your site
|
||||||
|
|
||||||
|
### Artist Discovery (Webfinger)
|
||||||
|
|
||||||
|
Artists can be discovered via Webfinger:
|
||||||
|
|
||||||
|
```txt
|
||||||
|
https://your-site.com/.well-known/webfinger?resource=acct:artist-name@your-site.com
|
||||||
|
```
|
||||||
|
|
||||||
|
### Activity Types
|
||||||
|
|
||||||
|
| Activity | When Sent |
|
||||||
|
|----------|-----------|
|
||||||
|
| Create | New album or track published |
|
||||||
|
| Update | Album or track updated |
|
||||||
|
| Delete | Content removed |
|
||||||
|
| Follow/Accept | New follower confirmed |
|
||||||
|
|
||||||
|
### Viewing Followers
|
||||||
|
|
||||||
|
Artist followers are displayed on the artist's admin page under the Followers meta box.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## WooCommerce Integration
|
||||||
|
|
||||||
|
Sell your music directly through your WordPress site using WooCommerce.
|
||||||
|
|
||||||
|
### Requirements
|
||||||
|
|
||||||
|
- WooCommerce 10.0 or higher installed and activated
|
||||||
|
- WooCommerce integration enabled in FediStream settings
|
||||||
|
|
||||||
|
### Setting Up Products
|
||||||
|
|
||||||
|
1. Enable WooCommerce in **FediStream > Settings**
|
||||||
|
2. Go to **Products > Add New**
|
||||||
|
3. Select product type:
|
||||||
|
- **FediStream Album** - Sell a complete album
|
||||||
|
- **FediStream Track** - Sell individual tracks
|
||||||
|
4. Configure the FediStream tab:
|
||||||
|
- Link to the corresponding album or track
|
||||||
|
- Set pricing type (Fixed, Pay What You Want, Name Your Price)
|
||||||
|
- Configure minimum and suggested prices for PWYW
|
||||||
|
- Select available download formats
|
||||||
|
- Enable streaming access for purchasers
|
||||||
|
5. Publish the product
|
||||||
|
|
||||||
|
### Pricing Types
|
||||||
|
|
||||||
|
| Type | Description |
|
||||||
|
|------|-------------|
|
||||||
|
| Fixed | Standard fixed price |
|
||||||
|
| Pay What You Want (PWYW) | Customer chooses price above minimum |
|
||||||
|
| Name Your Price (NYP) | Customer sets any price (including free) |
|
||||||
|
|
||||||
|
### Download Formats
|
||||||
|
|
||||||
|
Customers can download purchased music in these formats:
|
||||||
|
|
||||||
|
- MP3 (320kbps)
|
||||||
|
- FLAC (Lossless)
|
||||||
|
- WAV (Uncompressed)
|
||||||
|
- AAC (256kbps)
|
||||||
|
- OGG Vorbis
|
||||||
|
|
||||||
|
### Streaming Access
|
||||||
|
|
||||||
|
When "Include Streaming" is enabled:
|
||||||
|
|
||||||
|
- Non-purchasers hear 30-second previews
|
||||||
|
- Purchasers get full-quality streaming access
|
||||||
|
- Access is tied to the customer account
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## User Library Features
|
||||||
|
|
||||||
|
Logged-in users can build their personal music library.
|
||||||
|
|
||||||
|
### Favorites
|
||||||
|
|
||||||
|
- Click the heart icon on any track, album, or playlist to save it
|
||||||
|
- View all favorites in the Library page
|
||||||
|
|
||||||
|
### Following Artists
|
||||||
|
|
||||||
|
- Click "Follow" on any artist profile
|
||||||
|
- Get notified when they release new music
|
||||||
|
|
||||||
|
### Listening History
|
||||||
|
|
||||||
|
- Automatically tracks what you've listened to
|
||||||
|
- View recent plays in the Library page
|
||||||
|
- Option to clear history
|
||||||
|
|
||||||
|
### Notifications
|
||||||
|
|
||||||
|
Users receive notifications for:
|
||||||
|
|
||||||
|
- New releases from followed artists
|
||||||
|
- New followers (for artists)
|
||||||
|
- Fediverse interactions (likes, boosts)
|
||||||
|
- Purchases (for WooCommerce)
|
||||||
|
|
||||||
|
Notifications appear in the admin bar and can be configured for email delivery.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
### Audio Files Not Playing
|
||||||
|
|
||||||
|
1. Verify the audio file is properly uploaded
|
||||||
|
2. Check browser console for errors
|
||||||
|
3. Ensure the audio format is supported
|
||||||
|
4. Verify file permissions on the server
|
||||||
|
|
||||||
|
### ActivityPub Not Working
|
||||||
|
|
||||||
|
1. Ensure the ActivityPub plugin is installed and active
|
||||||
|
2. Check that ActivityPub is enabled in FediStream settings
|
||||||
|
3. Verify your site's SSL certificate is valid
|
||||||
|
4. Check that `.well-known/webfinger` is accessible
|
||||||
|
|
||||||
|
### WooCommerce Products Not Showing
|
||||||
|
|
||||||
|
1. Ensure WooCommerce is installed and activated
|
||||||
|
2. Enable WooCommerce in FediStream settings
|
||||||
|
3. Clear any caching plugins
|
||||||
|
4. Check for JavaScript errors in browser console
|
||||||
|
|
||||||
|
### Images Not Displaying
|
||||||
|
|
||||||
|
1. Check that featured images are set on posts
|
||||||
|
2. Verify the Media Library has the images
|
||||||
|
3. Check theme compatibility with featured images
|
||||||
|
4. Regenerate thumbnails if image sizes are wrong
|
||||||
|
|
||||||
|
### Performance Issues
|
||||||
|
|
||||||
|
1. Consider using a caching plugin
|
||||||
|
2. Optimize images before upload
|
||||||
|
3. Use a CDN for audio files
|
||||||
|
4. Enable object caching if available
|
||||||
|
|
||||||
|
### Getting Help
|
||||||
|
|
||||||
|
- **Documentation**: Check this guide and the README
|
||||||
|
- **Issues**: Report bugs at the [issue tracker](https://src.bundespruefstelle.ch/magdev/wp-fedistream/issues)
|
||||||
|
- **Updates**: Keep the plugin updated for latest fixes
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Quick Reference
|
||||||
|
|
||||||
|
### URL Slugs
|
||||||
|
|
||||||
|
| Content Type | URL Pattern |
|
||||||
|
|--------------|-------------|
|
||||||
|
| Artists | `/artists/{slug}/` |
|
||||||
|
| Albums | `/albums/{slug}/` |
|
||||||
|
| Tracks | `/tracks/{slug}/` |
|
||||||
|
| Playlists | `/playlists/{slug}/` |
|
||||||
|
| Genres | `/genre/{slug}/` |
|
||||||
|
| Moods | `/mood/{slug}/` |
|
||||||
|
|
||||||
|
### User Roles
|
||||||
|
|
||||||
|
| Role | Capabilities |
|
||||||
|
|------|--------------|
|
||||||
|
| FediStream Artist | Manage own content, upload files, view own stats |
|
||||||
|
| FediStream Label | Manage all content, manage taxonomies, view all stats |
|
||||||
|
|
||||||
|
### Keyboard Shortcuts (Player)
|
||||||
|
|
||||||
|
| Key | Action |
|
||||||
|
|-----|--------|
|
||||||
|
| Space | Play/Pause |
|
||||||
|
| Left Arrow | Previous track |
|
||||||
|
| Right Arrow | Next track |
|
||||||
|
| Up Arrow | Volume up |
|
||||||
|
| Down Arrow | Volume down |
|
||||||
|
| M | Mute/Unmute |
|
||||||
|
| S | Shuffle toggle |
|
||||||
|
| R | Repeat mode cycle |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*For more information, visit the [project repository](https://src.bundespruefstelle.ch/magdev/wp-fedistream).*
|
||||||
@@ -196,6 +196,34 @@ final class Plugin {
|
|||||||
add_action( 'admin_menu', array( $this, 'add_admin_menu' ) );
|
add_action( 'admin_menu', array( $this, 'add_admin_menu' ) );
|
||||||
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_admin_assets' ) );
|
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_admin_assets' ) );
|
||||||
add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_frontend_assets' ) );
|
add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_frontend_assets' ) );
|
||||||
|
|
||||||
|
// Add settings link to plugins page.
|
||||||
|
add_filter( 'plugin_action_links_' . WP_FEDISTREAM_BASENAME, array( $this, 'add_plugin_action_links' ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add action links to the plugins page.
|
||||||
|
*
|
||||||
|
* @param array $links Existing action links.
|
||||||
|
* @return array Modified action links.
|
||||||
|
*/
|
||||||
|
public function add_plugin_action_links( array $links ): array {
|
||||||
|
$settings_link = sprintf(
|
||||||
|
'<a href="%s">%s</a>',
|
||||||
|
esc_url( admin_url( 'admin.php?page=fedistream-settings' ) ),
|
||||||
|
esc_html__( 'Settings', 'wp-fedistream' )
|
||||||
|
);
|
||||||
|
|
||||||
|
$dashboard_link = sprintf(
|
||||||
|
'<a href="%s">%s</a>',
|
||||||
|
esc_url( admin_url( 'admin.php?page=fedistream' ) ),
|
||||||
|
esc_html__( 'Dashboard', 'wp-fedistream' )
|
||||||
|
);
|
||||||
|
|
||||||
|
// Add our links at the beginning.
|
||||||
|
array_unshift( $links, $dashboard_link, $settings_link );
|
||||||
|
|
||||||
|
return $links;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -28,8 +28,16 @@ class Integration {
|
|||||||
* Constructor.
|
* Constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
add_action( 'plugins_loaded', array( $this, 'check_woocommerce' ), 5 );
|
// Check WooCommerce immediately since we're instantiated during plugins_loaded.
|
||||||
add_action( 'plugins_loaded', array( $this, 'init' ), 20 );
|
$this->check_woocommerce();
|
||||||
|
|
||||||
|
// If plugins_loaded hasn't fully completed, hook init at priority 20.
|
||||||
|
// Otherwise, run init directly.
|
||||||
|
if ( ! did_action( 'plugins_loaded' ) || doing_action( 'plugins_loaded' ) ) {
|
||||||
|
add_action( 'plugins_loaded', array( $this, 'init' ), 20 );
|
||||||
|
} else {
|
||||||
|
$this->init();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
* Plugin Name: WP FediStream
|
* Plugin Name: WP FediStream
|
||||||
* Plugin URI: https://src.bundespruefstelle.ch/magdev/wp-fedistream
|
* Plugin URI: https://src.bundespruefstelle.ch/magdev/wp-fedistream
|
||||||
* Description: Stream music over ActivityPub - Build your own music streaming platform for Musicians and Labels.
|
* Description: Stream music over ActivityPub - Build your own music streaming platform for Musicians and Labels.
|
||||||
* Version: 0.1.0
|
* Version: 0.2.0
|
||||||
* Requires at least: 6.4
|
* Requires at least: 6.4
|
||||||
* Requires PHP: 8.3
|
* Requires PHP: 8.3
|
||||||
* Author: Marco Graetsch
|
* Author: Marco Graetsch
|
||||||
@@ -26,7 +26,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
define( 'WP_FEDISTREAM_VERSION', '0.1.0' );
|
define( 'WP_FEDISTREAM_VERSION', '0.2.0' );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Plugin file path.
|
* Plugin file path.
|
||||||
|
|||||||
Reference in New Issue
Block a user