Files
4get/lib/scrapers.php
guy176251 9c2921c7fa - refactored scraper filter function
- added ability to specify default scrapers in environment variables
2026-05-15 23:44:01 -05:00

116 lines
3.1 KiB
PHP

<?php
const DEFAULT_SCRAPERS = [
"web" => config::SCRAPER_WEB,
"images" => config::SCRAPER_IMAGES,
"news" => config::SCRAPER_NEWS,
"videos" => config::SCRAPER_VIDEOS,
"music" => config::SCRAPER_MUSIC,
];
const AVAILABLE_SCRAPERS = [
"web" => [
"ddg" => "DuckDuckGo",
//"yahoo" => "Yahoo!",
"brave" => "Brave",
"yandex" => "Yandex",
"google" => "Google",
"google_api" => "Google API",
"google_cse" => "Google CSE",
"yahoo_japan" => "Yahoo! JAPAN",
"startpage" => "Startpage",
"qwant" => "Qwant",
"ghostery" => "Ghostery",
"yep" => "Yep",
"mwmbl" => "Mwmbl",
"mojeek" => "Mojeek",
"baidu" => "Baidu",
"coccoc" => "Cốc Cốc",
"solofield" => "Solofield",
"marginalia" => "Marginalia",
"wiby" => "wiby"
],
"images" => [
"ddg" => "DuckDuckGo",
"yandex" => "Yandex",
"brave" => "Brave",
"google" => "Google",
"google_api" => "Google API",
"google_cse" => "Google CSE",
"yahoo_japan" => "Yahoo! JAPAN",
"startpage" => "Startpage",
"qwant" => "Qwant",
"baidu" => "Baidu",
"solofield" => "Solofield",
"pinterest" => "Pinterest",
"cara" => "Cara",
"flickr" => "Flickr",
"pexels" => "Pexels",
"pixabay" => "Pixabay",
"unsplash" => "Unsplash",
"fivehpx" => "500px",
"vsco" => "VSCO",
"imgur" => "Imgur",
"ftm" => "FindThatMeme"
],
"videos" => [
"yt" => "YouTube",
//"archiveorg" => "Archive.org",
"vimeo" => "Vimeo",
//"odysee" => "Odysee",
"sepiasearch" => "Sepia Search",
//"fb" => "Facebook videos",
"ddg" => "DuckDuckGo",
"brave" => "Brave",
"yandex" => "Yandex",
"google" => "Google",
"yahoo_japan" => "Yahoo! JAPAN",
"startpage" => "Startpage",
"qwant" => "Qwant",
"baidu" => "Baidu",
"coccoc" => "Cốc Cốc",
"solofield" => "Solofield"
],
"news" => [
"ddg" => "DuckDuckGo",
"brave" => "Brave",
"google" => "Google",
"yahoo_japan" => "Yahoo! JAPAN",
"startpage" => "Startpage",
"qwant" => "Qwant",
"mojeek" => "Mojeek",
"baidu" => "Baidu"
],
"music" => [
"sc" => "SoundCloud",
"swisscows" => "Swisscows (SoundCloud)",
//"spotify" => "Spotify"
],
"booru" => [
"safebooru" => "Safebooru",
"konachan" => "Konachan",
"tbib" => "The Big Imageboard",
"gelbooru" => "Gelbooru",
"yandere" => "Yande.re",
"sankakucomplex" => "SankakuComplex",
"soybooru" => "SoyBooru",
],
];
function get_scraper(string $page, string $selected): string
{
$available = AVAILABLE_SCRAPERS[$page];
if (!$available) {
return "__NONEXISTENT__";
}
if ($available[$selected]) {
return $selected;
}
$default = DEFAULT_SCRAPERS[$page];
return $available[$default] ? $default : array_key_first($available);
}