mirror of
https://github.com/torrentpier/torrentpier
synced 2025-08-22 06:13:58 -07:00
Merge branch 'master' into Added-in-build-multitracker
This commit is contained in:
commit
78c114a74b
8 changed files with 150 additions and 1 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -4,6 +4,7 @@
|
||||||
|
|
||||||
### TorrentPier ###
|
### TorrentPier ###
|
||||||
*.log
|
*.log
|
||||||
|
/*.txt
|
||||||
*.integrity
|
*.integrity
|
||||||
install.php_*
|
install.php_*
|
||||||
composer-setup.php
|
composer-setup.php
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
|
|
||||||
- Release 2.4.5 🍧️ ([belomaxorka](https://github.com/belomaxorka))
|
- Release 2.4.5 🍧️ ([belomaxorka](https://github.com/belomaxorka))
|
||||||
- Added in-build multitracker 🌐 [\#1732](https://github.com/torrentpier/torrentpier/pull/1732) ([belomaxorka](https://github.com/belomaxorka))
|
- Added in-build multitracker 🌐 [\#1732](https://github.com/torrentpier/torrentpier/pull/1732) ([belomaxorka](https://github.com/belomaxorka))
|
||||||
|
- Added `IndexNow` protocol support 🤖 [\#1736](https://github.com/torrentpier/torrentpier/pull/1736) ([belomaxorka](https://github.com/belomaxorka))
|
||||||
- Added `TorrentPier instance hash` generation [\#1726](https://github.com/torrentpier/torrentpier/pull/1726) ([belomaxorka](https://github.com/belomaxorka))
|
- Added `TorrentPier instance hash` generation [\#1726](https://github.com/torrentpier/torrentpier/pull/1726) ([belomaxorka](https://github.com/belomaxorka))
|
||||||
- Added `m4a` extension support in M3U playback [\#1724](https://github.com/torrentpier/torrentpier/pull/1724) ([belomaxorka](https://github.com/belomaxorka))
|
- Added `m4a` extension support in M3U playback [\#1724](https://github.com/torrentpier/torrentpier/pull/1724) ([belomaxorka](https://github.com/belomaxorka))
|
||||||
- Created `VersionHelper.php` [\#1731](https://github.com/torrentpier/torrentpier/pull/1731) ([belomaxorka](https://github.com/belomaxorka))
|
- Created `VersionHelper.php` [\#1731](https://github.com/torrentpier/torrentpier/pull/1731) ([belomaxorka](https://github.com/belomaxorka))
|
||||||
|
|
|
@ -57,6 +57,7 @@
|
||||||
"filp/whoops": "^2.15",
|
"filp/whoops": "^2.15",
|
||||||
"z4kn4fein/php-semver": "^v3.0.0",
|
"z4kn4fein/php-semver": "^v3.0.0",
|
||||||
"torrentpier/scrapeer": "^v1.0.0",
|
"torrentpier/scrapeer": "^v1.0.0",
|
||||||
|
"nemorize/indexnow": "^0.0.1",
|
||||||
"gigablah/sphinxphp": "2.0.8",
|
"gigablah/sphinxphp": "2.0.8",
|
||||||
"google/recaptcha": "^1.3",
|
"google/recaptcha": "^1.3",
|
||||||
"jacklul/monolog-telegram": "^3.1",
|
"jacklul/monolog-telegram": "^3.1",
|
||||||
|
|
43
composer.lock
generated
43
composer.lock
generated
|
@ -4,7 +4,7 @@
|
||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "07e69fe785694afdac14bf6e47ae9f05",
|
"content-hash": "9024100c87e72c5ee811638607aa15f5",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "arokettu/bencode",
|
"name": "arokettu/bencode",
|
||||||
|
@ -1987,6 +1987,47 @@
|
||||||
],
|
],
|
||||||
"time": "2024-12-05T17:15:07+00:00"
|
"time": "2024-12-05T17:15:07+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "nemorize/indexnow",
|
||||||
|
"version": "0.0.1",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/nemorize/php-indexnow.git",
|
||||||
|
"reference": "7602a8ae1de0cf1dd11692a7627f10111c55731a"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/nemorize/php-indexnow/zipball/7602a8ae1de0cf1dd11692a7627f10111c55731a",
|
||||||
|
"reference": "7602a8ae1de0cf1dd11692a7627f10111c55731a",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"guzzlehttp/guzzle": "^7.7",
|
||||||
|
"php": ">=8.1"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Nemorize\\Indexnow\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Ji Yong, Kim",
|
||||||
|
"email": "nemo@qroffle.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "PHP library for submitting website URLs using IndexNow to search engines.",
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/nemorize/php-indexnow/issues",
|
||||||
|
"source": "https://github.com/nemorize/php-indexnow/tree/0.0.1"
|
||||||
|
},
|
||||||
|
"time": "2023-07-31T17:08:12+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "nikic/iter",
|
"name": "nikic/iter",
|
||||||
"version": "v2.4.1",
|
"version": "v2.4.1",
|
||||||
|
|
|
@ -127,6 +127,12 @@ $bb_cfg['torr_server'] = [
|
||||||
'disable_for_guest' => true
|
'disable_for_guest' => true
|
||||||
];
|
];
|
||||||
|
|
||||||
|
// IndexNow settings
|
||||||
|
$bb_cfg['indexnow_settings'] = [
|
||||||
|
'enabled' => false,
|
||||||
|
'host' => 'bing', // Available: yandex, bing, seznam, naver
|
||||||
|
];
|
||||||
|
|
||||||
// FAQ url help link
|
// FAQ url help link
|
||||||
$bb_cfg['how_to_download_url_help'] = 'viewtopic.php?t=1'; // How to download?
|
$bb_cfg['how_to_download_url_help'] = 'viewtopic.php?t=1'; // How to download?
|
||||||
$bb_cfg['what_is_torrent_url_help'] = 'viewtopic.php?t=2'; // What is a torrent?
|
$bb_cfg['what_is_torrent_url_help'] = 'viewtopic.php?t=2'; // What is a torrent?
|
||||||
|
|
|
@ -64,6 +64,15 @@ if (empty($bb_cfg['tp_instance_hash']) || ($bb_cfg['tp_instance_hash'] !== hash(
|
||||||
bb_update_config(['tp_instance_hash' => hash('xxh128', FULL_URL)]);
|
bb_update_config(['tp_instance_hash' => hash('xxh128', FULL_URL)]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Generate IndexNow key
|
||||||
|
if ($bb_cfg['indexnow_settings']['enabled'] && !is_file(BB_ROOT . $bb_cfg['indexnow_key'] . \TorrentPier\IndexNow::$keyFileExtension)) {
|
||||||
|
$randomIndexNowKey = empty($bb_cfg['indexnow_key']) ? make_rand_str(rand(64, 128)) : $bb_cfg['indexnow_key'];
|
||||||
|
if ($bb_cfg['indexnow_key'] !== $randomIndexNowKey) {
|
||||||
|
bb_update_config(['indexnow_key' => $randomIndexNowKey]);
|
||||||
|
}
|
||||||
|
file_write($randomIndexNowKey, (BB_ROOT . $randomIndexNowKey . \TorrentPier\IndexNow::$keyFileExtension));
|
||||||
|
}
|
||||||
|
|
||||||
// Check for updates
|
// Check for updates
|
||||||
$datastore->update('check_updates');
|
$datastore->update('check_updates');
|
||||||
|
|
||||||
|
|
83
src/IndexNow.php
Normal file
83
src/IndexNow.php
Normal file
|
@ -0,0 +1,83 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* TorrentPier – Bull-powered BitTorrent tracker engine
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com)
|
||||||
|
* @link https://github.com/torrentpier/torrentpier for the canonical source repository
|
||||||
|
* @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace TorrentPier;
|
||||||
|
|
||||||
|
use Nemorize\Indexnow\Exceptions\IndexnowException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class IndexNow
|
||||||
|
* @package TorrentPier
|
||||||
|
*/
|
||||||
|
class IndexNow
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* IndexNow instance
|
||||||
|
*
|
||||||
|
* @var \Nemorize\Indexnow\Indexnow
|
||||||
|
*/
|
||||||
|
private \Nemorize\Indexnow\Indexnow $indexNow;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* IndexNow Key-file extension
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
public static string $keyFileExtension = '.txt';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Log filename
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
private static string $logFile = 'index_now';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Available hosts
|
||||||
|
*
|
||||||
|
* @var array|string[]
|
||||||
|
*/
|
||||||
|
public array $hosts = [
|
||||||
|
'yandex' => 'yandex.com',
|
||||||
|
'bing' => 'bing.com',
|
||||||
|
'seznam' => 'search.seznam.cz',
|
||||||
|
'naver' => 'searchadvisor.naver.com'
|
||||||
|
];
|
||||||
|
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
global $bb_cfg;
|
||||||
|
|
||||||
|
$this->indexNow = new \Nemorize\Indexnow\Indexnow();
|
||||||
|
$this->indexNow->setKey($bb_cfg['indexnow_key']);
|
||||||
|
if (in_array($bb_cfg['indexnow_settings']['host'], array_keys($this->hosts))) {
|
||||||
|
$this->indexNow->setHost($this->hosts[$bb_cfg['indexnow_settings']['host']]);
|
||||||
|
} else {
|
||||||
|
bb_log("IndexNow (ERROR): Invalid host: {$bb_cfg['indexnow_settings']['host']}\n", self::$logFile);
|
||||||
|
bb_die('Invalid host: ' . $bb_cfg['indexnow_settings']['host']);
|
||||||
|
}
|
||||||
|
$this->indexNow->setKeyLocation(FULL_URL . $bb_cfg['indexnow_key'] . self::$keyFileExtension);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Submit page to IndexNow
|
||||||
|
*
|
||||||
|
* @param string $url
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function submit(string $url): void
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$this->indexNow->submit($url);
|
||||||
|
} catch (IndexnowException $e) {
|
||||||
|
bb_log("IndexNow (ERROR) [$url]: Message: {$e->getMessage()}\n", self::$logFile);
|
||||||
|
bb_die($e->getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -10,6 +10,7 @@
|
||||||
namespace TorrentPier\Legacy;
|
namespace TorrentPier\Legacy;
|
||||||
|
|
||||||
use TorrentPier\Emailer;
|
use TorrentPier\Emailer;
|
||||||
|
use TorrentPier\IndexNow;
|
||||||
use TorrentPier\Legacy\Admin\Common;
|
use TorrentPier\Legacy\Admin\Common;
|
||||||
use TorrentPier\Validate;
|
use TorrentPier\Validate;
|
||||||
|
|
||||||
|
@ -220,6 +221,12 @@ class Post
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Send IndexNow
|
||||||
|
if ($bb_cfg['indexnow_settings']['enabled'] && ($mode === 'newtopic' || $mode === 'editpost')) {
|
||||||
|
$indexNow = new IndexNow();
|
||||||
|
$indexNow->submit(FULL_URL . POST_URL . "$post_id#$post_id");
|
||||||
|
}
|
||||||
|
|
||||||
meta_refresh(POST_URL . "$post_id#$post_id");
|
meta_refresh(POST_URL . "$post_id#$post_id");
|
||||||
set_die_append_msg($forum_id, $topic_id);
|
set_die_append_msg($forum_id, $topic_id);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue