171 lines
4.8 KiB
PHP
171 lines
4.8 KiB
PHP
<?php
|
|
|
|
class ps4 {
|
|
|
|
public function dbconf() {
|
|
global $dbconf;
|
|
$dbconf = require "dbconf.php";
|
|
return $dbconf;
|
|
|
|
}
|
|
|
|
function mysql_conn($sql=null) {
|
|
|
|
$db = $this->dbconf();
|
|
|
|
// Create connection
|
|
$conn = new mysqli($db["servername"], $db["username"], $db["password"], $db["dbname"]);
|
|
$conn->set_charset("utf8");
|
|
// Check connection
|
|
if ($conn->connect_error) {
|
|
die("Connection failed: " . $conn->connect_error);
|
|
}
|
|
|
|
if ($sql == null) {
|
|
echo "Error: No SQL Request?";
|
|
$conn->close();
|
|
return null;
|
|
} else {
|
|
$return = $conn->query($sql);
|
|
$conn->close();
|
|
return $return;
|
|
}
|
|
}
|
|
|
|
function playtime($seconds, $text=false) {
|
|
$playtime = null;
|
|
$label = null;
|
|
|
|
if ($seconds < 60) {
|
|
if ($text == true) {
|
|
$label = "second";
|
|
}
|
|
if ($seconds > 1) { $label .= "s"; }
|
|
$playtime = $seconds;
|
|
} else
|
|
if ($seconds/60 < 60) {
|
|
if ($text == true) {
|
|
$label = "minute";
|
|
}
|
|
if ($seconds/60 > 1) { $label .= "s"; }
|
|
$playtime = round($seconds/60,2);
|
|
} else {
|
|
if ($text == true) {
|
|
$label = "hour";
|
|
}
|
|
if ($seconds/60/60 > 1) { $label .= "s"; }
|
|
$playtime = round($seconds/60/60,2);
|
|
}
|
|
|
|
$return = $playtime;
|
|
if ($text == true) { $return = $return ." ". $label; }
|
|
return $return;
|
|
}
|
|
|
|
function secondsToDate($seconds) {
|
|
return date("d/m/Y H:i:s", $seconds/1000);
|
|
}
|
|
|
|
function thumbnailurl($game_id) {
|
|
$result = $this->mysql_conn("SELECT thumbnail_url FROM game_thumbnail WHERE game_id = '". $game_id ."' limit 1;");
|
|
if ($result->num_rows > 0) {
|
|
while ($row = $result->fetch_assoc()) {
|
|
$url = $row["thumbnail_url"];
|
|
}
|
|
} else {
|
|
$url = "images/no-thumbnail.png";
|
|
}
|
|
return $url;
|
|
}
|
|
|
|
function thumbnailupdateurl($gameid,$gamename,$url) {
|
|
$actualurl = $this->thumbnailurl($gameid);
|
|
if ($actualurl == "images/no-thumbnail.png") {
|
|
$sql = "INSERT INTO game_thumbnail (game_id, thumbnail_url) VALUES ('".$gameid."', '".$url."');";
|
|
} else {
|
|
$sql = "UPDATE game_thumbnail SET thumbnail_url = '".$url."' WHERE game_id = '".$gameid."';";
|
|
}
|
|
|
|
if (($url == "") or ($url == "null")) {
|
|
echo "<div class=\"message-error center500\"><div class=\"message-head\">ERROR</div><div class=\"message-details\">No URL specified.</div>";
|
|
} else {
|
|
if ($this->isImage($url)) {
|
|
$result = $this->mysql_conn($sql);
|
|
if ($result == 1) {
|
|
echo "<div class=\"message-success center500\"><div class=\"message-head\">SUCCESS</div><div class=\"message-details\">Updated image URL for <strong>". $gamename ."</strong> (". $gameid .")</div>";
|
|
} else {
|
|
echo "<div class=\"message-error center500\"><div class=\"message-head\">ERROR</div><div class=\"message-details\">Can't update image URL for <strong>". $gamename ."</strong> (". $gameid .")</div>";
|
|
}
|
|
} else {
|
|
echo "<div class=\"message-error center500\"><div class=\"message-head\">ERROR</div><div class=\"message-details\">Not an image.</div>";
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
function isImage($url)
|
|
{
|
|
$params = array('http' => array(
|
|
'method' => 'HEAD'
|
|
));
|
|
$ctx = stream_context_create($params);
|
|
$fp = @fopen($url, 'rb', false, $ctx);
|
|
if (!$fp)
|
|
return false; // Problem with url
|
|
|
|
$meta = stream_get_meta_data($fp);
|
|
if ($meta === false)
|
|
{
|
|
fclose($fp);
|
|
return false; // Problem reading data from url
|
|
}
|
|
|
|
$wrapper_data = $meta["wrapper_data"];
|
|
if(is_array($wrapper_data)){
|
|
foreach(array_keys($wrapper_data) as $hh){
|
|
if (substr($wrapper_data[$hh], 0, 19) == "Content-Type: image") // strlen("Content-Type: image") == 19
|
|
{
|
|
fclose($fp);
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
|
|
fclose($fp);
|
|
return false;
|
|
}
|
|
|
|
function games_reorder($games,$orderby="last_played_desc") {
|
|
function totaltime_asc($a,$b) {
|
|
return ($a["game_total_time"] <= $b["game_total_time"]) ? -1 : 1;
|
|
}
|
|
function totaltime_desc($a,$b) {
|
|
return ($a["game_total_time"] >= $b["game_total_time"]) ? -1 : 1;
|
|
}
|
|
|
|
|
|
function firstplayed_asc($a,$b) {
|
|
return ($a["game_played_first"] <= $b["game_played_first"]) ? -1 : 1;
|
|
}
|
|
function firstplayed_desc($a,$b) {
|
|
return ($a["game_played_first"] >= $b["game_played_first"]) ? -1 : 1;
|
|
}
|
|
|
|
function lastplayed_asc($a,$b) {
|
|
if ($a["game_played_last"] == -1) { $a["game_played_last"] = (round(microtime(true) * 1000)); }
|
|
if ($b["game_played_last"] == -1) { $b["game_played_last"] = (round(microtime(true) * 1000)); }
|
|
return ($a["game_played_last"] <= $b["game_played_last"]) ? -1 : 1;
|
|
}
|
|
function lastplayed_desc($a,$b) {
|
|
if ($a["game_played_last"] == -1) { $a["game_played_last"] = (round(microtime(true) * 1000)); }
|
|
if ($b["game_played_last"] == -1) { $b["game_played_last"] = (round(microtime(true) * 1000)); }
|
|
return ($a["game_played_last"] >= $b["game_played_last"]) ? -1 : 1;
|
|
}
|
|
|
|
usort($games, $orderby);
|
|
return $games;
|
|
}
|
|
|
|
}
|
|
|
|
?>
|