minor fixes
This commit is contained in:
59
docs/Discover/most-downloaded.md
Normal file
59
docs/Discover/most-downloaded.md
Normal file
@@ -0,0 +1,59 @@
|
||||
# Most Downloaded
|
||||
|
||||
## Route
|
||||
|
||||
- URL: `GET /discover/most-downloaded`
|
||||
- Controller: `App\Http\Controllers\Web\DiscoverController::mostDownloaded()`
|
||||
- Service: `App\Services\ArtworkSearchService::discoverMostDownloaded()`
|
||||
|
||||
## What the page reads
|
||||
|
||||
This page is Meilisearch-ranked and then hydrated from MySQL.
|
||||
|
||||
## Search query
|
||||
|
||||
`discoverMostDownloaded()` uses:
|
||||
|
||||
- filter: `is_public = true AND is_approved = true`
|
||||
- sort:
|
||||
- `downloads:desc`
|
||||
- `views:desc`
|
||||
|
||||
In the indexed document:
|
||||
|
||||
- `downloads` is sourced from `artwork_stats.downloads`
|
||||
- `views` is sourced from `artwork_stats.views`
|
||||
|
||||
This is therefore an all-time leaderboard, not a rolling-window leaderboard.
|
||||
|
||||
## Where the download counts come from
|
||||
|
||||
Downloads are recorded in two places:
|
||||
|
||||
1. `artwork_downloads`
|
||||
- full event log of each tracked download
|
||||
2. `artwork_stats.downloads`
|
||||
- all-time aggregate counter used by this page
|
||||
|
||||
The page sorts on the aggregate counter, not by counting the event log live.
|
||||
|
||||
## Background jobs and schedules
|
||||
|
||||
No dedicated page-specific cron exists.
|
||||
|
||||
Relevant active maintenance:
|
||||
|
||||
- `skinbase:flush-redis-stats` every 5 minutes
|
||||
- pushes deferred Redis counters into MySQL
|
||||
|
||||
Window reset commands exist too, but they maintain `downloads_24h` and `downloads_7d` rather than the all-time `downloads` column used by this page.
|
||||
|
||||
## Cache behavior
|
||||
|
||||
- Cache key: `discover.most-downloaded.{page}`
|
||||
- TTL: 300 seconds
|
||||
|
||||
## Notes
|
||||
|
||||
- This page is separate from `Today Downloads`.
|
||||
- If you need "what is hot today by download activity," use the dedicated `/downloads/today` page instead.
|
||||
Reference in New Issue
Block a user