Friendica Communications Platform
(please note that this is a clone of the repository at github, issues are handled there)
https://friendi.ca
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.3 KiB
57 lines
1.3 KiB
<?php |
|
/** |
|
* @file src/Worker/SpoolPost.php |
|
* @brief Posts items that wer spooled because they couldn't be posted. |
|
*/ |
|
namespace Friendica\Worker; |
|
|
|
use Friendica\Core\Logger; |
|
use Friendica\Model\Item; |
|
|
|
class SpoolPost { |
|
public static function execute() { |
|
$path = get_spoolpath(); |
|
|
|
if (($path != '') && is_writable($path)){ |
|
if ($dh = opendir($path)) { |
|
while (($file = readdir($dh)) !== false) { |
|
|
|
// It is not named like a spool file, so we don't care. |
|
if (substr($file, 0, 5) != "item-") { |
|
continue; |
|
} |
|
|
|
$fullfile = $path."/".$file; |
|
|
|
// We don't care about directories either |
|
if (filetype($fullfile) != "file") { |
|
continue; |
|
} |
|
|
|
// We can't read or write the file? So we don't care about it. |
|
if (!is_writable($fullfile) || !is_readable($fullfile)) { |
|
continue; |
|
} |
|
|
|
$arr = json_decode(file_get_contents($fullfile), true); |
|
|
|
// If it isn't an array then it is no spool file |
|
if (!is_array($arr)) { |
|
continue; |
|
} |
|
|
|
// Skip if it doesn't seem to be an item array |
|
if (!isset($arr['uid']) && !isset($arr['uri']) && !isset($arr['network'])) { |
|
continue; |
|
} |
|
|
|
$result = Item::insert($arr); |
|
|
|
Logger::log("Spool file ".$file." stored: ".$result, Logger::DEBUG); |
|
unlink($fullfile); |
|
} |
|
closedir($dh); |
|
} |
|
} |
|
} |
|
}
|
|
|