phpcomposeryggdrasilbittorrentjs-lessalt-websymfonysphinxsocial-networkcatalogtorrentmagnetwikidistributedfederatedsqlitetracker
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.
78 lines
1.6 KiB
78 lines
1.6 KiB
1 year ago
|
<?php
|
||
|
|
||
|
// Lock multi-thread execution
|
||
|
$semaphore = sem_get(crc32('yggtracker.crontab.sitemap'), 1);
|
||
|
|
||
|
if (false === sem_acquire($semaphore, true)) {
|
||
|
|
||
|
exit (PHP_EOL . 'yggtracker.crontab.sitemap process locked by another thread.' . PHP_EOL);
|
||
|
}
|
||
|
|
||
|
// Load system dependencies
|
||
|
require_once(__DIR__ . '/../config/app.php');
|
||
|
require_once(__DIR__ . '/../library/database.php');
|
||
|
|
||
|
// Init Debug
|
||
|
$debug = [
|
||
|
'time' => [
|
||
|
'ISO8601' => date('c'),
|
||
|
'total' => microtime(true),
|
||
|
],
|
||
|
];
|
||
|
|
||
|
// Connect DB
|
||
|
try {
|
||
|
|
||
|
$db = new Database(DB_HOST, DB_PORT, DB_NAME, DB_USERNAME, DB_PASSWORD);
|
||
|
|
||
|
} catch(Exception $e) {
|
||
|
|
||
|
var_dump($e);
|
||
|
|
||
|
exit;
|
||
|
}
|
||
|
|
||
|
// Begin
|
||
|
try {
|
||
|
|
||
|
// Delete cache
|
||
|
@unlink(__DIR__ . '/../public/sitemap.xml');
|
||
|
|
||
|
if ($handle = fopen(__DIR__ . '/../public/sitemap.xml', 'w+'))
|
||
|
{
|
||
|
|
||
|
fwrite($handle, '<?xml version="1.0" encoding="UTF-8"?>');
|
||
|
fwrite($handle, '<urlset>');
|
||
|
|
||
|
foreach ($db->getMagnets() as $magnet)
|
||
|
{
|
||
|
if ($magnet->public && $magnet->approved)
|
||
|
{
|
||
|
fwrite($handle, sprintf('<url><loc>%s/magnet.php?magnetId=%s</loc></url>', WEBSITE_URL, $magnet->magnetId));
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fwrite($handle, '</urlset>');
|
||
|
fclose($handle);
|
||
|
}
|
||
|
|
||
|
} catch (EXception $e) {
|
||
|
|
||
|
var_dump($e);
|
||
|
}
|
||
|
|
||
|
// Debug output
|
||
|
$debug['time']['total'] = microtime(true) - $debug['time']['total'];
|
||
|
|
||
|
print_r(
|
||
|
array_merge($debug, [
|
||
|
'db' => [
|
||
|
'total' => [
|
||
|
'select' => $db->getDebug()->query->select->total,
|
||
|
'insert' => $db->getDebug()->query->insert->total,
|
||
|
'update' => $db->getDebug()->query->update->total,
|
||
|
'delete' => $db->getDebug()->query->delete->total,
|
||
|
]
|
||
|
]
|
||
|
])
|
||
|
);
|