summaryrefslogtreecommitdiffstats
path: root/lib/class
diff options
context:
space:
mode:
authorKarl 'vollmerk' Vollmer <vollmer@ampache.org>2008-03-17 03:29:49 +0000
committerKarl 'vollmerk' Vollmer <vollmer@ampache.org>2008-03-17 03:29:49 +0000
commitbcc834d7fdabd0f52873a4f7696e065e3cf0f281 (patch)
treee28de4e85f40aaabae0a9263bc37346a8666e915 /lib/class
parent27437304248e6d8fd44c2b997673ea112e08afa8 (diff)
downloadampache-bcc834d7fdabd0f52873a4f7696e065e3cf0f281.tar.gz
ampache-bcc834d7fdabd0f52873a4f7696e065e3cf0f281.tar.bz2
ampache-bcc834d7fdabd0f52873a4f7696e065e3cf0f281.zip
flush out the democratic mojo, make the cooldown work
Diffstat (limited to 'lib/class')
-rw-r--r--lib/class/democratic.class.php27
-rw-r--r--lib/class/stats.class.php27
-rw-r--r--lib/class/update.class.php2
3 files changed, 53 insertions, 3 deletions
diff --git a/lib/class/democratic.class.php b/lib/class/democratic.class.php
index cebb3272..e91abb45 100644
--- a/lib/class/democratic.class.php
+++ b/lib/class/democratic.class.php
@@ -26,6 +26,13 @@
*/
class Democratic extends tmpPlaylist {
+ public $name;
+ public $cooldown;
+ public $level;
+ public $user;
+ public $primary;
+ public $base_playlist;
+
// Build local, buy local
public $tmp_playlist;
@@ -248,7 +255,7 @@ class Democratic extends tmpPlaylist {
// We have to get all because of the pysco sorting
$items = self::get_items();
- if (count($items)) {
+ if (count($items) > $offset) {
$array = array_slice($items,$offset,1);
$item = array_shift($array);
$results['object_id'] = $item['0'];
@@ -283,7 +290,7 @@ class Democratic extends tmpPlaylist {
$object_id = Dba::escape($object_id);
$object_type = $object_type ? Dba::escape($object_type) : 'song';
- $tmp_id = Dba::escape($this->id);
+ $tmp_id = Dba::escape($this->tmp_playlist);
$sql = "SELECT `tmp_playlist_data`.`id` FROM `tmp_playlist_data` WHERE `object_type`='$object_type' AND " .
"`tmp_playlist`='$tmp_id' AND `object_id`='$object_id'";
@@ -296,6 +303,22 @@ class Democratic extends tmpPlaylist {
} // get_uid_from_object_id
/**
+ * get_cool_songs
+ * This returns all of the song_ids for songs that have happened within the last 'cooldown'
+ * for this user.
+ */
+ public function get_cool_songs() {
+
+ // Convert cooldown time to a timestamp in the past
+ $cool_time = time() - ($this->cooldown * 60);
+
+ $song_ids = Stats::get_object_history($GLOBALS['user']->id,$cool_time);
+
+ return $song_ids;
+
+ } // get_cool_songs
+
+ /**
* vote
* This function is called by users to vote on a system wide playlist
* This adds the specified objects to the tmp_playlist and adds a 'vote'
diff --git a/lib/class/stats.class.php b/lib/class/stats.class.php
index 0c8a69cd..9f5cfdae 100644
--- a/lib/class/stats.class.php
+++ b/lib/class/stats.class.php
@@ -90,6 +90,33 @@ class Stats {
} // get_last_song
/**
+ * get_object_history
+ * This returns the objects that have happened for $user_id sometime after $time
+ * used primarly by the democratic cooldown code
+ */
+ public static function get_object_history($user_id='',$time) {
+
+ $user_id = $user_id ? $user_id : $GLOBALS['user']->id;
+
+ $user_id = Dba::escape($user_id);
+
+ $time = Dba::escape($time);
+
+ $sql = "SELECT * FROM `object_count` WHERE `user`='$user_id' AND `object_type`='song' AND `date`>='$time' " .
+ "ORDER BY `date` DESC";
+ $db_results = Dba::query($sql);
+
+ $results = array();
+
+ while ($row = Dba::fetch_assoc($db_results)) {
+ $results[] = $row['object_id'];
+ }
+
+ return $results;
+
+ } // get_object_history
+
+ /**
* get_top
* This returns the top X for type Y from the
* last conf('stats_threshold') days
diff --git a/lib/class/update.class.php b/lib/class/update.class.php
index 4d21c958..7127f1d5 100644
--- a/lib/class/update.class.php
+++ b/lib/class/update.class.php
@@ -267,7 +267,7 @@ class Update {
'- Alter tmp_playlist to account for Democratic changes.<br />' .
'- Cleared Existing Democratic playlists due to changes.<br />';
-// $version[] = array('version' => '340016','description'=>$update_string);
+ $version[] = array('version' => '340016','description'=>$update_string);
return $version;