beta: media import

This commit is contained in:
Mitsukarenai 2013-06-17 12:22:29 +02:00
parent ff4fae57e9
commit a840a715e6

View file

@ -550,6 +550,45 @@ class VroumVroum_Blog
}
}
// MEDIA IMPORT PROCESSING
if(file_exists('import.json'))
{
if(!file_exists('import.lock'))
{
$json = json_decode(file_get_contents('import.json'), true);
$count = count($json['files']);
file_put_contents('import.lock', $count); /* one-process locking */
$remoteurl = $json['url'];
if (!file_exists('media')) { mkdir('media'); }
$time = time();
$maxtime = $time + 3; /* max exec time: 3 seconds */
while ($time <= $maxtime)
{
$file = array_shift($json['files']); /* get first element while unstacking */
if(!empty($file))
{ copy($remoteurl.$file, "media/$file"); file_put_contents('import.json', json_encode($json)); } /* TOCHECK: get_headers() & filesize() when header "content-lenght" */
else { unlink('import.json'); } /* first element empty: import finished */
$time = time();
}
$count = count($json['files']);
unlink('import.lock');
}
/* return import information page */ ?>
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<meta http-equiv="Refresh" content="1">
<title>Autoblog media import</title>
</head>
<body>
Import running: <?php if(isset($count)) { echo $count; } else { echo file_get_contents('import.lock'); } ?> files remaining.<br>
The page should refresh every second. If not, <a href="javascript:window.location.reload()">refresh manually</a>.
</body>
</html>
<?php exit;}
// DISPLAY AND CONTROLLERS
$vvb = new VroumVroum_Blog;