Recently I have noticed a couple of projects on the Top Downloaded list that have more downloads than views - by a factor of four or five times. I did a simple test and determined that the Download count is increased even if the person cancels the download immediatly after starting it. This makes it very easy to artificially drive up the Download count, as apparently people are doing.
I would like to propose that the Download count only be incremented on completion of the download. Or, that multiple downloads to the same user be counted as a single download. One or both of these proposed changes would make it more difficult to mess with this measurement.
Offline
You are right.
Checking when the file was successfully downloaded might be tricky because as far as I know this is information that Apache send only to the log file and I am not sure if it can be retrieved without having to parse the Apache's access_log. Also, even if we checked for this we could still have people uploading a 10KB project, downloading it multiple times wouldn't take long and it would make it to the top.
We can do what we are doing for the view counter which is counting only 1 view per IP address. However, this has major performance implications since every time we render the project page we need to check on the DB if that IP has already visited the project. As you can imagine the table that stores that is one of the biggest ones and keeps increasing. Doing queries on that table is very CPU intensive.
As I am writing this I am thinking that perhaps we could simply count 1 view per user. This works well for downloads, and not for views, because in order to download a project you need to be logged in. OK, I'll add this to the list of bugs to fix! Thanks for making me think about this :-)
Offline