Joywork/cron/copy.php

157 lines
6.7 KiB
PHP
Raw Normal View History

2026-05-22 20:21:54 +02:00
<?php
set_time_limit(0);
require_once($_SERVER['DOCUMENT_ROOT']."/config.php");
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Документ без названия</title>
</head>
<body>
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE);
$sql = "SELECT * FROM object_photo where photo <> '' and ((NOT photo LIKE '%http://%' AND NOT photo LIKE '%https://%') OR (photo LIKE '%http://joywork.ru%' OR photo LIKE '%https://joywork.ru%'))";
$rez = mysql_query($sql); $j = 0;
$result = SelectelApi::getTokenAndUrl();
$token = $result[0];
$storageUrl = $result[1];
while($obj = mysql_fetch_assoc($rez)) {
if(isset($obj['photo']) && $obj['photo']) {
// может быть новая фотка и старые, уже скопированные - поэтому мы проверяем наличие пути к хранилищу
if (strpos($obj['photo'], "data.joywork.ru") === false) {
$obj['photo'] = str_replace('https://joywork.ru/photos/', '', $obj['photo']);
$obj['photo'] = str_replace('http://joywork.ru/photos/', '', $obj['photo']);
$srcFile = $_SERVER['DOCUMENT_ROOT'] . "/photos/" . $obj['photo'];
echo $obj["id"].": ".$srcFile . " - ";
if (is_file($srcFile)) {
$data_to_send = file_get_contents($srcFile);
if (empty($data_to_send) or stripos($data_to_send, "<html") !== false) {
if (!$_GET['dev']) {
$objectPhotoId = $obj['id'];
$sqlDeletePhoto = "DELETE FROM object_photo WHERE id = $objectPhotoId";
mysql_query($sqlDeletePhoto);
$sqlDeletePhotoLink = "DELETE FROM objects_object_photo WHERE object_photo_id = $objectPhotoId";
mysql_query($sqlDeletePhotoLink);
unlink($srcFile);
}
echo "удалён";
} else {
$strArray = explode(".", $obj['photo']);
$ext = end($strArray);
if ($ext == "pjpeg") {
$ext = "jpeg";
}
if (strlen($ext) > 4) {
str_replace($ext, 'jpg', $obj['photo']);
$ext = 'jpg';
}
//загрузка в Selectel
$r = SelectelApi::uploadFile($storageUrl, $token, $srcFile, $obj['photo'], 'image/'.$ext);
//если выложили в Selectel
if ($r) {
//заменяем путь на новый
$new_path = "https://data.joywork.ru/" . $obj['photo'];
$objectPhotoId = $obj['id'];
$sqlUpdPhoto = "UPDATE object_photo SET photo='$new_path' WHERE id = $objectPhotoId";
mysql_query($sqlUpdPhoto);
//удаляем файл с локального сервера
unlink($srcFile);
} else {
echo "не скопирован в " . $obj['photo'];
}
}
} else {
echo "не файл";
$objectPhotoId = $obj['id'];
$sqlDeletePhoto = "DELETE FROM object_photo WHERE id = $objectPhotoId";
mysql_query($sqlDeletePhoto);
$sqlDeletePhotoLink = "DELETE FROM objects_object_photo WHERE object_photo_id = $objectPhotoId";
mysql_query($sqlDeletePhotoLink);
}
echo "<br>";
}
}
$j++;
}
$sql = "SELECT * FROM objects_plan WHERE img_plan <> 'https://joywork.ru/photos/' and ((NOT img_plan LIKE '%http://%' AND NOT img_plan LIKE '%https://%') OR (img_plan LIKE '%http://joywork.ru%' OR img_plan LIKE '%https://joywork.ru%')) AND img_plan <> '' ORDER BY RAND()";
$rez = mysql_query($sql); $j = 0;
while($obj = mysql_fetch_assoc($rez))
{
if($obj['img_plan']) {
// может быть новая фотка и старые, уже скопированные - поэтому мы проверяем наличие пути к хранилищу
if (strpos($obj['img_plan'], "data.joywork.ru") === false && $obj['img_plan'] != 'https://joywork.ru/photos/' && $obj['img_plan'] != 'http://joywork.ru/photos/') {
$obj['img_plan'] = str_replace('https://joywork.ru/photos/', '', $obj['img_plan']);
$obj['img_plan'] = str_replace('http://joywork.ru/photos/', '', $obj['img_plan']);
$srcFile = $_SERVER['DOCUMENT_ROOT'] . "/photos/" . $obj['img_plan'];
echo $obj["object_id"].": ".$srcFile . " - ";
if (is_file($srcFile)) {
$data_to_send = file_get_contents($srcFile);
if (empty($data_to_send) or stripos($data_to_send, "<html") !== false) {
if (!$_GET['dev']) {
$sql = "UPDATE objects_plan SET img_plan='' WHERE object_id=$obj[object_id]";
mysql_query($sql);
unlink($srcFile);
}
echo "удалён";
} else {
$strArray = explode(".", $obj['img_plan']);
$ext = end($strArray);
if ($ext == "pjpeg") {
$ext = "jpeg";
}
if (strlen($ext) > 4) {
str_replace($ext, 'jpg', $obj['img_plan']);
$ext = 'jpg';
}
//загрузка в Selectel
$r = SelectelApi::uploadFile($storageUrl, $token, $srcFile, $obj['img_plan'], 'image/'.$ext);
//если выложили в Selectel
if ($r) {
//заменяем путь на новый
$new_path = "https://data.joywork.ru/" . $obj['img_plan'];
$sql = "UPDATE objects_plan SET img_plan='$new_path' WHERE object_id=$obj[object_id]";
mysql_query($sql);
//удаляем файл с локального сервера
unlink($srcFile);
} else {
echo "не скопирован в " . $obj['photo'];
}
}
} else {
echo "не файл";
$sql = "UPDATE objects_plan SET img_plan='' WHERE object_id=$obj[object_id]";
mysql_query($sql);
}
echo "<br>";
}
}
}
?>
</body>
</html>