Evolvescore2 is a scoring script for Amarok 1.x. It always bothered me that songs are only scored when you listen to them. I think songs should be decreased when you *don't* listen to them. That's why I wrote this script. Now everytime you listen to a song, the score increases by the number of minutes "n" you listened to the song. Then "n" random songs' score is decreased by 1 point.
The average score over all songs is therefore always conserved. New songs or songs with a score of 0 start out with a score of 50. The script includes handling of boundary conditions, that means no song ever gets below 0 or above 100. So why don't I just substract n/totaltracks from every song? Because I'm using dcops "set-score-by-path" function and doing so can take a very long time if your collection is big. The beauty of this script is, that the longer you use it, the better your score gets (IMHO).
Product's homepage
Requirements:
· Python
· python-sqlite
· SQLite
· amaroK
What's New in This Release: [ read full changelog ]
· The function to increase listened tracks has been changed from newscore = oldscore + minutes to the more complex newscore = oldscore + (100-oldscore) * minutes / (minutes + 15); this makes it harder to get really high scores.
· The decrease has been changed to decreasing ((newscore - oldscore) * 10) random tracks by a value of 0.1. This makes the decrease-distribution less arbitrary.