public static function checkAuth($auth) { if (is_array($auth)) { if (isset($auth['auth'])) { $auth = $auth['auth']; } else { return false; } } //remove old sessions $query = OC_DB::prepare("DELETE from *PREFIX*media_sessions WHERE start<(NOW()-600)"); $query->execute(); $query = OC_DB::prepare("SELECT user_id from *PREFIX*media_sessions WHERE token=?"); $users = $query->execute(array($auth))->fetchAll(); if (count($users) > 0) { OC_MEDIA_COLLECTION::$uid = $users[0]['user_id']; return $users[0]['user_id']; } else { return false; } }
$arguments = $_GET; } foreach ($arguments as &$argument) { $argument = stripslashes($argument); } @ob_clean(); if (!isset($arguments['artist'])) { $arguments['artist'] = 0; } if (!isset($arguments['album'])) { $arguments['album'] = 0; } if (!isset($arguments['search'])) { $arguments['search'] = ''; } OC_MEDIA_COLLECTION::$uid = OC_User::getUser(); if ($arguments['action']) { switch ($arguments['action']) { case 'delete': $path = $arguments['path']; OC_MEDIA_COLLECTION::deleteSongByPath($path); $paths = explode(PATH_SEPARATOR, OC_Preferences::getValue(OC_User::getUser(), 'media', 'paths', '')); if (array_search($path, $paths) !== false) { unset($paths[array_search($path, $paths)]); OC_Preferences::setValue(OC_User::getUser(), 'media', 'paths', implode(PATH_SEPARATOR, $paths)); } case 'get_collection': $data = array(); $data['artists'] = OC_MEDIA_COLLECTION::getArtists(); $data['albums'] = OC_MEDIA_COLLECTION::getAlbums(); $data['songs'] = OC_MEDIA_COLLECTION::getSongs();
} foreach ($arguments as &$argument) { $argument = stripslashes($argument); } @ob_clean(); if (!isset($arguments['artist'])) { $arguments['artist'] = 0; } if (!isset($arguments['album'])) { $arguments['album'] = 0; } if (!isset($arguments['search'])) { $arguments['search'] = ''; } session_write_close(); OC_MEDIA_COLLECTION::$uid = OCP\USER::getUser(); if ($arguments['action']) { switch ($arguments['action']) { case 'delete': $path = $arguments['path']; OC_MEDIA_COLLECTION::deleteSongByPath($path); $paths = explode(PATH_SEPARATOR, OCP\Config::getUserValue(OCP\USER::getUser(), 'media', 'paths', '')); if (array_search($path, $paths) !== false) { unset($paths[array_search($path, $paths)]); OCP\Config::setUserValue(OCP\USER::getUser(), 'media', 'paths', implode(PATH_SEPARATOR, $paths)); } case 'get_collection': $data = array(); $data['artists'] = OC_MEDIA_COLLECTION::getArtists(); $data['albums'] = OC_MEDIA_COLLECTION::getAlbums(); $data['songs'] = OC_MEDIA_COLLECTION::getSongs();
/** * Get the list of songs that (optionally) match an artist and/or album and/or search string * @param integer artist optional * @param integer album optional * @param string search optional * @return array the list of songs found */ public static function getSongs($artist = 0, $album = 0, $search = '', $exact = false) { $uid = self::$uid; if (empty($uid)) { $uid = self::$uid = $_SESSION['user_id']; } $params = array($uid); if ($artist != 0) { $artistString = "AND song_artist = ?"; array_push($params, $artist); } else { $artistString = ''; } if ($album != 0) { $albumString = "AND song_album = ?"; array_push($params, $album); } else { $albumString = ''; } if ($search) { if (!$exact) { $search = "%{$search}%"; } $searchString = "AND song_name LIKE ?"; array_push($params, $search); } else { $searchString = ''; } $query = OC_DB::prepare("SELECT * FROM *PREFIX*media_songs WHERE song_user=? {$artistString} {$albumString} {$searchString}"); return $query->execute($params)->fetchAll(); }
* GNU AFFERO GENERAL PUBLIC LICENSE for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library. If not, see <http://www.gnu.org/licenses/>. * */ $_POST = $_GET; //debug require_once '../../lib/base.php'; OC_JSON::checkAppEnabled('media'); require_once 'lib_collection.php'; $user = isset($_POST['user']) ? $_POST['user'] : ''; $pass = isset($_POST['pass']) ? $_POST['pass'] : ''; if (OC_User::checkPassword($user, $pass)) { OC_Util::setupFS($user); OC_MEDIA_COLLECTION::$uid = $user; } else { exit; } if (isset($_POST['play']) and $_POST['play'] == 'true') { if (!isset($_POST['song'])) { exit; } $song = OC_MEDIA_COLLECTION::getSong($_POST['song']); $ftype = OC_Filesystem::getMimeType($song['song_path']); header('Content-Type:' . $ftype); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . OC_Filesystem::filesize($song['song_path'])); OC_Filesystem::readfile($song['song_path']);
public static function checkAuth($auth) { if (is_array($auth)) { if (isset($auth['auth'])) { $auth = $auth['auth']; } else { return false; } } $CONFIG_DBTYPE = OCP\Config::getSystemValue("dbtype", "sqlite"); if ($CONFIG_DBTYPE == 'psql') { $interval = ' \'600s\'::interval '; } else { $interval = '600'; } //remove old sessions $query = OCP\DB::prepare("DELETE FROM `*PREFIX*media_sessions` WHERE `start`<(NOW() - " . $interval . ")"); $query->execute(); $query = OCP\DB::prepare("SELECT `user_id` FROM `*PREFIX*media_sessions` WHERE `token`=?"); $users = $query->execute(array($auth))->fetchAll(); if (count($users) > 0) { OC_MEDIA_COLLECTION::$uid = $users[0]['user_id']; OC_User::setUserId($users[0]['user_id']); return $users[0]['user_id']; } else { return false; } }