Skip to content

Commit

Permalink
v.15.0.0 - Refactor package structure
Browse files Browse the repository at this point in the history
  • Loading branch information
rix1337 committed Jun 15, 2022
1 parent 4104e30 commit 97bbd0e
Show file tree
Hide file tree
Showing 63 changed files with 224 additions and 263 deletions.
85 changes: 10 additions & 75 deletions .github/Changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,88 +6,23 @@

### Changelog FeedCrawler:

- **14.4.1** Neues Funktion um Pakete zu De-/Aktivieren.
- **14.4.1** Neues Detail-Pop-Up um Paketname, Pfad und URLs eines Pakets anzuzeigen.
- **14.4.1** KatFile als Hoster hinzugefügt
- **14.4.1** Vereinheitlichung von Lade-Spinnern und Löschen-Icons im Web-Interface.
- **14.4.0** DW in die Feed-Suche integriert.
- **14.4.0** Zeige einen Spinner während ein Update des JDownloaders über das Web-Interface durchgeführt wird.
- **14.4.0** Unterdrücke Fehlermeldungen aus der Prüfung der Direktverbindung per IP zum JDownloader.
- **14.4.0** Auto-Update-Funktion greift nur bei inaktivem JDownloader.
- **14.3.0** Bugfix im Aufbau der Direktverbindung per IP zum JDownloader.
- **14.3.0** Synchronisiere Verbindung zum JDownloader zwischen Feed-Suche, Web-Interface und Paket-Überwachungsjob.
- **14.3.0** Optionale Auto-Update-Funktion für den JDownloader, die am Ende jedes Suchlaufes durchgeführt wird.
- **14.3.0** Reaktiviere JDownloader Update-Funktion im Web-Interface.
- **14.3.0** Wähle JDownloader Gerät nur dann automatisch, wenn nicht bereits ein Gerätename in den Einstellungen
definiert ist.
- **14.3.0** Gleiche Ausgabe der Dateigrößen aus Feeds und den JDownloader-Informationen im Webinterface an.
- **14.2.8** Anzahl der maximalen Fehlversuche pro Paket im
[FeedCrawler Sponsors Helper](https://github.com/rix1337/FeedCrawler/wiki/5.-FeedCrawler-Sponsors-Helper) sind jetzt
konfigurierbar.
- **14.2.8** Schätze Episodengröße auf SF, auch wenn mehrere Episoden in einem Release vorhanden sind.
- **14.2.8** Bugfixes in Log-Meldung beim Start und dem Web-Interface
- **14.2.7** Schätze Episodengröße auf SF, auch wenn für das Release die Anzahl der Episoden nicht bekannt ist.
- **14.2.7** Möglicher Bugfix in Verbindung zum JDownloader
- **14.2.6** Nutze [FormKit](https://formkit.com/) für bessere Validierung der Web-Suche und Suchlisten.
- **14.2.6** Bugfix (#639): Web-Interface beachtet wieder die gesetzte Paketanzahl pro Seite
- **14.2.5** Weitere Verbesserungen in den Telegram-Benachrichtigungen
- **14.2.5** Weitere Verbesserungen in [FormKit](https://formkit.com/)-Nutzung
- **14.2.4** Nutze [FormKit](https://formkit.com/) für bessere Validierung der Einstellungen
- **14.2.4** Erkenne ob NK den Feed-Abruf blockiert.
- **14.2.4** Versuche beim Start 5x eine Verbindung zum JDownloader aufzubauen (mit 60 Sekunden Wartezeit),
bevor der Start scheitert.
- **14.2.3** Bugfix (#635)
- **14.2.2** Für SF werden jetzt Release-Größe und IMDb-Poster erkannt, wenn verfügbar.
- Bei Episoden wird anhand der Episodenanzahl die Release-Größe anhand der Staffel gemittelt.
- Nicht jede Serie verfügt auf SF über eine IMDb-ID, weswegen Poster nur teilweise verfügbar sind.
- SJ/DJ bieten weder Release-Größe, noch IMDb-IDs für den Poster-Abruf
- **14.2.2** Vereinheitlichte Schreibweise der Release-Größen.
- **14.2.1** Bugfix
- **14.2.0** Benachrichtigungen, Web-Interface und Log beinhalten Link zur Release-Quelle
- **14.2.0** Benachrichtigungen, Web-Interface und Log beinhalten die Release-Größe, wo verfügbar
- **14.2.0** Telegram Benachrichtigungen enthalten IMDb-Poster, wo verfügbar
- **14.1.3** Verhindere Incomplete-Read-Fehler (#627)
- **14.1.3** Erkenne und verhindere Verarbeitung von Ombi-Anfragen ohne IMDb-ID
- **14.1.2** Detailverbesserungen im Web-Interface, insbesondere der Log-Darstellung
- **14.1.2** Überarbeitete interne Paketstruktur
- **14.1.1** Bugfix im Log bei nicht erfolgreichem Sponsors Helper
- **14.1.0** Refactoring im Frontend um mehr Bootstrap Standards zu nutzen (sowie Sass)
- **14.1.0** Erhöhte Stabilität in der Verbindung zum JDownloader
- **14.0.4** Die Wartezeit (vormals SF/FF-Intervall) gilt jetzt auch für SJ/DJ.
- Die Ban-Erkennung von SJ/DJ ist mittlerweile ähnlich streng wie bei SF/FF.
- Die Einstellung wurde von SF/FF in die allgemeinen Einstellungen verschoben.
- **14.0.4** Verbesserungen beim Setzen und Auslesen der Ombi/Overseerr-URL (#622)
- **14.0.4** Bugfix in der Episodensuche per Ombi (#622)
- **14.0.4** Bugfix in der Staffelsuche auf SF (#622)
- **14.0.4** Bugfixes im Informationsabruf aus der IMDb (#622)
- **14.0.3** Erhöhte Stabilität in der Verbindung zum JDownloader
- Docker-interne IP-Adressen werden bei der Verbindung ignoriert
- Für alle anderen IP-Adressen wurde der Timeout erhöht
- So kommt es zu weniger Timeouts und Verbindungsabbrüchen
- **14.0.3** Der Sponsors-Helper-Click'n'Load funktioniert wieder.
- **14.0.2** Lösche Paket
durch [FeedCrawler Sponsors Helper](https://github.com/rix1337/FeedCrawler/wiki/5.-FeedCrawler-Sponsors-Helper) nach
drei Fehlversuchen.
- **14.0.1** Bugfixes (#614)
- **14.0.0** Die Overseerr-Suche für Serien geht jetzt Staffelweise vor.
- **14.0.0** Das Passwort für das Web-Interface muss neu vergeben werden, sofern zuvor eines genutzt wurde.
- **14.0.0** Entfernung der folgenden Dependencies:
- docopt (zugunsten der Python-internen argparse-Bibliothek)
- flask (zugunsten der weniger komplexen bottle-Bibliothek)
- passlib (zugunsten der sichereren scrypt-Methode der pycryptodomex-Bibliothek)
- python-dateutil (zugunsten einer eigenen Implementierung auf Basis der Python-internen datetime-Bibliothek)
- requests (zugunsten einer eigenen Implementierung auf Basis der Python-internen urllib-Bibliothek)
- simplejson (zugunsten der Python-internen json-Bibliothek)
- waitress (zugunsten einer eigenen Implementierung auf Basis der Python-internen wsgiref-Bibliothek)
- **15.0.0** DW Web-Suche hinzugefügt.
- **15.0.0** Interne Paketstruktur erneut überarbeitet.
- **15.0.0** Der interne Request Handler unterstützt nun auch HTTP-Authentifizierung per URL und Proxies
(derzeit ungenutzt).

### Changelog [FeedCrawler Sponsors Helper](https://github.com/rix1337/FeedCrawler/wiki/5.-FeedCrawler-Sponsors-Helper):

Punkte, die den [FeedCrawler Sponsors Helper](https://github.com/rix1337/RSScrawler/wiki/5.-FeedCrawler-Sponsors-Helper)
betreffen, werden erst nach dessen Update aktiv.

- **6.0.0** Der Helper nutzt analog zum FeedCrawler weniger externe Python-Dependencies
(`docopt`, `flask` und `waitress` wurden entfernt).
- **5.3.0** Der Helper nutzt jetzt [Click'n'Load2FeedCrawler](https://github.com/rix1337/ClickNLoad2FeedCrawler)
in Version 2.0.1.
- **5.3.0** Der Helper nutzt jetzt Chrome (Version 102) im Dark Mode.
- **5.2.0** Der Helper funktioniert jetzt in Kombination mit aktivem Benutzernamen/Passwort im FeedCrawler,
siehe [Wiki](https://github.com/rix1337/FeedCrawler/wiki/5.-FeedCrawler-Sponsors-Helper#passwortgesch%C3%BCtzter-feedcrawler)
.
siehe [Wiki](https://github.com/rix1337/FeedCrawler/wiki/5.-FeedCrawler-Sponsors-Helper#passwortgesch%C3%BCtzter-feedcrawler).
- **5.1.0** Das interne Webinterface nutzt ab sofort [petite-vue](https://github.com/vuejs/petite-vue).
- **5.0.0** Basiert ab sofort auf eigenem Basis-Image (Ubuntu 22.04 und Google Chrome 100)
- Die Funktionalität entspricht der Vorversion inklusive Zugriff per VNC/Web-Browser.
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Für **Rückfragen** und Allgemeines gibt es den [Chat auf gitter](https://gitte

- **Genutzte Version** (kein Support für alte Releases)

- **Wird Python 3.9 oder aktueller genutzt?**
- **Wird Python 3.6 oder aktueller genutzt?**

## Fehlerbeschreibung

Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/CreateRelease.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@ jobs:
node-version: 16.x
- name: Install dependencies
run: npm ci
working-directory: feedcrawler/web
working-directory: feedcrawler/web_interface/vuejs_frontend
- run: npm run build
working-directory: feedcrawler/web
working-directory: feedcrawler/web_interface/vuejs_frontend
- name: Compile Linux wheel
run: |
python setup.py sdist bdist_wheel
Expand Down Expand Up @@ -66,13 +66,13 @@ jobs:
node-version: 16.x
- name: Install dependencies
run: npm ci
working-directory: feedcrawler/web
working-directory: feedcrawler/web_interface/vuejs_frontend
- run: npm run build
working-directory: feedcrawler/web
working-directory: feedcrawler/web_interface/vuejs_frontend
- name: Compile Windows Exe
run: |
$version = python feedcrawler/version.py
pyinstaller --onefile -y -i "feedcrawler/web/public/favicon.ico" --version-file "file_version_info.txt" --add-data "feedcrawler/web;web" "FeedCrawler.py" -n "feedcrawler-$version-standalone-win64"
pyinstaller --onefile -y -i "feedcrawler/web_interface/vuejs_frontend/public/favicon.ico" --version-file "file_version_info.txt" --add-data "feedcrawler/web;web" "FeedCrawler.py" -n "feedcrawler-$version-standalone-win64"
- name: Upload Windows Exe
uses: actions/upload-artifact@v2
with:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/RunTests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,6 @@ jobs:
node-version: ${{ matrix.node-version }}
- name: Install dependencies
run: npm ci
working-directory: feedcrawler/web
working-directory: feedcrawler/web_interface/vuejs_frontend
- run: npm run build --if-present
working-directory: feedcrawler/web
working-directory: feedcrawler/web_interface/vuejs_frontend
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -35,5 +35,5 @@ venv
.eggs

# Vue
feedcrawler/web/node_modules
feedcrawler/web/dist
feedcrawler/web_interface/vuejs_frontend/node_modules
feedcrawler/web_interface/vuejs_frontend/dist
2 changes: 1 addition & 1 deletion MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1 +1 @@
recursive-include feedcrawler/web/dist *
recursive-include feedcrawler/web_interface/vuejs_frontend/dist *
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# FeedCrawler

<img src="https://raw.githubusercontent.com/rix1337/FeedCrawler/master/feedcrawler/web/public/favicon.ico" data-canonical-src="https://raw.githubusercontent.com/rix1337/FeedCrawler/master/feedcrawler/web/public/favicon.ico" width="64" height="64" />
<img src="https://raw.githubusercontent.com/rix1337/FeedCrawler/master/feedcrawler/web_interface/vuejs_frontend/public/favicon.ico" data-canonical-src="https://raw.githubusercontent.com/rix1337/FeedCrawler/master/feedcrawler/web_interface/vuejs_frontend/public/favicon.ico" width="64" height="64" />

FeedCrawler automatisiert bequem das Hinzufügen von Links für den JDownloader.

Expand Down Expand Up @@ -31,14 +31,14 @@ FeedCrawler automatisiert bequem das Hinzufügen von Links für den JDownloader.

### Voraussetzungen

* [Python 3.7](https://www.python.org/downloads/) oder neuer
* [Python 3.6](https://www.python.org/downloads/) oder neuer
* [JDownloader 2](http://www.jdownloader.org/jdownloader2) mit [My JDownloader-Konto](https://my.jdownloader.org)
* [FlareSolverr](https://github.com/FlareSolverr/FlareSolverr) ab v.2.0.0 um Cloudflare-Blockaden zu umgehen (optional)

### Lokaler Build
Benötigt [Node.js](https://nodejs.org/en/download/), [npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) und [pip](https://pip.pypa.io/en/stable/installation/):

1. Frontend-Pfad aufrufen: `cd feedcrawler/web`
1. Frontend-Pfad aufrufen: `cd feedcrawler/web_interface/vuejs_frontend`
2. Dependencies installieren: `npm ci`
3. [Vue.js 3](https://vuejs.org/) Frontend kompilieren: `npm run build`
4. Zurück in das Hauptverzeichnis wechseln: `cd ../..`
Expand Down
2 changes: 1 addition & 1 deletion feedcrawler/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@
from urllib.parse import urlparse

from feedcrawler import internal
from feedcrawler import myjdapi
from feedcrawler.config import CrawlerConfig
from feedcrawler.db import FeedDb
from feedcrawler.db import ListDb
from feedcrawler.external_tools import myjdapi


class Unbuffered(object):
Expand Down
22 changes: 11 additions & 11 deletions feedcrawler/crawler.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,17 @@
from feedcrawler.common import Unbuffered, is_device, readable_time
from feedcrawler.config import CrawlerConfig
from feedcrawler.db import FeedDb
from feedcrawler.external_sites.content_all_by import BL as BY
from feedcrawler.external_sites.content_all_dw import BL as DW
from feedcrawler.external_sites.content_all_ff import BL as FF
from feedcrawler.external_sites.content_all_fx import BL as FX
from feedcrawler.external_sites.content_all_hw import BL as HW
from feedcrawler.external_sites.content_all_nk import BL as NK
from feedcrawler.external_sites.content_all_ww import BL as WW
from feedcrawler.external_sites.content_custom_dd import DD
from feedcrawler.external_sites.content_shows_dj import DJ
from feedcrawler.external_sites.content_shows_sf import SF
from feedcrawler.external_sites.content_shows_sj import SJ
from feedcrawler.external_sites.feed_search.sites.content_all_by import BL as BY
from feedcrawler.external_sites.feed_search.sites.content_all_dw import BL as DW
from feedcrawler.external_sites.feed_search.sites.content_all_ff import BL as FF
from feedcrawler.external_sites.feed_search.sites.content_all_fx import BL as FX
from feedcrawler.external_sites.feed_search.sites.content_all_hw import BL as HW
from feedcrawler.external_sites.feed_search.sites.content_all_nk import BL as NK
from feedcrawler.external_sites.feed_search.sites.content_all_ww import BL as WW
from feedcrawler.external_sites.feed_search.sites.content_custom_dd import DD
from feedcrawler.external_sites.feed_search.sites.content_shows_dj import DJ
from feedcrawler.external_sites.feed_search.sites.content_shows_sf import SF
from feedcrawler.external_sites.feed_search.sites.content_shows_sj import SJ
from feedcrawler.external_tools.ombi import ombi
from feedcrawler.external_tools.overseerr import overseerr
from feedcrawler.http_requests.flaresolverr_handler import clean_flaresolverr_sessions
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,18 +12,18 @@
from feedcrawler.common import is_hevc
from feedcrawler.common import is_retail
from feedcrawler.db import ListDb
from feedcrawler.external_sites.shared.imdb import get_rating
from feedcrawler.external_sites.shared.imdb import get_votes
from feedcrawler.external_sites.shared.imdb import get_year
from feedcrawler.external_sites.shared.imdb import original_language_not_german
from feedcrawler.external_sites.shared.internal_feed import add_decrypt_instead_of_download
from feedcrawler.external_sites.shared.internal_feed import by_page_download_link
from feedcrawler.external_sites.shared.internal_feed import fx_get_download_links
from feedcrawler.external_sites.shared.internal_feed import get_search_results
from feedcrawler.external_sites.shared.internal_feed import hw_get_download_links
from feedcrawler.external_sites.shared.internal_feed import nk_page_download_link
from feedcrawler.external_sites.feed_search.shared import add_decrypt_instead_of_download
from feedcrawler.external_sites.feed_search.shared import by_page_download_link
from feedcrawler.external_sites.feed_search.shared import fx_get_download_links
from feedcrawler.external_sites.feed_search.shared import get_search_results
from feedcrawler.external_sites.feed_search.shared import hw_get_download_links
from feedcrawler.external_sites.feed_search.shared import nk_page_download_link
from feedcrawler.external_sites.metadata.imdb import get_rating
from feedcrawler.external_sites.metadata.imdb import get_votes
from feedcrawler.external_sites.metadata.imdb import get_year
from feedcrawler.external_sites.metadata.imdb import original_language_not_german
from feedcrawler.myjd import myjd_download
from feedcrawler.notifiers import notify
from feedcrawler.notifications import notify
from feedcrawler.url import get_url


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
from feedcrawler import internal
from feedcrawler.db import ListDb
from feedcrawler.myjd import add_decrypt
from feedcrawler.notifiers import notify
from feedcrawler.notifications import notify
from feedcrawler.url import get_url
from feedcrawler.url import get_url_headers

Expand Down Expand Up @@ -55,7 +55,7 @@ def feed_url(self):
return False


def send_package(self, title, link, language_id, season, episode, site, source, size, imdb_id):
def send_package(self, title, link, language_id, season, episode, site, source, size, imdb_id):
englisch = ''
if language_id == 2:
englisch = '/Englisch'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,28 +15,26 @@
# {
# 'value': """HTML-Inhalt der entweder direkt Download-Links (inklusive Hoster-Bezeichnung)
# enthält, oder Links zu der eigentlichen Seite enthält, auf der die Links zu finden
# sind.
# Der folgende IMDb-Link ist notwendig, um das Release eindeutig einer IMDb-Seite
# zuzuordnen. Der zeichengenaue Aufbau ist wichtig, damit die Feed-Suche den Link
# erkennt: <a href="http://www.imdb.com/title/tt0012345/" 9.9</a>
# Das Dateiformat "mkv" muss ebenfalls zwingend im Text vorhanden sein: mkv"""
# sind. Das Dateiformat "mkv" muss zwingend im Text vorhanden sein: mkv"""
# }
# ]
# ],
# 'source': 'https://example.com/2022/02/15/release-1/',
# 'size': '2.89 GB',
# 'imdb_id': 'tt1234567',
# },
# {
# 'title': 'Release.2.Title-Group',
# 'published': '01.01.2000 / 00:10 Uhr',
# 'content': [
# {
# 'value': """HTML-Inhalt der entweder direkt Download-Links (inklusive Hoster-Bezeichnung)
# enthält, oder Links zu der eigentlichen Seite enthält, auf der die Links zu finden
# sind.
# Der folgende IMDb-Link ist notwendig, um das Release eindeutig einer IMDb-Seite
# zuzuordnen. Der zeichengenaue Aufbau ist wichtig, damit die Feed-Suche den Link
# erkennt: <a href="http://www.imdb.com/title/tt0012345/" 9.9</a>
# Das Dateiformat "mkv" muss ebenfalls zwingend im Text vorhanden sein: mkv"""
# enthält, oder Links zu der eigentlichen Seite enthält, auf der die Links zu finden
# sind. Das Dateiformat "mkv" muss zwingend im Text vorhanden sein: mkv"""
# }
# ]
# ],
# 'source': 'https://example.com/2000/01/01/release-2/',
# 'size': '3.28 GB',
# 'imdb_id': 'tt1234567',
# }
# ]
# }
Expand All @@ -53,13 +51,19 @@
# feed = {
# 'entries': [
# {
# 'title': 'Release.1.Title-Group',
# 'title': 'Release.1.Title.S01-Group',
# 'series_url': 'https://link.zu/website_mit_download_links_des_ersten_releases',
# 'published': '2000-01-30T00:00:00.999Z'},
# 'source': 'https://link.zu/website_mit_download_links_des_ersten_releases#Release.1.Title.S01-Group',
# 'size': '13.37 GB',
# 'imdb_id': 'tt1234567',
# {
# 'title': 'Release.2.Title-Group',
# 'title': 'Release.2.Title.S10E42-Group',
# 'series_url': 'https://link.zu/website_mit_download_links_des_zweiten_releases',
# 'published': '2000-01-30T00:10:00.999Z'}
# 'source': 'https://link.zu/website_mit_download_links_des_zweiten_releases#Release.2.Title.S10E42-Group',
# 'size': '800.01 MB',
# 'imdb_id': 'tt1234567',
# ]
# }
#
Expand Down Expand Up @@ -88,11 +92,11 @@
from feedcrawler.common import rreplace
from feedcrawler.common import simplified_search_term_in_title
from feedcrawler.config import CrawlerConfig
from feedcrawler.external_sites.shared.imdb import get_imdb_id_from_content
from feedcrawler.external_sites.shared.imdb import get_imdb_id_from_link
from feedcrawler.external_sites.shared.imdb import get_imdb_id_from_title
from feedcrawler.external_sites.metadata.imdb import get_imdb_id_from_content
from feedcrawler.external_sites.metadata.imdb import get_imdb_id_from_link
from feedcrawler.external_sites.metadata.imdb import get_imdb_id_from_title
from feedcrawler.myjd import add_decrypt
from feedcrawler.notifiers import notify
from feedcrawler.notifications import notify
from feedcrawler.url import get_redirected_url
from feedcrawler.url import get_url
from feedcrawler.url import get_urls_async
Expand Down
File renamed without changes.
Loading

0 comments on commit 97bbd0e

Please sign in to comment.