Файл: adultscript-2.0.3-pro/files/modules/video/helpers/thumb.php
Строк: 105
<?php
defined('_VALID') or die('Restricted Access!');
class VHelper_video_thumb
{
public static function upload($video_id, $thumbs=0, $sizes = array(), $def_size = null)
{
$conn_id = self::connect($video_id);
if ($conn_id) {
$dir = path($video_id);
$uploaded = 0;
$thumbs = ($thumbs === 0) ? 20 : $thumbs;
foreach ($sizes as $size => $value) {
for ($thumb=1; $thumb<=$thumbs; $thumb++) {
$src = ($size == $def_size)
? MEDIA_DIR.'/videos/tmb/'.$dir.'/'.$thumb.'.jpg'
: MEDIA_DIR.'/videos/tmb/'.$dir.'/'.$thumb.'.'.$size.'.jpg';
$dst = ($size == $def_size) ? $thumb.'.jpg' : $thumb.'.'.$size.'.jpg';
if (file_exists($src) && is_file($src) && is_readable($src)) {
if (ftp_put($conn_id, $dst, $src, FTP_BINARY)) {
if (ftp_site($conn_id, sprintf('CHMOD %u %s', 777, $dst))) {
++$uploaded;
}
}
}
}
}
$src = MEDIA_DIR.'/videos/tmb/'.path($video_id).'/player.jpg';
$dst = 'player.jpg';
if (file_exists($src) && is_file($src) && is_readable($src)) {
if (ftp_put($conn_id, $dst, $src, FTP_BINARY)) {
if (ftp_site($conn_id, sprintf('CHMOD %u %s', 777, $dst))) {
++$uploaded;
}
}
}
ftp_close($conn_id);
$thumbs = $thumbs*count($sizes);
return ($uploaded === ($thumbs+1)) ? true : false;
}
}
public static function upload_player($video_id)
{
$conn_id = self::connect($video_id);
if ($conn_id) {
$src = MEDIA_DIR.'/videos/tmb/'.path($video_id).'/player.jpg';
$dst = 'player.jpg';
if (file_exists($src) && is_file($src) && is_readable($src)) {
if (ftp_put($conn_id, $dst, $src, FTP_BINARY)) {
if (ftp_site($conn_id, sprintf('CHMOD %u %s', 777, $dst))) {
$uploaded = true;
}
}
}
ftp_close($conn_id);
return (isset($uploaded)) ? true : false;
}
}
public static function delete($video_id, $thumbs=0, $sizes = array(), $def_size = null)
{
$conn_id = self::connect($video_id);
if ($conn_id) {
$dir = path($video_id);
$thumbs = ($thumbs === 0) ? 20 : $thumbs;
foreach ($sizes as $size => $value) {
for ($thumb=1; $thumb<=$thumbs; $thumb++) {
$thumb = ($size == $def_size) ? $thumb.'.jpg' : $thumb.'.'.$size.'.jpg';
@ftp_delete($thumb);
}
}
ftp_close($conn_id);
}
}
private static function connect($video_id)
{
self::log($video_id, 'Initializing thumb server ...');
$host = VCfg::get('video.thumb_host');
$port = VCfg::get('video.thumb_port');
$username = VCfg::get('video.thumb_user');
$password = VCfg::get('video.thumb_pass');
$root = VCfg::get('video.thumb_root');
$conn_id = ftp_connect($host, $port);
if (!$conn_id) {
self::log($video_id, 'Failed to connect to FTP server!');
return FALSE;
}
if (!ftp_login($conn_id, $username, $password)) {
self::log($video_id, 'Failed to login to FTP server!');
return FALSE;
}
// lets make sure base root does not contain a /
if ($root == '') {
$root = 'media/videos/tmb';
} else {
if (substr($root, -1) == '/') {
$root = substr($root, 0, -1);
}
if ($root{0} == '/') {
$root = substr($root, 1);
}
$root = $root.'/media/videos/tmb';
}
if (!ftp_chdir($conn_id, $root)) {
self::log($video_id, 'Failed to chdir to '.$root);
return FALSE;
}
$dir = path($video_id);
$cur = ftp_pwd($conn_id);
if (!@ftp_chdir($conn_id, $dir)) {
$dirs = explode('/', $dir);
foreach ($dirs as $folder) {
if (!@ftp_chdir($conn_id, $folder)) {
@ftp_mkdir($conn_id, $folder);
@ftp_chdir($conn_id, $folder);
}
}
}
if (isset($cur[0]) && $cur[0] != '/') {
$cur = '/'.$cur;
}
ftp_chdir($conn_id, $cur);
if (!@ftp_chdir($conn_id, $dir)) {
self::log($video_id, 'Failed to create thumb folder ('.$cur.'/'.$dir.'!');
ftp_close($conn_id);
return false;
}
return $conn_id;
}
private static function log($video_id, $data)
{
file_put_contents(TMP_DIR.'/logs/'.$video_id.'.log', $data."n", FILE_APPEND);
}
}