1
0

Nutze Google Favicon API für ICON

This commit is contained in:
Akamaru
2025-11-17 21:05:13 +01:00
parent a55d1abb80
commit 789c5391de
35 changed files with 67 additions and 145 deletions

View File

@@ -4,13 +4,10 @@ class AnantaBridge extends BridgeAbstract {
const MAINTAINER = 'Akamaru'; const MAINTAINER = 'Akamaru';
const NAME = 'Ananta Game News'; const NAME = 'Ananta Game News';
const URI = 'https://www.anantagame.com/news/'; const URI = 'https://www.anantagame.com/news/';
const ICON = 'https://www.google.com/s2/favicons?domain=www.anantagame.com&sz=32';
const CACHE_TIMEOUT = 21600; // 21600 = 6h const CACHE_TIMEOUT = 21600; // 21600 = 6h
const DESCRIPTION = 'Get the latest news from Ananta Game'; const DESCRIPTION = 'Get the latest news from Ananta Game';
public function getIcon(){
return 'https://www.anantagame.com/images/20241204/1733327984739_d3f0254e11.jpg';
}
public function collectData() { public function collectData() {
// Retrieve webpage // Retrieve webpage
$pageUrl = self::URI; $pageUrl = self::URI;

View File

@@ -4,6 +4,7 @@ class AnimationDigitalNetworkBridge extends BridgeAbstract {
const MAINTAINER = 'Akamaru'; const MAINTAINER = 'Akamaru';
const NAME = 'Animation Digital Network'; const NAME = 'Animation Digital Network';
const URI = 'https://animationdigitalnetwork.com/'; const URI = 'https://animationdigitalnetwork.com/';
const ICON = 'https://www.google.com/s2/favicons?domain=animationdigitalnetwork.com&sz=32';
const CACHE_TIMEOUT = 3600; // 1h const CACHE_TIMEOUT = 3600; // 1h
const DESCRIPTION = 'Holt die neuesten Episoden einer Serie von Animation Digital Network'; const DESCRIPTION = 'Holt die neuesten Episoden einer Serie von Animation Digital Network';
@@ -19,10 +20,6 @@ class AnimationDigitalNetworkBridge extends BridgeAbstract {
) )
); );
public function getIcon(){
return 'https://animationdigitalnetwork.com/favicon.ico';
}
public function collectData() { public function collectData() {
$show_id = $this->getInput('show_id'); $show_id = $this->getInput('show_id');

View File

@@ -4,14 +4,10 @@ class BSICertBridge extends BridgeAbstract
const MAINTAINER = 'Brawl'; const MAINTAINER = 'Brawl';
const NAME = 'BSI Bürger-CERT-Sicherheitshinweise'; const NAME = 'BSI Bürger-CERT-Sicherheitshinweise';
const URI = 'https://www.bsi.bund.de/'; const URI = 'https://www.bsi.bund.de/';
const ICON = 'https://www.google.com/s2/favicons?domain=www.bsi.bund.de&sz=32';
const CACHE_TIMEOUT = 21600; // 21600 = 6h const CACHE_TIMEOUT = 21600; // 21600 = 6h
const DESCRIPTION = 'Sicherheitshinweise des Bürger-CERT vom Bundesministerium für Internetsicherheit'; const DESCRIPTION = 'Sicherheitshinweise des Bürger-CERT vom Bundesministerium für Internetsicherheit';
public function getIcon()
{
return self::URI . "SiteGlobals/Frontend/Images/favicons/android-chrome-256x256.png?__blob=normal&v=3";
}
public function collectData() public function collectData()
{ {
// Retrieve webpage // Retrieve webpage

View File

@@ -3,13 +3,9 @@ class BlueArchiveNewsBridge extends BridgeAbstract {
const MAINTAINER = 'Akamaru'; const MAINTAINER = 'Akamaru';
const NAME = 'Blue Archive News'; const NAME = 'Blue Archive News';
const URI = 'https://forum.nexon.com/bluearchive-en/'; const URI = 'https://forum.nexon.com/bluearchive-en/';
const ICON = 'https://www.google.com/s2/favicons?domain=forum.nexon.com&sz=32';
const CACHE_TIMEOUT = 21600; // 6h const CACHE_TIMEOUT = 21600; // 6h
const DESCRIPTION = 'Get the latest Announcements, Updates, and Events from Blue Archive (EN) Forum.'; const DESCRIPTION = 'Get the latest Announcements, Updates, and Events from Blue Archive (EN) Forum.';
public function getIcon() {
return 'https://img.ponywave.de/images/2025/07/18/Shiroko_Icon.png';
}
const PARAMETERS = [ const PARAMETERS = [
[ [
'category' => [ 'category' => [

View File

@@ -1,18 +1,13 @@
<?php <?php
class CUIIBridge extends BridgeAbstract class CUIIBridge extends BridgeAbstract
{ {
const MAINTAINER = 'Brawl, ChatGPT'; const MAINTAINER = 'Brawl, ChatGPT';
const NAME = 'CUII-Sperrungen'; const NAME = 'CUII-Sperrungen';
const URI = 'https://cuii.info/anordnungen/'; const URI = 'https://cuii.info/anordnungen/';
const ICON = 'https://www.google.com/s2/favicons?domain=cuii.info&sz=32';
const CACHE_TIMEOUT = 21600; // 21600 = 6h const CACHE_TIMEOUT = 21600; // 21600 = 6h
const DESCRIPTION = 'Zeigt die neuesten Sperrungen der CUII (Clearingstelle Urheberrecht im Internet)'; const DESCRIPTION = 'Zeigt die neuesten Sperrungen der CUII (Clearingstelle Urheberrecht im Internet)';
public function getIcon()
{
return 'https://cuii.info/typo3conf/ext/cuii_template/Resources/Public/Images/favicon.png';
}
public function collectData() public function collectData()
{ {
$html = getSimpleHTMLDOM(self::URI) or returnServerError('Could not request cuii.info.'); $html = getSimpleHTMLDOM(self::URI) or returnServerError('Could not request cuii.info.');

View File

@@ -4,6 +4,7 @@ class CemuReleasesBridge extends BridgeAbstract {
const MAINTAINER = 'Brawl'; const MAINTAINER = 'Brawl';
const NAME = 'Cemu Releases'; const NAME = 'Cemu Releases';
const URI = 'https://cemu.info/'; const URI = 'https://cemu.info/';
const ICON = 'https://www.google.com/s2/favicons?domain=cemu.info&sz=32';
const CACHE_TIMEOUT = 21600; // 21600 = 6h const CACHE_TIMEOUT = 21600; // 21600 = 6h
const DESCRIPTION = 'Returns the latest Cemu releases.'; const DESCRIPTION = 'Returns the latest Cemu releases.';

View File

@@ -5,6 +5,7 @@ class CosppiBridge extends BridgeAbstract
const MAINTAINER = 'Brawl, GPT-4'; const MAINTAINER = 'Brawl, GPT-4';
const NAME = 'Cosppi'; const NAME = 'Cosppi';
const URI = 'https://cosppi.net/'; const URI = 'https://cosppi.net/';
const ICON = 'https://www.google.com/s2/favicons?domain=cosppi.net&sz=32';
const CACHE_TIMEOUT = 10800; // 10800 = 3h const CACHE_TIMEOUT = 10800; // 10800 = 3h
const DESCRIPTION = 'Tweets from Cosplayers scraped by Cosppi'; const DESCRIPTION = 'Tweets from Cosplayers scraped by Cosppi';
const PARAMETERS = [ const PARAMETERS = [
@@ -77,11 +78,6 @@ class CosppiBridge extends BridgeAbstract
return parent::getURI(); return parent::getURI();
} }
public function getIcon()
{
return 'https://cosppi.net/wp-content/uploads/2020/01/cropped-favicon-1-192x192.png';
}
public function collectData() public function collectData()
{ {
// Retrieve webpage // Retrieve webpage

View File

@@ -6,10 +6,10 @@ class DiscoveryPlusBridge extends BridgeAbstract
{ {
const NAME = 'Discovery+ Bridge'; const NAME = 'Discovery+ Bridge';
const URI = 'https://www.discoveryplus.com/'; const URI = 'https://www.discoveryplus.com/';
const ICON = 'https://www.google.com/s2/favicons?domain=www.discoveryplus.com&sz=32';
const DESCRIPTION = 'RSS-Feed für Serien von Discovery+'; const DESCRIPTION = 'RSS-Feed für Serien von Discovery+';
const CACHE_TIMEOUT = 21600; // 6h const CACHE_TIMEOUT = 21600; // 6h
const MAINTAINER = 'Akamaru'; const MAINTAINER = 'Akamaru';
const ICON = 'https://www.discoveryplus.com/favicon.ico';
const PARAMETERS = [ const PARAMETERS = [
[ [
@@ -336,9 +336,4 @@ class DiscoveryPlusBridge extends BridgeAbstract
$this->items[] = $item; $this->items[] = $item;
} }
} }
public function getIcon()
{
return self::ICON;
}
} }

View File

@@ -5,14 +5,10 @@ class DubesorBridge extends BridgeAbstract
const MAINTAINER = 'Brawl, Claude'; const MAINTAINER = 'Brawl, Claude';
const NAME = 'Dubesor LLM Benchmark First Impressions'; const NAME = 'Dubesor LLM Benchmark First Impressions';
const URI = 'https://dubesor.de/first-impressions'; const URI = 'https://dubesor.de/first-impressions';
const ICON = 'https://www.google.com/s2/favicons?domain=dubesor.de&sz=32';
const CACHE_TIMEOUT = 43200; // 12h const CACHE_TIMEOUT = 43200; // 12h
const DESCRIPTION = 'First impressions blog from Dubesor'; const DESCRIPTION = 'First impressions blog from Dubesor';
public function getIcon()
{
return 'https://dubesor.de/favicon.ico';
}
public function collectData() public function collectData()
{ {
$pageUrl = $this->getURI(); $pageUrl = $this->getURI();

View File

@@ -2,6 +2,7 @@
class EchoLederheckeBridge extends BridgeAbstract { class EchoLederheckeBridge extends BridgeAbstract {
const NAME = 'Echo der Lederhecke'; const NAME = 'Echo der Lederhecke';
const URI = 'https://www.sulzdorf-adl.de/unsere-gemeinde/gemeindeblatt'; const URI = 'https://www.sulzdorf-adl.de/unsere-gemeinde/gemeindeblatt';
const ICON = 'https://www.google.com/s2/favicons?domain=www.sulzdorf-adl.de&sz=32';
const DESCRIPTION = 'Neue Ausgaben des Gemeindeblatts "Echo der Lederhecke" als RSS-Feed.'; const DESCRIPTION = 'Neue Ausgaben des Gemeindeblatts "Echo der Lederhecke" als RSS-Feed.';
const MAINTAINER = 'Akamaru'; const MAINTAINER = 'Akamaru';
const CACHE_TIMEOUT = 3600; // 1 Stunde Cache const CACHE_TIMEOUT = 3600; // 1 Stunde Cache

View File

@@ -2,14 +2,11 @@
class EverSDBridge extends BridgeAbstract { class EverSDBridge extends BridgeAbstract {
const NAME = 'EverSD News Bridge'; const NAME = 'EverSD News Bridge';
const URI = 'https://eversd.com/news'; const URI = 'https://eversd.com/news';
const ICON = 'https://www.google.com/s2/favicons?domain=eversd.com&sz=32';
const DESCRIPTION = 'EverSD News und Changelog.'; const DESCRIPTION = 'EverSD News und Changelog.';
const MAINTAINER = 'Akamaru'; const MAINTAINER = 'Akamaru';
const CACHE_TIMEOUT = 3600; // 1 Stunde const CACHE_TIMEOUT = 3600; // 1 Stunde
public function getIcon() {
return 'https://eversd.com/____impro/1/onewebmedia/favico.png';
}
public function collectData() { public function collectData() {
$html = getSimpleHTMLDOM(self::URI); $html = getSimpleHTMLDOM(self::URI);
if (!$html) { if (!$html) {

View File

@@ -4,13 +4,10 @@ class EvercadeBridge extends BridgeAbstract {
const MAINTAINER = 'Akamaru'; const MAINTAINER = 'Akamaru';
const NAME = 'Evercade News'; const NAME = 'Evercade News';
const URI = 'https://evercade.co.uk/blog'; const URI = 'https://evercade.co.uk/blog';
const ICON = 'https://www.google.com/s2/favicons?domain=evercade.co.uk&sz=32';
const CACHE_TIMEOUT = 21600; // 21600 = 6h const CACHE_TIMEOUT = 21600; // 21600 = 6h
const DESCRIPTION = 'All the news from Evercade and our community'; const DESCRIPTION = 'All the news from Evercade and our community';
public function getIcon(){
return 'https://evercade.co.uk/wp-content/themes/evercade/img/icons/favicon.ico';
}
public function collectData() { public function collectData() {
// Retrieve webpage // Retrieve webpage
$pageUrl = self::URI; $pageUrl = self::URI;

View File

@@ -3,13 +3,10 @@ class FloridaTVBridge extends BridgeAbstract {
const MAINTAINER = 'Akamaru'; const MAINTAINER = 'Akamaru';
const NAME = 'FloridaTV Entertainment News'; const NAME = 'FloridaTV Entertainment News';
const URI = 'https://www.floridatv-entertainment.de/news/'; const URI = 'https://www.floridatv-entertainment.de/news/';
const ICON = 'https://www.google.com/s2/favicons?domain=www.floridatv-entertainment.de&sz=32';
const CACHE_TIMEOUT = 21600; // 6 Stunden const CACHE_TIMEOUT = 21600; // 6 Stunden
const DESCRIPTION = 'Neueste News von FloridaTV Entertainment.'; const DESCRIPTION = 'Neueste News von FloridaTV Entertainment.';
public function getIcon() {
return 'https://www.floridatv-entertainment.de/wp-content/uploads/2021/11/Favicon-florida-150x150.png';
}
public function collectData() { public function collectData() {
$html = getSimpleHTMLDOM(self::URI); $html = getSimpleHTMLDOM(self::URI);
if (!$html) { if (!$html) {

View File

@@ -4,13 +4,10 @@ class FoodwatchBridge extends BridgeAbstract {
const MAINTAINER = 'Akamaru'; const MAINTAINER = 'Akamaru';
const NAME = 'Foodwatch.org News'; const NAME = 'Foodwatch.org News';
const URI = 'https://www.foodwatch.org'; const URI = 'https://www.foodwatch.org';
const ICON = 'https://www.google.com/s2/favicons?domain=www.foodwatch.org&sz=32';
const CACHE_TIMEOUT = 21600; // 21600 = 6h const CACHE_TIMEOUT = 21600; // 21600 = 6h
const DESCRIPTION = 'Get the latest news from Foodwatch.org.'; const DESCRIPTION = 'Get the latest news from Foodwatch.org.';
public function getIcon(){
return 'https://www.foodwatch.org/typo3conf/ext/wwt3_sitepackage_base/Resources/Public/frontend/favicons/generated/apple-touch-icon-57x57.png';
}
public function collectData() { public function collectData() {
// Retrieve webpage // Retrieve webpage
$pageUrl = self::URI . '/de/informieren/aktuelle-nachrichten/'; $pageUrl = self::URI . '/de/informieren/aktuelle-nachrichten/';

View File

@@ -2,14 +2,11 @@
class FuturamaHitAndRunBridge extends BridgeAbstract { class FuturamaHitAndRunBridge extends BridgeAbstract {
const NAME = 'Futurama: Hit & Run Mod Releases'; const NAME = 'Futurama: Hit & Run Mod Releases';
const URI = 'https://modbakery.donutteam.com/projects/downloads/48/183'; const URI = 'https://modbakery.donutteam.com/projects/downloads/48/183';
const ICON = 'https://www.google.com/s2/favicons?domain=modbakery.donutteam.com&sz=32';
const DESCRIPTION = 'Returns the latest releases for the Futurama: Hit & Run total conversion mod'; const DESCRIPTION = 'Returns the latest releases for the Futurama: Hit & Run total conversion mod';
const MAINTAINER = 'Akamaru'; const MAINTAINER = 'Akamaru';
const CACHE_TIMEOUT = 3600; // 1 hour const CACHE_TIMEOUT = 3600; // 1 hour
public function getIcon() {
return 'https://nyc3.digitaloceanspaces.com/donut-team/files/2025/10/18/19-46-33/15c954b6-e49f-417c-8fc6-4090186b3aa7/icon.webp';
}
public function collectData() { public function collectData() {
$html = getSimpleHTMLDOM(self::URI); $html = getSimpleHTMLDOM(self::URI);
if (!$html) return; if (!$html) return;

View File

@@ -4,6 +4,7 @@ class GalleryEpicBridge extends BridgeAbstract
const MAINTAINER = 'Brawl, Gemini'; const MAINTAINER = 'Brawl, Gemini';
const NAME = 'GalleryEpic Bridge'; const NAME = 'GalleryEpic Bridge';
const URI = 'https://galleryepic.com/'; const URI = 'https://galleryepic.com/';
const ICON = 'https://www.google.com/s2/favicons?domain=galleryepic.com&sz=32';
const DESCRIPTION = 'Returns the latest albums for a cosplayer on GalleryEpic.'; const DESCRIPTION = 'Returns the latest albums for a cosplayer on GalleryEpic.';
const PARAMETERS = [ const PARAMETERS = [
[ [
@@ -94,11 +95,6 @@ class GalleryEpicBridge extends BridgeAbstract
} }
} }
public function getIcon()
{
return 'https://galleryepic.com/icons/icon-192x192.png';
}
public function getName() public function getName()
{ {
if (!is_null($this->feedName)) { if (!is_null($this->feedName)) {

View File

@@ -5,6 +5,7 @@ class GenshinImpactNewsBridge extends BridgeAbstract
const MAINTAINER = 'Brawl, Akamaru'; const MAINTAINER = 'Brawl, Akamaru';
const NAME = 'Genshin Impact News'; const NAME = 'Genshin Impact News';
const URI = 'https://sg-public-api-static.hoyoverse.com/content_v2_user/app/a1b1f9d3315447cc/getContentList'; const URI = 'https://sg-public-api-static.hoyoverse.com/content_v2_user/app/a1b1f9d3315447cc/getContentList';
const ICON = 'https://www.google.com/s2/favicons?domain=genshin.hoyoverse.com&sz=32';
const CACHE_TIMEOUT = 3600; // 3600 = 1h const CACHE_TIMEOUT = 3600; // 3600 = 1h
const DESCRIPTION = 'Get the latest news from Genshin Impact!'; const DESCRIPTION = 'Get the latest news from Genshin Impact!';
const PARAMETERS = array( const PARAMETERS = array(

View File

@@ -4,6 +4,7 @@ class HolonometriaMangaBridge extends BridgeAbstract
const MAINTAINER = 'Brawl, Akamaru'; const MAINTAINER = 'Brawl, Akamaru';
const NAME = 'Holonometria Manga Series'; const NAME = 'Holonometria Manga Series';
const URI = 'https://holoearth.com/en/alt/holonometria/manga/'; const URI = 'https://holoearth.com/en/alt/holonometria/manga/';
const ICON = 'https://www.google.com/s2/favicons?domain=holoearth.com&sz=32';
const CACHE_TIMEOUT = 21600; // 6h const CACHE_TIMEOUT = 21600; // 6h
const DESCRIPTION = 'Get the latest chapters of the Holonometria Manga series.'; const DESCRIPTION = 'Get the latest chapters of the Holonometria Manga series.';
@@ -21,11 +22,6 @@ class HolonometriaMangaBridge extends BridgeAbstract
], ],
]; ];
public function getIcon()
{
return 'https://holoearth.com/assets/img/favicon_holonometria.ico';
}
public function collectData() public function collectData()
{ {
$manga = $this->getInput('manga'); $manga = $this->getInput('manga');

View File

@@ -3,13 +3,9 @@ class HumbleBundlesBridge extends BridgeAbstract {
const MAINTAINER = 'Akamaru'; const MAINTAINER = 'Akamaru';
const NAME = 'Humble Bundle'; const NAME = 'Humble Bundle';
const URI = 'https://www.humblebundle.com/'; const URI = 'https://www.humblebundle.com/';
const ICON = 'https://www.google.com/s2/favicons?domain=www.humblebundle.com&sz=32';
const CACHE_TIMEOUT = 3600; // 1h const CACHE_TIMEOUT = 3600; // 1h
const DESCRIPTION = 'Get the latest bundles from Humble Bundle.'; const DESCRIPTION = 'Get the latest bundles from Humble Bundle.';
public function getIcon() {
return 'https://www.humblebundle.com/favicon.ico';
}
const PARAMETERS = [ const PARAMETERS = [
[ [
'category' => [ 'category' => [

View File

@@ -3,13 +3,10 @@ class IndiegalaFreebiesBridge extends BridgeAbstract {
const MAINTAINER = 'Akamaru'; const MAINTAINER = 'Akamaru';
const NAME = 'Indiegala Freebies'; const NAME = 'Indiegala Freebies';
const URI = 'https://freebies.indiegala.com/'; const URI = 'https://freebies.indiegala.com/';
const ICON = 'https://www.google.com/s2/favicons?domain=freebies.indiegala.com&sz=32';
const CACHE_TIMEOUT = 21600; // 6h const CACHE_TIMEOUT = 21600; // 6h
const DESCRIPTION = 'Get the latest free PC games from Indiegala Freebies.'; const DESCRIPTION = 'Get the latest free PC games from Indiegala Freebies.';
public function getIcon() {
return 'https://freebies.indiegala.com/favicon.ico';
}
public function collectData() { public function collectData() {
$html = getSimpleHTMLDOM(self::URI); $html = getSimpleHTMLDOM(self::URI);
if (!$html) return; if (!$html) return;

View File

@@ -1,42 +1,43 @@
<?php <?php
class JapanTimesFeaturesBridge extends BridgeAbstract { class JapanTimesFeaturesBridge extends BridgeAbstract {
const MAINTAINER = 'Brawl'; const MAINTAINER = 'Brawl';
const NAME = 'Deep Reads by The Japan Times'; const NAME = 'Deep Reads by The Japan Times';
const URI = 'https://features.japantimes.co.jp/'; const URI = 'https://features.japantimes.co.jp/';
const CACHE_TIMEOUT = 21600; // 21600 = 6h const ICON = 'https://www.google.com/s2/favicons?domain=features.japantimes.co.jp&sz=32';
const DESCRIPTION = 'Deep Dives from the JT.'; const CACHE_TIMEOUT = 21600; // 21600 = 6h
const DESCRIPTION = 'Deep Dives from the JT.';
public function collectData() { public function collectData() {
// Retrieve webpage // Retrieve webpage
$pageUrl = self::URI; $pageUrl = self::URI;
$html = getSimpleHTMLDOM($pageUrl) $html = getSimpleHTMLDOM($pageUrl)
or returnServerError('Could not request webpage: ' . $pageUrl); or returnServerError('Could not request webpage: ' . $pageUrl);
// Process articles // Process articles
foreach($html->find('div.esg-media-cover-wrapper') as $element) { foreach($html->find('div.esg-media-cover-wrapper') as $element) {
if(count($this->items) >= 10) { if(count($this->items) >= 10) {
break; break;
} }
$article_title = trim(strip_tags($element->find('div.eg-jt-features-grid-skin-element-0', 0)->innertext)); $article_title = trim(strip_tags($element->find('div.eg-jt-features-grid-skin-element-0', 0)->innertext));
$article_uri = $element->find('a.eg-invisiblebutton', 0)->href; $article_uri = $element->find('a.eg-invisiblebutton', 0)->href;
$article_thumbnail = $element->find('img', 0)->src; $article_thumbnail = $element->find('img', 0)->src;
$article_content = '<img src="'. $article_thumbnail .'"><br>'; $article_content = '<img src="'. $article_thumbnail .'"><br>';
$article_content .= trim(strip_tags($element->find('div.eg-jt-features-grid-skin-element-6', 0)->innertext)); $article_content .= trim(strip_tags($element->find('div.eg-jt-features-grid-skin-element-6', 0)->innertext));
$article_timestamp = strtotime($element->find('div.eg-jt-features-grid-skin-element-24', 0)->innertext); $article_timestamp = strtotime($element->find('div.eg-jt-features-grid-skin-element-24', 0)->innertext);
// Store article in items array // Store article in items array
if (!empty($article_title)) { if (!empty($article_title)) {
$item = array(); $item = array();
$item['uri'] = $article_uri; $item['uri'] = $article_uri;
$item['title'] = $article_title; $item['title'] = $article_title;
//$item['enclosures'] = array($article_thumbnail); //$item['enclosures'] = array($article_thumbnail);
$item['content'] = $article_content; $item['content'] = $article_content;
$item['timestamp'] = $article_timestamp; $item['timestamp'] = $article_timestamp;
$this->items[] = $item; $this->items[] = $item;
} }
} }
} }
} }

View File

@@ -2,10 +2,10 @@
class JoynBridge extends BridgeAbstract { class JoynBridge extends BridgeAbstract {
const NAME = 'Joyn.de Serien RSS'; const NAME = 'Joyn.de Serien RSS';
const URI = 'https://www.joyn.de/'; const URI = 'https://www.joyn.de/';
const ICON = 'https://www.google.com/s2/favicons?domain=www.joyn.de&sz=32';
const DESCRIPTION = 'RSS-Feed für Serien von Joyn.de'; const DESCRIPTION = 'RSS-Feed für Serien von Joyn.de';
const CACHE_TIMEOUT = 21600; // 6h const CACHE_TIMEOUT = 21600; // 6h
const MAINTAINER = 'Akamaru, Claude'; const MAINTAINER = 'Akamaru, Claude';
const ICON = 'https://www.joyn.de/favicon.ico';
const PARAMETERS = [ const PARAMETERS = [
[ [
'series_id' => [ 'series_id' => [

View File

@@ -3,6 +3,7 @@ class KemonoFriendsMusicNewsBridge extends BridgeAbstract {
const MAINTAINER = 'Akamaru'; const MAINTAINER = 'Akamaru';
const NAME = 'Kemono Friends Music News'; const NAME = 'Kemono Friends Music News';
const URI = 'https://www.jvcmusic.co.jp/kemono-friends/'; const URI = 'https://www.jvcmusic.co.jp/kemono-friends/';
const ICON = 'https://www.google.com/s2/favicons?domain=www.jvcmusic.co.jp&sz=32';
const CACHE_TIMEOUT = 1; // 21600 = 6h const CACHE_TIMEOUT = 1; // 21600 = 6h
const DESCRIPTION = 'Get the latest news for Kemono Friends Music.'; const DESCRIPTION = 'Get the latest news for Kemono Friends Music.';

View File

@@ -2,6 +2,7 @@
class MainPostBridge extends BridgeAbstract { class MainPostBridge extends BridgeAbstract {
const NAME = 'Main-Post Nachrichten'; const NAME = 'Main-Post Nachrichten';
const URI = 'https://www.mainpost.de/'; const URI = 'https://www.mainpost.de/';
const ICON = 'https://www.google.com/s2/favicons?domain=www.mainpost.de&sz=32';
const DESCRIPTION = 'Nachrichten und Artikel von der Main-Post'; const DESCRIPTION = 'Nachrichten und Artikel von der Main-Post';
const MAINTAINER = 'Akamaru'; const MAINTAINER = 'Akamaru';
const PARAMETERS = [ const PARAMETERS = [
@@ -298,10 +299,6 @@ class MainPostBridge extends BridgeAbstract {
] ]
]; ];
public function getIcon() {
return 'https://www.mainpost.de/favicon.ico';
}
private function extractArticlesFromJSON($html) { private function extractArticlesFromJSON($html) {
$articles = []; $articles = [];
$debugInfo = ''; $debugInfo = '';

View File

@@ -3,6 +3,7 @@ class MuchoHentaiBridge extends BridgeAbstract {
const NAME = 'MuchoHentai ENG Subbed Releases'; const NAME = 'MuchoHentai ENG Subbed Releases';
const URI = 'https://muchohentai.com/'; const URI = 'https://muchohentai.com/';
const ICON = 'https://www.google.com/s2/favicons?domain=muchohentai.com&sz=32';
const DESCRIPTION = 'Shows new english subbed releases from MuchoHentai'; const DESCRIPTION = 'Shows new english subbed releases from MuchoHentai';
const MAINTAINER = 'Akamaru'; const MAINTAINER = 'Akamaru';
const CACHE_TIMEOUT = 3600; // 1 Stunde Cache const CACHE_TIMEOUT = 3600; // 1 Stunde Cache
@@ -24,10 +25,6 @@ class MuchoHentaiBridge extends BridgeAbstract {
] ]
]; ];
public function getIcon() {
return 'https://static1.muchohentai.com/wp-content/uploads/xfavicon.png.pagespeed.ic.MKVCUqwTqw.png';
}
public function collectData() { public function collectData() {
$limit = $this->getInput('limit'); $limit = $this->getInput('limit');
$fullContent = $this->getInput('full'); $fullContent = $this->getInput('full');

View File

@@ -4,6 +4,7 @@ class PokemonGOBridge extends BridgeAbstract {
const MAINTAINER = 'Brawl, Akamaru'; const MAINTAINER = 'Brawl, Akamaru';
const NAME = 'Pokémon GO News'; const NAME = 'Pokémon GO News';
const URI = 'https://pokemongo.com/'; const URI = 'https://pokemongo.com/';
const ICON = 'https://www.google.com/s2/favicons?domain=pokemongo.com&sz=32';
const CACHE_TIMEOUT = 21600; // 21600 = 6h const CACHE_TIMEOUT = 21600; // 21600 = 6h
const DESCRIPTION = 'Get the latest official "Pokémon GO" news.'; const DESCRIPTION = 'Get the latest official "Pokémon GO" news.';
const PARAMETERS = array( const PARAMETERS = array(
@@ -34,10 +35,6 @@ class PokemonGOBridge extends BridgeAbstract {
) )
); );
public function getIcon(){
return 'https://pokemongo.com/img/icons/favicon.ico';
}
public function collectData() { public function collectData() {
$lang = $this->getInput('lang'); $lang = $this->getInput('lang');
$pageUrl = self::URI . $lang . '/news'; $pageUrl = self::URI . $lang . '/news';

View File

@@ -4,10 +4,10 @@ class RTLPlusBridge extends BridgeAbstract
{ {
const NAME = 'RTL+ Serien RSS'; const NAME = 'RTL+ Serien RSS';
const URI = 'https://plus.rtl.de/'; const URI = 'https://plus.rtl.de/';
const ICON = 'https://www.google.com/s2/favicons?domain=plus.rtl.de&sz=32';
const DESCRIPTION = 'RSS-Feed für Serien von RTL+'; const DESCRIPTION = 'RSS-Feed für Serien von RTL+';
const CACHE_TIMEOUT = 21600; // 6h const CACHE_TIMEOUT = 21600; // 6h
const MAINTAINER = 'Akamaru'; const MAINTAINER = 'Akamaru';
const ICON = 'https://plus.rtl.de/favicon.ico';
const PARAMETERS = [ const PARAMETERS = [
[ [
'series_id' => [ 'series_id' => [

View File

@@ -5,6 +5,7 @@ class SSBUNewsBridge extends BridgeAbstract
const MAINTAINER = 'Brawl'; const MAINTAINER = 'Brawl';
const NAME = 'Super Smash Bros. Ultimate News'; const NAME = 'Super Smash Bros. Ultimate News';
const URI = 'https://www-aaaba-lp1-hac.cdn.nintendo.net/'; const URI = 'https://www-aaaba-lp1-hac.cdn.nintendo.net/';
const ICON = 'https://www.google.com/s2/favicons?domain=www.smashbros.com&sz=32';
const CACHE_TIMEOUT = 43200; // 43200 = 12h const CACHE_TIMEOUT = 43200; // 43200 = 12h
const DESCRIPTION = 'Returns the latest Super Smash Bros. Ultimate news.'; const DESCRIPTION = 'Returns the latest Super Smash Bros. Ultimate news.';
const PARAMETERS = array( const PARAMETERS = array(
@@ -42,11 +43,6 @@ class SSBUNewsBridge extends BridgeAbstract
return parent::getName(); return parent::getName();
} }
public function getIcon()
{
return 'https://www.smashbros.com/favicon.ico';
}
public function getURI() public function getURI()
{ {
return $this->pageUrl; return $this->pageUrl;

View File

@@ -2,6 +2,7 @@
class SnowbreakNewsBridge extends BridgeAbstract { class SnowbreakNewsBridge extends BridgeAbstract {
const NAME = 'Snowbreak: Containment Zone News'; const NAME = 'Snowbreak: Containment Zone News';
const URI = 'https://snowbreak.amazingseasun.com'; const URI = 'https://snowbreak.amazingseasun.com';
const ICON = 'https://www.google.com/s2/favicons?domain=snowbreak.amazingseasun.com&sz=32';
const DESCRIPTION = 'Returns the latest news from Snowbreak: Containment Zone'; const DESCRIPTION = 'Returns the latest news from Snowbreak: Containment Zone';
const MAINTAINER = 'Akamaru'; const MAINTAINER = 'Akamaru';
const CACHE_TIMEOUT = 21600; // 6 hours const CACHE_TIMEOUT = 21600; // 6 hours
@@ -20,7 +21,6 @@ class SnowbreakNewsBridge extends BridgeAbstract {
] ]
] ]
]; ];
const FAVICON = 'https://snowbreak.amazingseasun.com/p/zt/2023/07/13/index/static/favicon.ico';
public function collectData() { public function collectData() {
$category = $this->getInput('category'); $category = $this->getInput('category');

View File

@@ -3,13 +3,10 @@ class StellaSoraBridge extends BridgeAbstract {
const MAINTAINER = 'Akamaru'; const MAINTAINER = 'Akamaru';
const NAME = 'Stella Sora News'; const NAME = 'Stella Sora News';
const URI = 'https://stellasora.global/news/'; const URI = 'https://stellasora.global/news/';
const ICON = 'https://www.google.com/s2/favicons?domain=stellasora.global&sz=32';
const CACHE_TIMEOUT = 21600; // 6h const CACHE_TIMEOUT = 21600; // 6h
const DESCRIPTION = 'Get the latest news from Stella Sora (Global)'; const DESCRIPTION = 'Get the latest news from Stella Sora (Global)';
public function getIcon() {
return 'https://novaweb-usstatic.yo-star.com/h5/favicon.png';
}
public function collectData() { public function collectData() {
$apiUrl = 'https://stellasora.global/api/resource/news?index=1&size=999&type=latest'; $apiUrl = 'https://stellasora.global/api/resource/news?index=1&size=999&type=latest';
$json = getContents($apiUrl) $json = getContents($apiUrl)

View File

@@ -2,6 +2,7 @@
class ToggoBridge extends BridgeAbstract { class ToggoBridge extends BridgeAbstract {
const NAME = 'Toggo.de Serien RSS'; const NAME = 'Toggo.de Serien RSS';
const URI = 'https://www.toggo.de/'; const URI = 'https://www.toggo.de/';
const ICON = 'https://www.google.com/s2/favicons?domain=www.toggo.de&sz=32';
const DESCRIPTION = 'RSS-Feed für Serien von Toggo.de'; const DESCRIPTION = 'RSS-Feed für Serien von Toggo.de';
const CACHE_TIMEOUT = 21600; // 6h const CACHE_TIMEOUT = 21600; // 6h
const MAINTAINER = 'Akamaru'; const MAINTAINER = 'Akamaru';

View File

@@ -5,6 +5,7 @@ class WHODiseaseOutbreakBridge extends BridgeAbstract
const MAINTAINER = 'Brawl'; const MAINTAINER = 'Brawl';
const NAME = 'WHO Disease Outbreak News'; const NAME = 'WHO Disease Outbreak News';
const URI = 'https://www.who.int/emergencies/disease-outbreak-news'; const URI = 'https://www.who.int/emergencies/disease-outbreak-news';
const ICON = 'https://www.google.com/s2/favicons?domain=www.who.int&sz=32';
const CACHE_TIMEOUT = 21600; // 21600 = 6h const CACHE_TIMEOUT = 21600; // 21600 = 6h
const DESCRIPTION = 'Latest WHO Disease Outbreak News (DONs), providing information on confirmed acute public health events or potential events of concern.'; const DESCRIPTION = 'Latest WHO Disease Outbreak News (DONs), providing information on confirmed acute public health events or potential events of concern.';

View File

@@ -4,6 +4,7 @@ class WeiboPicsBridge extends BridgeAbstract
const MAINTAINER = 'Akamaru, Brawl, Gemini 2.5 Pro'; const MAINTAINER = 'Akamaru, Brawl, Gemini 2.5 Pro';
const NAME = 'Weibo User Pictures'; const NAME = 'Weibo User Pictures';
const URI = 'https://weibo.com'; const URI = 'https://weibo.com';
const ICON = 'https://www.google.com/s2/favicons?domain=weibo.com&sz=32';
const CACHE_TIMEOUT = 3600; // 1 hour for feed data const CACHE_TIMEOUT = 3600; // 1 hour for feed data
const DESCRIPTION = 'Get the latest pictures from a Weibo user.'; const DESCRIPTION = 'Get the latest pictures from a Weibo user.';
@@ -21,11 +22,6 @@ class WeiboPicsBridge extends BridgeAbstract
private $feedTitleName = ''; private $feedTitleName = '';
public function getIcon()
{
return 'https://weibo.com/favicon.ico';
}
public function getName() public function getName()
{ {
if (empty($this->feedTitleName)) { if (empty($this->feedTitleName)) {

View File

@@ -4,10 +4,10 @@ class WutheringWavesNewsBridge extends BridgeAbstract
{ {
const NAME = 'Wuthering Waves News'; const NAME = 'Wuthering Waves News';
const URI = 'https://wutheringwaves.kurogames.com/main/news'; const URI = 'https://wutheringwaves.kurogames.com/main/news';
const ICON = 'https://www.google.com/s2/favicons?domain=wutheringwaves.kurogames.com&sz=32';
const DESCRIPTION = 'Returns news articles from Wuthering Waves'; const DESCRIPTION = 'Returns news articles from Wuthering Waves';
const MAINTAINER = 'Akamaru'; const MAINTAINER = 'Akamaru';
const CACHE_TIMEOUT = 3600; // 1 hour const CACHE_TIMEOUT = 3600; // 1 hour
const ICON = 'https://www.google.com/s2/favicons?domain=wutheringwaves.kurogames.com&sz=32';
const PARAMETERS = [ const PARAMETERS = [
[ [

View File

@@ -4,6 +4,7 @@ class Y2MateDownloaderBridge extends BridgeAbstract {
const MAINTAINER = 'Akamaru'; const MAINTAINER = 'Akamaru';
const NAME = 'Y2Mate Downloader Changelog'; const NAME = 'Y2Mate Downloader Changelog';
const URI = 'https://y2matedownloader.com/y2mate-downloader-changelog'; const URI = 'https://y2matedownloader.com/y2mate-downloader-changelog';
const ICON = 'https://www.google.com/s2/favicons?domain=y2matedownloader.com&sz=32';
const CACHE_TIMEOUT = 21600; // 6 hours const CACHE_TIMEOUT = 21600; // 6 hours
const DESCRIPTION = 'Changelog for Y2Mate Downloader'; const DESCRIPTION = 'Changelog for Y2Mate Downloader';
const PARAMETERS = [ const PARAMETERS = [
@@ -86,8 +87,4 @@ class Y2MateDownloaderBridge extends BridgeAbstract {
} }
} }
} }
public function getIcon() {
return 'https://c1.y2matedownloader.com/favicon.ico';
}
} }