mirror of
https://github.com/YGGverse/YGGtracker.git
synced 2026-04-01 01:25:39 +00:00
implement node info page
This commit is contained in:
parent
96a03ec4ec
commit
f0c8bd968d
9 changed files with 414 additions and 12 deletions
|
|
@ -756,6 +756,8 @@ switch (isset($_GET['target']) ? urldecode($_GET['target']) : false)
|
|||
<a href="<?php echo $value->stats ?>"><?php echo _('Stats') ?></a>
|
||||
|
|
||||
<?php } ?>
|
||||
<a href="<?php echo WEBSITE_URL ?>/info.php"><?php echo _('Info') ?></a>
|
||||
|
|
||||
<a href="<?php echo WEBSITE_URL ?>/index.php?rss"><?php echo _('RSS') ?></a>
|
||||
|
|
||||
<a href="https://github.com/YGGverse/YGGtracker"><?php echo _('GitHub') ?></a>
|
||||
|
|
|
|||
|
|
@ -17,6 +17,10 @@ h1, h2, h3, h4, h5 {
|
|||
font-weight: normal;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
|
@ -71,6 +75,9 @@ input[type="submit"] {
|
|||
cursor: pointer;
|
||||
}
|
||||
|
||||
td {
|
||||
padding: 2px 6px;
|
||||
}
|
||||
|
||||
header a.logo {
|
||||
color: #ccc;
|
||||
|
|
|
|||
|
|
@ -133,11 +133,17 @@
|
|||
padding-top: 4px;
|
||||
padding-bottom: 4px;
|
||||
}
|
||||
|
||||
.padding-x-4 {
|
||||
padding-left: 4px;
|
||||
padding-right: 4px;
|
||||
}
|
||||
|
||||
.padding-x-8 {
|
||||
padding-left: 8px;
|
||||
padding-right: 8px;
|
||||
}
|
||||
|
||||
.padding-8 {
|
||||
padding: 8px;
|
||||
}
|
||||
|
|
@ -155,6 +161,11 @@
|
|||
padding-top: 16px;
|
||||
}
|
||||
|
||||
.padding-y-16 {
|
||||
padding-top: 16px;
|
||||
padding-bottom: 16px;
|
||||
}
|
||||
|
||||
.padding-x-16 {
|
||||
padding-left: 16px;
|
||||
padding-right: 16px;
|
||||
|
|
@ -172,6 +183,10 @@
|
|||
margin-left: 8px;
|
||||
}
|
||||
|
||||
.margin-l-16 {
|
||||
margin-left: 16px;
|
||||
}
|
||||
|
||||
.margin-r-4 {
|
||||
margin-right: 4px;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -201,7 +201,7 @@ else {
|
|||
}
|
||||
|
||||
// Meta
|
||||
if (MAGNET_META_TITLE_MIN_LENGTH <= mb_strlen($_POST['metaTitle']))
|
||||
if (MAGNET_META_TITLE_MIN_LENGTH <= mb_strlen($_POST['metaTitle']) && MAGNET_META_TITLE_MAX_LENGTH >= mb_strlen($_POST['metaTitle']))
|
||||
{
|
||||
$db->updateMagnetMetaTitle($magnet->magnetId, trim(strip_tags(html_entity_decode($_POST['metaTitle']))), time());
|
||||
|
||||
|
|
@ -211,17 +211,17 @@ else {
|
|||
else
|
||||
{
|
||||
$response->form->metaTitle->valid->success = false;
|
||||
$response->form->metaTitle->valid->message = sprintf(_('* required, minimum %s chars'), MAGNET_META_TITLE_MIN_LENGTH);
|
||||
$response->form->metaTitle->valid->message = sprintf(_('* required, minimum %s-%s chars'), MAGNET_META_TITLE_MIN_LENGTH, MAGNET_META_TITLE_MAX_LENGTH);
|
||||
}
|
||||
|
||||
if (MAGNET_META_DESCRIPTION_MIN_LENGTH <= mb_strlen($_POST['metaDescription']))
|
||||
if (MAGNET_META_DESCRIPTION_MIN_LENGTH <= mb_strlen($_POST['metaDescription']) && MAGNET_META_DESCRIPTION_MAX_LENGTH >= mb_strlen($_POST['metaDescription']))
|
||||
{
|
||||
$db->updateMagnetMetaDescription($magnet->magnetId, trim(strip_tags(html_entity_decode($_POST['metaDescription']))), time());
|
||||
}
|
||||
else
|
||||
{
|
||||
$response->form->metaDescription->valid->success = false;
|
||||
$response->form->metaDescription->valid->message = sprintf(_('* required, minimum %s chars'), MAGNET_META_DESCRIPTION_MIN_LENGTH);
|
||||
$response->form->metaDescription->valid->message = sprintf(_('* required, minimum %s-%s chars'), MAGNET_META_DESCRIPTION_MIN_LENGTH, MAGNET_META_DESCRIPTION_MAX_LENGTH);
|
||||
}
|
||||
|
||||
// Social
|
||||
|
|
@ -606,6 +606,8 @@ else {
|
|||
<a href="<?php echo $value->stats ?>"><?php echo _('Stats') ?></a>
|
||||
|
|
||||
<?php } ?>
|
||||
<a href="<?php echo WEBSITE_URL ?>/info.php"><?php echo _('Info') ?></a>
|
||||
|
|
||||
<a href="<?php echo WEBSITE_URL ?>/index.php?rss"><?php echo _('RSS') ?></a>
|
||||
|
|
||||
<a href="https://github.com/YGGverse/YGGtracker"><?php echo _('GitHub') ?></a>
|
||||
|
|
|
|||
|
|
@ -170,7 +170,7 @@ else
|
|||
'metaTitle' => $magnet->metaTitle ? htmlentities($magnet->metaTitle) : ($magnet->dn ? htmlentities($magnet->dn): false),
|
||||
'metaDescription' => $magnet->metaDescription ? nl2br(
|
||||
htmlentities(
|
||||
substr($magnet->metaDescription, 0, WEBSITE_MAGNET_SHORT_META_DESCRIPTION_LENGTH)
|
||||
substr($magnet->metaDescription, 0, MAGNET_META_DESCRIPTION_LENGTH_SHORT)
|
||||
)
|
||||
) : false,
|
||||
'approved' => (bool) $magnet->approved,
|
||||
|
|
@ -452,6 +452,8 @@ echo '<?xml version="1.0" encoding="UTF-8"?>' . PHP_EOL ?>
|
|||
<a href="<?php echo $value->stats ?>"><?php echo _('Stats') ?></a>
|
||||
|
|
||||
<?php } ?>
|
||||
<a href="<?php echo WEBSITE_URL ?>/info.php"><?php echo _('Info') ?></a>
|
||||
|
|
||||
<a href="<?php echo WEBSITE_URL ?>/index.php?rss<?php echo $request->query ? sprintf('&query=%s', urlencode($request->query)) : false ?>"><?php echo _('RSS') ?></a>
|
||||
|
|
||||
<a href="https://github.com/YGGverse/YGGtracker"><?php echo _('GitHub') ?></a>
|
||||
|
|
|
|||
287
src/public/info.php
Normal file
287
src/public/info.php
Normal file
|
|
@ -0,0 +1,287 @@
|
|||
|
||||
<?php
|
||||
|
||||
// Load dependencies
|
||||
require_once (__DIR__ . '/../config/app.php');
|
||||
require_once (__DIR__ . '/../library/database.php');
|
||||
require_once (__DIR__ . '/../../vendor/autoload.php');
|
||||
|
||||
// Connect database
|
||||
try {
|
||||
|
||||
$db = new Database(DB_HOST, DB_PORT, DB_NAME, DB_USERNAME, DB_PASSWORD);
|
||||
|
||||
} catch (Exception $e) {
|
||||
|
||||
var_dump($e);
|
||||
|
||||
exit;
|
||||
}
|
||||
|
||||
// Define response
|
||||
$response = (object)
|
||||
[
|
||||
'success' => true,
|
||||
'message' => _('Internal server error'),
|
||||
];
|
||||
|
||||
// Yggdrasil connections only
|
||||
if (!preg_match(YGGDRASIL_URL_REGEX, $_SERVER['REMOTE_ADDR']))
|
||||
{
|
||||
$response->success = false;
|
||||
$response->message = _('Yggdrasil connection required for this action');
|
||||
}
|
||||
|
||||
// Init session
|
||||
else if (!$userId = $db->initUserId($_SERVER['REMOTE_ADDR'], USER_DEFAULT_APPROVED, time()))
|
||||
{
|
||||
$response->success = false;
|
||||
$response->message = _('Could not init user session');
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
|
||||
// Scrapes
|
||||
$localScrape = (object)
|
||||
[
|
||||
'seeders' => 0,
|
||||
'completed' => 0,
|
||||
'leechers' => 0,
|
||||
];
|
||||
|
||||
$totalScrape = (object)
|
||||
[
|
||||
'seeders' => 0,
|
||||
'completed' => 0,
|
||||
'leechers' => 0,
|
||||
];
|
||||
|
||||
$trackers = [];
|
||||
|
||||
foreach (TRACKER_LINKS as $tracker)
|
||||
{
|
||||
$trackers[] = $tracker->announce;
|
||||
}
|
||||
|
||||
foreach ($db->getMagnets() as $magnet)
|
||||
{
|
||||
foreach ($db->findAddressTrackerByMagnetId($magnet->magnetId) as $magnetToAddressTracker)
|
||||
{
|
||||
if ($addressTracker = $db->getAddressTracker($magnetToAddressTracker->addressTrackerId))
|
||||
{
|
||||
$scheme = $db->getScheme($addressTracker->schemeId);
|
||||
$host = $db->getHost($addressTracker->hostId);
|
||||
$port = $db->getPort($addressTracker->portId);
|
||||
$uri = $db->getUri($addressTracker->uriId);
|
||||
|
||||
$url = $port->value ? sprintf('%s://%s:%s%s', $scheme->value,
|
||||
$host->value,
|
||||
$port->value,
|
||||
$uri->value) : sprintf('%s://%s%s', $scheme->value,
|
||||
$host->value,
|
||||
$uri->value);
|
||||
|
||||
if (in_array($url, $trackers))
|
||||
{
|
||||
$localScrape->seeders += (int) $magnetToAddressTracker->seeders;
|
||||
$localScrape->completed += (int) $magnetToAddressTracker->completed;
|
||||
$localScrape->leechers += (int) $magnetToAddressTracker->leechers;
|
||||
}
|
||||
|
||||
$totalScrape->seeders += (int) $magnetToAddressTracker->seeders;
|
||||
$totalScrape->completed += (int) $magnetToAddressTracker->completed;
|
||||
$totalScrape->leechers += (int) $magnetToAddressTracker->leechers;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en-US">
|
||||
<head>
|
||||
<link rel="stylesheet" type="text/css" href="<?php echo WEBSITE_URL ?>/assets/theme/default/css/common.css?<?php echo WEBSITE_CSS_VERSION ?>" />
|
||||
<link rel="stylesheet" type="text/css" href="<?php echo WEBSITE_URL ?>/assets/theme/default/css/framework.css?<?php echo WEBSITE_CSS_VERSION ?>" />
|
||||
<title>
|
||||
<?php echo sprintf(_('%s instance info'), WEBSITE_NAME) ?>
|
||||
</title>
|
||||
<meta name="robots" content="noindex,nofollow"/>
|
||||
<meta name="author" content="YGGtracker" />
|
||||
<meta charset="UTF-8" />
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<div class="container">
|
||||
<div class="row margin-t-8 text-center">
|
||||
<a class="logo" href="<?php echo WEBSITE_URL ?>"><?php echo str_replace('YGG', '<span>YGG</span>', WEBSITE_NAME) ?></a>
|
||||
<form class="margin-t-8" name="search" method="get" action="<?php echo WEBSITE_URL ?>/index.php">
|
||||
<input type="text" name="query" value="" placeholder="<?php echo _('search or submit magnet link') ?>" />
|
||||
<input type="submit" value="<?php echo _('submit') ?>" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<main>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="column width-100">
|
||||
<div class="padding-y-16 padding-x-8 margin-y-8 border-radius-3 background-color-night">
|
||||
<?php if ($response->success) { ?>
|
||||
<h1 class="padding-x-8 margin-b-16"><?php echo _('Node info') ?></h1>
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="padding-b-8" colspan="2">
|
||||
<h3><?php echo _('Rules') ?></h3>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo _('Subject') ?></td>
|
||||
<td><?php echo _(RULE_SUBJECT) ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo _('Languages') ?></td>
|
||||
<td><?php echo _(RULE_LANGUAGES) ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo _('Yggdrasil only') ?></td>
|
||||
<td><?php echo MAGNET_DOWNLOAD_YGGDRASIL_URL_ONLY ? _('yes') : _('no') ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding-t-16 colspan="2">
|
||||
<h3><?php echo _('Totals') ?></h3>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo _('Users') ?></td>
|
||||
<td><?php echo $db->getUsersTotal() ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo _('Magnets') ?></td>
|
||||
<td><?php echo $db->getMagnetsTotal() ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo _('Comments') ?></td>
|
||||
<td><?php echo $db->getMagnetCommentsTotal() ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo _('Moderators') ?></td>
|
||||
<td><?php echo count(MODERATOR_IP_LIST) ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo _('Seeders') ?></td>
|
||||
<td><?php echo sprintf('%s / %s', $localScrape->seeders, $totalScrape->seeders) ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo _('Peers') ?></td>
|
||||
<td><?php echo sprintf('%s / %s', $localScrape->completed, $totalScrape->completed) ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo _('Leechers') ?></td>
|
||||
<td><?php echo sprintf('%s / %s', $localScrape->leechers, $totalScrape->leechers) ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding-t-16 padding-b-8" colspan="2">
|
||||
<h3><?php echo _('Users') ?></h3>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo _('Identicon') ?></td>
|
||||
<td><?php echo USER_DEFAULT_IDENTICON ? USER_DEFAULT_IDENTICON : _('no') ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo _('Identicon key') ?></td>
|
||||
<td><?php echo USER_IDENTICON_FIELD ? USER_IDENTICON_FIELD : _('undefined') ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo _('Approved by default') ?></td>
|
||||
<td><?php echo USER_DEFAULT_APPROVED ? _('yes') : _('no') ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo _('Auto-approved on magnet approve') ?></td>
|
||||
<td><?php echo USER_AUTO_APPROVE_ON_MAGNET_APPROVE ? _('yes') : _('no') ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo _('Auto-approved on comment approve') ?></td>
|
||||
<td><?php echo USER_AUTO_APPROVE_ON_COMMENT_APPROVE ? _('yes') : _('no') ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding-t-16 padding-b-8" colspan="2">
|
||||
<h3><?php echo _('Magnets') ?></h3>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo _('Approved by default') ?></td>
|
||||
<td><?php echo MAGNET_DEFAULT_APPROVED ? _('yes') : _('no') ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo _('Title length') ?></td>
|
||||
<td><?php echo MAGNET_META_TITLE_MIN_LENGTH ?>-<?php echo MAGNET_META_TITLE_MAX_LENGTH ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo _('Title length') ?></td>
|
||||
<td><?php echo MAGNET_META_DESCRIPTION_MIN_LENGTH ?>-<?php echo MAGNET_META_DESCRIPTION_MAX_LENGTH ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding-t-16 padding-b-8" colspan="2">
|
||||
<h3><?php echo _('Comments') ?></h3>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo _('Approved by default') ?></td>
|
||||
<td><?php echo COMMENT_DEFAULT_APPROVED ? _('yes') : _('no') ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo _('Length') ?></td>
|
||||
<td><?php echo COMMENT_MIN_LENGTH ?>-<?php echo COMMENT_MAX_LENGTH ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding-t-16 padding-b-8" colspan="2">
|
||||
<h3><?php echo _('Trackers') ?></h3>
|
||||
</td>
|
||||
<?php foreach (TRACKER_LINKS as $name => $settings) { ?>
|
||||
<tr>
|
||||
<td><?php echo $name ?></td>
|
||||
</tr>
|
||||
<?php foreach ($settings as $key => $value) { ?>
|
||||
<tr>
|
||||
<td>
|
||||
<span class="margin-l-16"><?php echo $key ?></span>
|
||||
</td>
|
||||
<td><?php echo $value ?></td>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<?php } else { ?>
|
||||
<div class="text-center"><?php echo $response->message ?></div>
|
||||
<?php } ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
<footer>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="column width-100 text-center margin-y-8">
|
||||
<?php foreach (TRACKER_LINKS as $name => $value) { ?>
|
||||
<a href="<?php echo $value->announce ?>"><?php echo $name ?></a>
|
||||
/
|
||||
<a href="<?php echo $value->stats ?>"><?php echo _('Stats') ?></a>
|
||||
|
|
||||
<?php } ?>
|
||||
<a href="<?php echo WEBSITE_URL ?>/info.php"><?php echo _('Info') ?></a>
|
||||
|
|
||||
<a href="<?php echo WEBSITE_URL ?>/index.php?rss"><?php echo _('RSS') ?></a>
|
||||
|
|
||||
<a href="https://github.com/YGGverse/YGGtracker"><?php echo _('GitHub') ?></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -147,7 +147,7 @@ else
|
|||
'metaTitle' => $magnet->metaTitle ? htmlentities($magnet->metaTitle) : ($magnet->dn ? htmlentities($magnet->dn): false),
|
||||
'metaDescription' => $magnet->metaDescription ? nl2br(
|
||||
htmlentities(
|
||||
substr($magnet->metaDescription, 0, WEBSITE_MAGNET_SHORT_META_DESCRIPTION_LENGTH)
|
||||
substr($magnet->metaDescription, 0, MAGNET_META_DESCRIPTION_LENGTH_SHORT)
|
||||
)
|
||||
) : false,
|
||||
'approved' => (bool) $magnet->approved,
|
||||
|
|
@ -517,6 +517,8 @@ echo '<?xml version="1.0" encoding="UTF-8"?>' . PHP_EOL ?>
|
|||
<a href="<?php echo $value->stats ?>"><?php echo _('Stats') ?></a>
|
||||
|
|
||||
<?php } ?>
|
||||
<a href="<?php echo WEBSITE_URL ?>/info.php"><?php echo _('Info') ?></a>
|
||||
|
|
||||
<a href="<?php echo WEBSITE_URL ?>/index.php?rss"><?php echo _('RSS') ?></a>
|
||||
|
|
||||
<a href="https://github.com/YGGverse/YGGtracker"><?php echo _('GitHub') ?></a>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue