-
Notifications
You must be signed in to change notification settings - Fork 7
Description
All_downloads counting
Now downloads in GUI is a sum of all downloads for every released version.
pros:
- it's ready and it works - Add download count column to GUI CKAN#2518
- popular old mods > not popular new mods
cons:
-
We can't really compare popularity of 2 mods — age of mods and counts of mods' updates have large influence to all_downloads (but not to popularity)
modA, modB is used by equal amount of people - n:
modA is old — has 200 updates since 0.25
modB in the middle — has 20 updates since 1.3
modC is new — 2 update since 1.4, but is used by 5*n people — "x5 popular"
but all_downloads shows roughly: "modA 200/20=10 times more popular than modB, and 200/2/5=20 times more popular than modC" ... -
enormous latency — for a new mod to be qualified as popular is not about quality, but about how long the mod will bouncing around
When Universal Storage II overcome Universal Storage, or SSPEredux overcome SSPE, in few years?
I think they are already popular.
Last versions counting
Another way to measure popularity is to count not all_downloads, but last_version_downloads, or, even better, maximum of 2 last versions downloads.
pros:
- has some latency — fixes a yesterday-release fall — but not an enormous latency
- fix all all_downloads cons, mentioned above — it become closer to "popularity"
- Github API has downloads per version
cons:
- SpaceDock API needs updating (relative - [Improvement] Download counters by version (not by day) in the "Stats" tab KSP-SpaceDock/SpaceDock#185)
- most likely other resource also would need API updating — not everything is like a Github
UPD
Last time-period counting
On the NetKAN-bot side save all_downloads values every day in a separate file and calculate downloads for the last week or month or few month as difference of numbers in corresponding files, and maybe allow users to switch that.
One still can spam a new version every day for "popularity", but is fixes enormous latency problem, and do not require any API changes.