feed:process
Processes the itch.io feed to discover and update game information automatically.
Overview
This command monitors the itch.io public feed for game updates and processes new events to keep the database synchronized with the latest game information. It includes built-in duplicate detection and retry logic for robust operation.
Usage
php artisan feed:process
Options
This command has no specific options. It processes the feed automatically using configured settings.
Processing Logic
The command follows this workflow:
- Fetches latest feed events from itch.io's public feed
- Checks processed events table to avoid duplicate processing
- Stops at first already-processed event to prevent reprocessing
- Processes new events in chronological order
- Updates game information based on event data
- Records processed events to prevent future duplicates
Examples
php artisan feed:process
Processes all new events from the itch.io feed since the last run.
php artisan feed:process -v
Shows detailed processing information including event details and API calls.
php artisan feed:process --quiet
Only shows errors, useful for automated/scheduled execution.
When to Use
Recommended Usage Scenarios
- Scheduled automatic execution (recommended: every 15-30 minutes)
- Manual execution after extended downtime
- Testing feed processing after configuration changes
- Recovering from failed automated runs
Processing Behavior
The feed processor treats all events uniformly and does not differentiate between event types. For every feed event:
| Condition | Action Taken | Data Updated |
| Game exists in database | Refresh version information | Version details, download links, platform support |
| Game not in database | Skip event | None |
Processing Flow
This diagram shows the detailed flow of feed processing:
flowchart TD
A[Start feed:process] --> B[Fetch itch.io Feed]
B --> C[Get Latest Events]
C --> D{More Events?}
D -->|No| E[Complete]
D -->|Yes| F[Check Processed Events Table]
F --> G{Already Processed?}
G -->|Yes| H[Stop Processing]
G -->|No| I{Game Exists in DB?}
I -->|No| J[Skip Event]
I -->|Yes| K[Refresh Version Info]
K --> L[Record Processed Event]
J --> M[Continue to Next Event]
L --> M
M --> D
Related Commands
- games:refresh: Manual game information refresh
- games:refresh-feedless: Update games not in feed