mirror of
https://gitlab.com/octospacc/Snippets.git
synced 2025-06-27 09:02:56 +02:00
Replace Proxatore.php
This commit is contained in:
@ -57,6 +57,7 @@ define('HISTORY_FILE', './Proxatore.history.jsonl');
|
|||||||
|
|
||||||
const PLATFORMS = [
|
const PLATFORMS = [
|
||||||
'spaccbbs' => ['bbs.spacc.eu.org'],
|
'spaccbbs' => ['bbs.spacc.eu.org'],
|
||||||
|
'bilibili' => ['bilibili.com'],
|
||||||
'bluesky' => ['bsky.app'],
|
'bluesky' => ['bsky.app'],
|
||||||
'facebook' => ['facebook.com', 'm.facebook.com'],
|
'facebook' => ['facebook.com', 'm.facebook.com'],
|
||||||
'instagram' => ['instagram.com'],
|
'instagram' => ['instagram.com'],
|
||||||
@ -109,7 +110,7 @@ const PLATFORMS_API = [
|
|||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
const PLATFORMS_COBALT = ['instagram'];
|
const PLATFORMS_COBALT = ['instagram', 'bilibili'];
|
||||||
|
|
||||||
const PLATFORMS_FAKE404 = ['telegram'];
|
const PLATFORMS_FAKE404 = ['telegram'];
|
||||||
|
|
||||||
@ -117,7 +118,7 @@ const PLATFORMS_HACKS = ['bluesky', 'threads', 'twitter', 'x'];
|
|||||||
|
|
||||||
const PLATFORMS_ORDERED = ['telegram'];
|
const PLATFORMS_ORDERED = ['telegram'];
|
||||||
|
|
||||||
//const PLATFORMS_VIDEO = ['facebook', 'instagram'];
|
// const PLATFORMS_VIDEO = ['youtube', 'bilibili']; // ['facebook', 'instagram'];
|
||||||
|
|
||||||
const PLATFORMS_WEBVIDEO = ['raiplay'];
|
const PLATFORMS_WEBVIDEO = ['raiplay'];
|
||||||
|
|
||||||
@ -472,6 +473,8 @@ function getCobaltVideo(string $url) {
|
|||||||
]));
|
]));
|
||||||
if ($cobaltData->status === 'redirect' && strpos($cobaltData->url, '.mp4')) {
|
if ($cobaltData->status === 'redirect' && strpos($cobaltData->url, '.mp4')) {
|
||||||
return $cobaltData->url;
|
return $cobaltData->url;
|
||||||
|
} else if ($cobaltData->status === 'tunnel' && strpos($cobaltData->filename, '.mp4')) {
|
||||||
|
return SCRIPT_NAME . '__cobaltproxy__/_/' . lstrip($cobaltData->url, '/', 3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -567,6 +570,9 @@ function handleApiRequest(array $segments): void {
|
|||||||
default:
|
default:
|
||||||
ffmpegStream('https://' . PLATFORMS[$platform][0] . '/' . lstrip($relativeUrl, '/', 3));
|
ffmpegStream('https://' . PLATFORMS[$platform][0] . '/' . lstrip($relativeUrl, '/', 3));
|
||||||
}
|
}
|
||||||
|
} else if ($api === 'cobaltproxy') {
|
||||||
|
header('Content-Type: video/mp4');
|
||||||
|
readfile(COBALT_API . $relativeUrl);
|
||||||
} else if ($api === 'embed') {
|
} else if ($api === 'embed') {
|
||||||
header('Location: ' . makeEmbedUrl($platform, $relativeUrl));
|
header('Location: ' . makeEmbedUrl($platform, $relativeUrl));
|
||||||
}
|
}
|
||||||
@ -584,18 +590,27 @@ function iframeHtml($result): void { ?>
|
|||||||
<a class="button" style="float:right;" href="<?= end(explode('/', $result['relativeurl']))+1 ?>">➡️ Next</a>
|
<a class="button" style="float:right;" href="<?= end(explode('/', $result['relativeurl']))+1 ?>">➡️ Next</a>
|
||||||
</div>
|
</div>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<iframe src="<?= htmlspecialchars(makeEmbedUrl($result['platform'], $result['relativeurl'])) ?>" hidden="hidden" onload="this.hidden=false;"></iframe>
|
<iframe sandbox="allow-scripts allow-same-origin" src="<?= htmlspecialchars(makeEmbedUrl($result['platform'], $result['relativeurl'])) ?>" hidden="hidden" onload="this.hidden=false;"></iframe>
|
||||||
<?php }
|
<?php }
|
||||||
|
|
||||||
$path = lstrip($_SERVER['REQUEST_URI'], SCRIPT_NAME, 1); //$_SERVER['REQUEST_URI']; //parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
|
$path = lstrip($_SERVER['REQUEST_URI'], SCRIPT_NAME, 1); //$_SERVER['REQUEST_URI']; //parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
|
||||||
$immediateResult = null;
|
$searchResults = $immediateResult = null;
|
||||||
|
|
||||||
if (isset(getQueryArray()['proxatore-search']) && ($search = getQueryArray()['proxatore-search']) !== '') {
|
if ($search = readProxatoreParam('search')) {
|
||||||
if ($url = parseAbsoluteUrl($search)) {
|
if ($url = parseAbsoluteUrl($search)) {
|
||||||
return redirectTo($url);
|
return redirectTo($url);
|
||||||
} else {
|
} else {
|
||||||
$searchResults = searchHistory($search);
|
$searchResults = searchHistory($search);
|
||||||
}
|
}
|
||||||
|
} else if ($group = readProxatoreParam('group')) {
|
||||||
|
$searchResults = [];
|
||||||
|
foreach (json_decode($group) as $path) {
|
||||||
|
$segments = explode('/', trim($path, '/'));
|
||||||
|
$platform = array_shift($segments);
|
||||||
|
$relativeUrl = implode('/', $segments);
|
||||||
|
$data = getPageData($platform, $relativeUrl);
|
||||||
|
$searchResults[] = $data['result'];
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$path = trim($path, '/');
|
$path = trim($path, '/');
|
||||||
if ($url = parseAbsoluteUrl($path)) {
|
if ($url = parseAbsoluteUrl($path)) {
|
||||||
@ -984,9 +999,9 @@ ul.platforms a {
|
|||||||
<dt>A dedicated domain name</dt>
|
<dt>A dedicated domain name</dt>
|
||||||
<dd>To host the program properly, instead of in a subpath.</dd>
|
<dd>To host the program properly, instead of in a subpath.</dd>
|
||||||
<dt><a href="https://github.com/yt-dlp/yt-dlp" target="_blank">yt-dlp</a> on your server</dt>
|
<dt><a href="https://github.com/yt-dlp/yt-dlp" target="_blank">yt-dlp</a> on your server</dt>
|
||||||
<dd>To stream YouTube videos in MP4 format.</dd>
|
<dd>To stream videos from various platforms in MP4 format.</dd>
|
||||||
<dt>A <a href="https://github.com/imputnet/cobalt">cobalt</a> API server</dt>
|
<dt>A <a href="https://github.com/imputnet/cobalt">cobalt</a> API server</dt>
|
||||||
<dd>To have a fallback for access to media files for most platforms.</dd>
|
<dd>To have a fallback for access to media files for the most popular platforms.</dd>
|
||||||
</dl>
|
</dl>
|
||||||
</details>';
|
</details>';
|
||||||
echo '<p>Made with 🕸️ and 🧨 by <a href="https://hub.octt.eu.org">OctoSpacc</a>.
|
echo '<p>Made with 🕸️ and 🧨 by <a href="https://hub.octt.eu.org">OctoSpacc</a>.
|
||||||
@ -1021,7 +1036,7 @@ ul.platforms a {
|
|||||||
<audio src="<?= htmlspecialchars($item['audio']) ?>" controls="controls"></audio>
|
<audio src="<?= htmlspecialchars($item['audio']) ?>" controls="controls"></audio>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<?php foreach (array_merge([$item['image']], $item['images']) as $image): ?>
|
<?php foreach (array_merge([$item['image']], $item['images']) as $image): ?>
|
||||||
<a class="img" href="<?= htmlspecialchars($image ?? '') ?>" target="_blank" rel="noopener nofollow">
|
<a class="img" <?= $immediateResult ? 'href="' . htmlspecialchars($image ?? '') . '" target="_blank" rel="noopener nofollow"' : 'href="' . htmlspecialchars(SCRIPT_NAME . $item['platform'] . '/' . $item['relativeurl']) . '"' ?>>
|
||||||
<img src="<?= htmlspecialchars($image ?? '') ?>" onerror="this.hidden=true" />
|
<img src="<?= htmlspecialchars($image ?? '') ?>" onerror="this.hidden=true" />
|
||||||
</a>
|
</a>
|
||||||
<?php endforeach; ?>
|
<?php endforeach; ?>
|
||||||
|
Reference in New Issue
Block a user