This repository has been archived on 2024-06-26. You can view files and clone it, but cannot push or open issues or pull requests.
sakura/main/imageserve.php

146 lines
4.5 KiB
PHP
Raw Normal View History

2015-04-01 15:46:10 +00:00
<?php
/*
* Sakura user image serving
*/
// Declare Namespace
namespace Sakura;
2015-07-30 01:12:53 +00:00
// Define that this page won't require templating
define('SAKURA_NO_TPL', true);
2015-04-01 15:46:10 +00:00
// Include components
2015-04-06 16:15:20 +00:00
require_once str_replace(basename(__DIR__), '', dirname(__FILE__)) .'_sakura/sakura.php';
2015-04-01 15:46:10 +00:00
// Set Content type
header('Content-Type: application/octet-stream');
2015-06-04 12:41:55 +00:00
// Path to user uploads
$userDirPath = ROOT . Configuration::getConfig('user_uploads') . '/';
2015-06-04 12:41:55 +00:00
2015-04-01 15:46:10 +00:00
// Check if the m(ode) GET request is set
if(isset($_GET['m'])) {
2015-05-03 21:43:25 +00:00
2015-04-01 15:46:10 +00:00
switch($_GET['m']) {
2015-05-03 21:43:25 +00:00
2015-04-01 15:46:10 +00:00
case 'avatar':
2015-05-03 21:43:25 +00:00
// Set paths
$noAvatar = ROOT . Configuration::getConfig('no_avatar_img');
$deactiveAvatar = ROOT . Configuration::getConfig('deactivated_avatar_img');
$bannedAvatar = ROOT . Configuration::getConfig('banned_avatar_img');
2015-04-01 15:46:10 +00:00
// If ?u= isn't set or if it isn't numeric
2015-06-19 16:12:44 +00:00
if(!isset($_GET['u']) || !is_numeric($_GET['u']) || $_GET['u'] == 0) {
2015-04-01 15:46:10 +00:00
$serveImage = $noAvatar;
break;
}
2015-04-27 16:30:31 +00:00
// Get user data
$user = Users::getUser($_GET['u']);
// If user is deactivated use deactive avatar
if(Users::checkIfUserHasRanks([0, 1], $user, true)) {
$serveImage = $deactiveAvatar;
break;
}
// Check if user is banned
2015-08-09 18:26:01 +00:00
if(Bans::checkBan($_GET['u'])) {
2015-04-27 16:30:31 +00:00
$serveImage = $bannedAvatar;
break;
}
// Check if user has an avatar set
2015-06-28 14:43:46 +00:00
if(empty($user['userData']['userAvatar']) || !file_exists($userDirPath . $user['userData']['userAvatar'])) {
2015-04-27 16:30:31 +00:00
$serveImage = $noAvatar;
break;
}
2015-04-01 15:46:10 +00:00
// Check if the avatar exist and assign it to a value
2015-06-28 14:43:46 +00:00
$serveImage = $userDirPath . $user['userData']['userAvatar'];
2015-04-27 16:30:31 +00:00
break;
2015-05-03 21:43:25 +00:00
2015-04-01 15:46:10 +00:00
case 'background':
2015-05-03 21:43:25 +00:00
// Set paths
$noBackground = ROOT . Configuration::getConfig('no_background_img');
2015-04-01 15:46:10 +00:00
// If ?u= isn't set or if it isn't numeric
if(!isset($_GET['u']) || !is_numeric($_GET['u'])) {
$serveImage = $noBackground;
break;
}
2015-05-03 21:43:25 +00:00
// Get user data
$user = Users::getUser($_GET['u']);
2015-06-04 12:41:55 +00:00
// If user is deactivated use deactive avatar
if(Users::checkIfUserHasRanks([0, 1], $user, true)) {
$serveImage = $noBackground;
break;
}
// Check if user is banned
2015-08-09 18:26:01 +00:00
if(Bans::checkBan($_GET['u'])) {
2015-06-04 12:41:55 +00:00
$serveImage = $noBackground;
break;
}
// Check if user has a background set
2015-06-28 14:43:46 +00:00
if(empty($user['userData']['profileBackground']) || !file_exists($userDirPath . $user['userData']['profileBackground'])) {
2015-06-04 12:41:55 +00:00
$serveImage = $noBackground;
break;
}
// Check if the avatar exist and assign it to a value
2015-06-28 14:43:46 +00:00
$serveImage = $userDirPath . $user['userData']['profileBackground'];
2015-06-04 12:41:55 +00:00
break;
case 'header':
// Set paths
$noHeader = ROOT . Configuration::getConfig('no_header_img');
2015-06-04 12:41:55 +00:00
// If ?u= isn't set or if it isn't numeric
if(!isset($_GET['u']) || !is_numeric($_GET['u'])) {
$serveImage = $noHeader;
break;
}
// Get user data
$user = Users::getUser($_GET['u']);
// If user is deactivated use deactive avatar
if(Users::checkIfUserHasRanks([0, 1], $user, true)) {
$serveImage = $noHeader;
break;
}
// Check if user is banned
2015-08-09 18:26:01 +00:00
if(Bans::checkBan($_GET['u'])) {
2015-06-04 12:41:55 +00:00
$serveImage = $noHeader;
break;
}
// Check if user has a background set
2015-06-28 14:43:46 +00:00
if(empty($user['userData']['profileHeader']) || !file_exists($userDirPath . $user['userData']['profileHeader'])) {
2015-06-04 12:41:55 +00:00
$serveImage = $noHeader;
2015-05-03 21:43:25 +00:00
break;
}
2015-04-01 15:46:10 +00:00
// Check if the avatar exist and assign it to a value
2015-06-28 14:43:46 +00:00
$serveImage = $userDirPath . $user['userData']['profileHeader'];
2015-04-27 16:30:31 +00:00
break;
2015-05-03 21:43:25 +00:00
2015-04-01 15:46:10 +00:00
default:
$serveImage = ROOT . Configuration::getConfig('pixel_img');
2015-05-03 21:43:25 +00:00
2015-04-01 15:46:10 +00:00
}
2015-05-03 21:43:25 +00:00
} else
$serveImage = ROOT . Configuration::getConfig('pixel_img');
2015-04-01 15:46:10 +00:00
$serveImage = file_get_contents($serveImage);
2015-08-10 19:09:47 +00:00
header('Content-Type: '. getimagesizefromstring($serveImage)['mime']);
2015-04-01 15:46:10 +00:00
print $serveImage;