clarion-app / rss-torrents-backend
Manages RSS feeds and retrieves torrents from them.
dev-main
2025-06-21 00:16 UTC
Requires
- clarion-app/backend: dev-main
- clarion-app/eloquent-multichain-bridge: dev-main
- willvincent/feeds: dev-master
This package is auto-updated.
Last update: 2025-06-21 00:17:59 UTC
README
A Laravel-based backend service for monitoring and managing RSS torrent feeds. This package provides automated RSS feed parsing, torrent discovery, and series/episode management capabilities for the Clarion App ecosystem.
Features
- RSS Feed Monitoring: Automated parsing of torrent RSS feeds (EZTV, Nyaa Subsplease)
- Series Management: Track and manage TV series with subscription capabilities
- Episode Tracking: Monitor individual episodes with metadata (resolution, size, magnet links)
- Scheduled Processing: Automatic feed checking every minute via Laravel scheduler
- RESTful API: Full CRUD operations for series and episodes
Supported Feed Sources
- EZTV (
https://eztv.re/ezrss.xml
) - TV series torrents - Nyaa Subsplease - Anime series torrents
Configuration
The package automatically registers:
- Database migrations for series and episodes
- API routes under the configured route prefix
- Scheduled command for feed checking
- Console commands
API Endpoints
All endpoints require authentication (auth:api
middleware).
Feeds
GET /feeds/urls
- Get list of available RSS feed URLsGET /feeds/torrents
- Retrieve torrents from all feeds
Series Management
GET /series
- List all seriesPOST /series
- Create a new seriesGET /series/{id}
- Get specific series detailsPUT /series/{id}
- Update series informationDELETE /series/{id}
- Delete a seriesGET /series-subscribed
- Get subscribed series onlyPATCH /series/{id}/toggle-subscription
- Toggle series subscriptionPATCH /series/bulk-subscription
- Bulk update subscriptions
Console Commands
Check Feeds
php artisan feeds:check
Manually trigger RSS feed checking and database updates.
Database Schema
Series Table (rss_torrents_series
)
id
- Primary keyname
- Series name (normalized)title
- Display titlefeed_url
- RSS feed URLsubscribed
- Subscription status (boolean)created_at
,updated_at
- Timestampsdeleted_at
- Soft delete timestamp
Episodes Table (rss_torrents_episodes
)
id
- Primary keyseries_id
- Foreign key to seriesepisode_identifier
- Episode identifier (S01E01, date, etc.)title
- Episode titleresolution
- Video resolution (SD, 720p, 1080p)size
- File sizemagnet_url
- Magnet link for downloadcreated_at
,updated_at
- Timestamps
Architecture
Core Classes
RssTorrentsServiceProvider
- Laravel service provider for package registrationRssParser
- Main RSS parsing coordinatorRss
- Base RSS feed handlerEZTV
/NyaaSubsplease
- Feed-specific parsersSeries
/Episode
- Eloquent models with multi-chain supportCheckFeeds
- Console command for feed processing
Feed Processing Flow
- Scheduler runs
feeds:check
command every minute RssParser
retrieves feed URLs and delegates to appropriate parsers- Feed-specific parsers extract torrent information
- Series and episodes are created/updated in database
- API endpoints provide access to processed data
Development
Project Structure
src/
├── Commands/
│ └── CheckFeeds.php # Console command for feed checking
├── Controllers/
│ ├── FeedsController.php # Feed-related API endpoints
│ └── SeriesController.php # Series management endpoints
├── Feeds/
│ ├── EZTV.php # EZTV feed parser
│ └── NyaaSubsplease.php # Nyaa feed parser
├── Models/
│ ├── Episode.php # Episode model
│ └── Series.php # Series model
├── HttpApiCall.php # HTTP client wrapper
├── Rss.php # Base RSS feed class
├── RssParser.php # Main RSS parsing coordinator
└── RssTorrentsServiceProvider.php # Laravel service provider
Adding New Feed Sources
- Create a new class extending
Rss
in theFeeds/
directory - Implement the
getTorrents()
method - Add the feed URL to the
$valid_feeds
static property - Register in
RssParser::getURLs()
License
MIT License
Author
Tim Schwartz
Email: tim@metaverse.systems
Contributing
This package is part of the Clarion App ecosystem. Please follow the project's contribution guidelines when submitting changes.