summaryrefslogtreecommitdiffstats
path: root/lib/song.php
blob: b1d3579d9b28be632bcb6f39850752b374c9a987 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
<?php
/*

 Copyright (c) 2001 - 2006 Ampache.org
 All Rights Reserved

 This program is free software; you can redistribute it and/or
 modify it under the terms of the GNU General Public License
 as published by the Free Software Foundation; either version 2
 of the License, or (at your option) any later version.

 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.

 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

*/

/**
 * Song Library
 * This is for functions that don't make sense in the class because we aren't looking
 * at a specific song... these should be general function that return arrays of songs
 * and the like
 */

/*!
	@function get_songs
	@discussion pass a sql statement, and it gets full song info and returns
		an array of the goods.. can be set to format them as well
*/
function get_songs($sql, $action=0) {

	$db_results = mysql_query($sql, dbh());
	while ($r = mysql_fetch_array($db_results)) {
		$results[] = $r['id'];
	}

	return $results;


} // get_songs

/**
 * get_recently_played
 * This function returns the last X songs that have been played
 * It uses the 'popular' threshold to determine how many to pull
 */
function get_recently_played() { 

	$sql = "SELECT object_count.object_id, object_count.user, object_count.object_type, object_count.date " . 
        	"FROM object_count " .
		"WHERE object_type='song' " . 
        	"ORDER by object_count.date DESC " . 
		"LIMIT " . conf('popular_threshold'); 
	$db_results = mysql_query($sql, dbh()); 

	$results = array(); 

	while ($r = mysql_fetch_assoc($db_results)) { 
		$results[] = $r; 	
	}

	return $results;

} // get_recently_played

/*!
	@function format_song
	@discussion takes a song array and makes it html friendly
*/
function format_song($song) {

	return $song;

} // format_song

/**
 * get_popular_songs
 * This returns the current popular songs
 * @package Stream
 * @catagory Get
 */
function get_popular_songs( $threshold, $type, $user_id = '' ) {

        $dbh = dbh();

        if ( $type == 'your' ) {
                $sql = "SELECT object_id FROM object_count" .
                        " WHERE object_type = 'song'" .
                        " AND userid = '$user_id'" .
                        " ORDER BY count DESC LIMIT $threshold";
        }
        else {
                $sql = "SELECT object_id FROM object_count" .
                        " WHERE object_type = 'song'" .
                        " ORDER BY count DESC LIMIT $threshold";
        }
        
        $db_result = mysql_query($sql, $dbh);
        $songs = array();
        
        while ( $id = mysql_fetch_array($db_result) ) {
                $songs[] = $id[0];
        }
        
        return $songs;  

} // get_popular_songs()


/**
 * get_song_id_from_file
 * This function takes a filename and returns it's best guess for a song id
 */
function get_song_id_from_file($filename) { 

	$filename = sql_escape($filename);

	$sql = "SELECT id FROM song WHERE file LIKE '%$filename'";
	$db_results = mysql_query($sql, dbh());

	$results = mysql_fetch_assoc($db_results);

	return $results['id'];

} // get_song_id_from_file

?>