diff --git a/MuchoHentaiBridge.php b/MuchoHentaiBridge.php
deleted file mode 100644
index 68d4084..0000000
--- a/MuchoHentaiBridge.php
+++ /dev/null
@@ -1,220 +0,0 @@
- [
- 'limit' => [
- 'name' => 'Limit',
- 'type' => 'number',
- 'defaultValue' => 15,
- 'title' => 'Maximale Anzahl der Einträge'
- ],
- 'full' => [
- 'name' => 'Vollständige Detailseiten',
- 'type' => 'checkbox',
- 'defaultValue' => false,
- 'title' => 'Besuch der Detailseiten für weitere Informationen (langsamer)'
- ]
- ]
- ];
-
- public function collectData() {
- $limit = $this->getInput('limit');
- $fullContent = $this->getInput('full');
-
- // User-Agent für CloudFlare setzen
- ini_set('user_agent', 'FreshRSS/1.23.1 (Linux; https://freshrss.org)');
-
- $url = 'https://muchohentai.com/series/%e3%80%90eng-subbed%e3%80%91/?orderby=date';
- $html = getSimpleHTMLDOM($url);
-
- if (!$html) {
- throw new \Exception('Konnte die Webseite nicht laden: ' . $url);
- }
-
- // Finde alle Video-Einträge auf der Seite
- $items = $html->find('div.item.cf.item-video');
- $count = 0;
-
- foreach ($items as $item) {
- if ($count >= $limit) {
- break;
- }
-
- $articleItem = [];
-
- // Titel extrahieren
- $titleElement = $item->find('h2.entry-title a', 0);
- if ($titleElement) {
- $articleItem['title'] = $titleElement->plaintext;
- } else {
- continue; // Überspringe Einträge ohne Titel
- }
-
- // Link extrahieren
- if ($titleElement) {
- $articleItem['uri'] = $titleElement->href;
- } else {
- continue; // Überspringe Einträge ohne Link
- }
-
- // Thumbnail extrahieren
- $imageElement = $item->find('span.clip img', 0);
- if ($imageElement) {
- $imageUrl = $imageElement->src;
- $articleItem['enclosures'] = [$imageUrl];
- }
-
- // ID extrahieren
- $idElement = $item->find('a.clip-link', 0);
- $id = '';
- if ($idElement) {
- $id = $idElement->getAttribute('data-id');
- $articleItem['uid'] = $id;
- }
-
- // Extrahiere die Serie und Episode aus dem Titel für bessere Kategorisierung
- $seriesInfo = $this->extractSeriesInfo($articleItem['title']);
- if ($seriesInfo) {
- $articleItem['categories'] = [$seriesInfo['series']];
- // Füge Episodennummer als Tag hinzu, falls vorhanden
- if (isset($seriesInfo['episode'])) {
- $articleItem['tags'] = ['Episode ' . $seriesInfo['episode']];
- }
- }
-
- // Erstelle den Basis-Inhalt
- $content = '
';
- if (isset($imageUrl)) {
- $content .= '
![' . htmlspecialchars($articleItem['title'], ENT_QUOTES) . '](' . $imageUrl . ')
';
- }
- $content .= '
' . $articleItem['title'] . '
';
-
- // Wenn vollständiger Inhalt gewünscht ist, besuche die Detailseite
- if ($fullContent && $articleItem['uri']) {
- $detailContent = $this->getFullContent($articleItem['uri']);
- if ($detailContent) {
- $content .= $detailContent;
-
- // Versuche ein Datum aus der Detailseite zu extrahieren
- $date = $this->extractDateFromDetail($detailContent);
- if ($date) {
- $articleItem['timestamp'] = $date;
- }
- }
- }
-
- $content .= '
';
- $articleItem['content'] = $content;
-
- // Wenn kein Datum gefunden wurde, verwenden wir die aktuelle Zeit
- // Die neuesten Einträge erscheinen immer zuerst auf der Hauptseite
- if (!isset($articleItem['timestamp'])) {
- // Setze das Datum basierend auf der Position in der Liste
- // Neuere Einträge sind oben, daher subtrahieren wir die Position von der aktuellen Zeit
- $articleItem['timestamp'] = time() - ($count * 3600); // Ungefähre stündliche Abstufung
- }
-
- $this->items[] = $articleItem;
- $count++;
- }
- }
-
- /**
- * Extrahiert Serienname und Episodennummer aus dem Titel
- */
- private function extractSeriesInfo($title) {
- $result = [];
-
- // Versuche Serie und Episode zu extrahieren
- if (preg_match('/^(.*?)\s+Episode\s+(\d+)/i', $title, $matches)) {
- $result['series'] = trim($matches[1]);
- $result['episode'] = intval($matches[2]);
- } elseif (preg_match('/^(.*?)\s+\(Episode\s+(\d+)\)/i', $title, $matches)) {
- $result['series'] = trim($matches[1]);
- $result['episode'] = intval($matches[2]);
- } elseif (preg_match('/^(.*?)\s+[Ee]p\.?\s*(\d+)/i', $title, $matches)) {
- $result['series'] = trim($matches[1]);
- $result['episode'] = intval($matches[2]);
- } else {
- // Nur Serie ohne Episodennummer
- $result['series'] = $title;
- }
-
- // Entferne "English Subbed" vom Seriennamen
- $result['series'] = preg_replace('/\s+English\s+Subbed$/i', '', $result['series']);
-
- return $result;
- }
-
- /**
- * Ruft den vollständigen Inhalt von der Detailseite ab
- */
- private function getFullContent($url) {
- // User-Agent bleibt durch die ini_set in collectData() bestehen
- $html = getSimpleHTMLDOM($url);
-
- if (!$html) {
- return null;
- }
-
- $content = '';
-
- // Versuche, die Beschreibung und andere Details zu extrahieren
- $descriptionElement = $html->find('div.entry-content', 0);
- if ($descriptionElement) {
- $content .= 'Beschreibung
';
- $content .= $descriptionElement->innertext;
- }
-
- // Tags oder Kategorien
- $tagsElement = $html->find('div.entry-tags', 0);
- if ($tagsElement) {
- $content .= 'Tags
';
- $content .= $tagsElement->innertext;
- }
-
- return $content;
- }
-
- /**
- * Versucht, ein Datum aus der Detailseite zu extrahieren
- */
- private function extractDateFromDetail($content) {
- // Versuche ein Datumsmuster zu finden
- if (preg_match('/(\d{4}[-\/]\d{1,2}[-\/]\d{1,2})/', $content, $matches)) {
- return strtotime($matches[1]);
- }
-
- // Versuche nach einem Datum im Format "April 15, 2023" zu suchen
- $months = implode('|', [
- 'January', 'February', 'March', 'April', 'May', 'June',
- 'July', 'August', 'September', 'October', 'November', 'December'
- ]);
-
- if (preg_match('/(' . $months . ')\s+(\d{1,2}),\s+(\d{4})/', $content, $matches)) {
- return strtotime($matches[1] . ' ' . $matches[2] . ' ' . $matches[3]);
- }
-
- return null;
- }
-
- public function getName() {
- return self::NAME;
- }
-
- public function getURI() {
- return 'https://muchohentai.com/series/%e3%80%90eng-subbed%e3%80%91/?orderby=date';
- }
-}
\ No newline at end of file
diff --git a/README.md b/README.md
index 565df50..b06b32c 100644
--- a/README.md
+++ b/README.md
@@ -97,12 +97,6 @@ Diese Sammlung enthält verschiedene Bridge-Implementierungen für RSS-Bridge, u
- **Parameter**:
- **Ort**: Wähle einen Ort aus einer Region (z.B. Bad Kissingen, Schweinfurt, Würzburg usw.)
-### [MuchoHentai ENG Subbed Releases](https://bridge.ponywave.de/#bridge-MuchoHentaiBridge) (Von Akamaru)
-- **Beschreibung**: Zeigt neue englisch untertitelte Veröffentlichungen von MuchoHentai
-- **Parameter**:
- - **Limit**: Maximale Anzahl der angezeigten Einträge (Standard: 15)
- - **Vollständige Detailseiten**: Wenn aktiviert, werden zusätzliche Informationen von den Detailseiten abgerufen (langsamer)
-
### [Pokémon GO Bridge](https://bridge.ponywave.de/#bridge-PokemonGOBridge) (Von Brawl, Akamaru)
- **Beschreibung**: Zeigt die neuesten offiziellen "Pokémon GO" Nachrichten