From d865913154006c51411c34c1af828dbc385a3b64 Mon Sep 17 00:00:00 2001 From: Karl Hudgell Date: Sun, 6 Aug 2023 16:48:00 +0100 Subject: [PATCH 1/2] latest update --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 990f7a6..408d8b8 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ GoGo Downloader is based on the now broken **BitAnime**. I have had to rework quite a bit of the code to get it working again, and have ideas for some other improvements, I don't want to mess with the original codebase too much, hence **GoGo Downloader**. -**GoGo Downloader** gets its content from [gogoanime](https://gogoanime.film/). If you get a **404** error, please look up the correct anime name on [gogoanime](https://gogoanime.film/). The application will let you download all the episodes, or you can choose how many episodes you want to download. +**GoGo Downloader** gets its content from [gogoanime](http://gogoanime3.net). If you get a **404** error, please look up the correct anime name on [gogoanime](http://gogoanime3.net). The application will let you download all the episodes, or you can choose how many episodes you want to download. GoGo Anime has changed the way they show download links, and this no longer works via BS4, as the recaptcha blocks the links, but if you are logged in, there are other routes to get to download links, I have taken one of these routes to restore the application. @@ -57,19 +57,19 @@ If you want to run from source, or are using Linux/Mac you can run directly from ## Usage -The anime name is separated by "-". You can either type it manually, or go to [gogoanime.gg](https://gogoanime.gg/) and search for the anime you want to download and copy the name from the URL. +The anime name is separated by "-". You can either type it manually, or go to [gogoanime.gg](https://gogoanime3.gg/) and search for the anime you want to download and copy the name from the URL. ### Examples ##### One word title -- https://gogoanime.gg/category/bakemonogatari >> bakemonogatari -- https://gogoanime.gg/category/steinsgate >> steinsgate +- https://gogoanime3.gg/category/bakemonogatari >> bakemonogatari +- https://gogoanime3.gg/category/steinsgate >> steinsgate ##### Multiple word title -- https://gogoanime.gg/category/shadows-house >> shadows-house -- https://gogoanime.gg/category/kono-subarashii-sekai-ni-shukufuku-wo- >> kono-subarashii-sekai-ni-shukufuku-wo- +- https://gogoanime3.gg/category/shadows-house >> shadows-house +- https://gogoanime3.gg/category/kono-subarashii-sekai-ni-shukufuku-wo- >> kono-subarashii-sekai-ni-shukufuku-wo- # GoGoDownloader CLI From 62712a3897c4a7a0ecb93d50f9a21d731ff96469 Mon Sep 17 00:00:00 2001 From: Karl Hudgell Date: Sun, 6 Aug 2023 16:48:07 +0100 Subject: [PATCH 2/2] latest commit --- CLIOutput/eng.bat | 3 +++ GoGoDownloader.py | 6 +++--- GoGoDownloaderCLI.spec | 40 ++++++++++++++++++++++++++++++++++++++++ backend.py | 32 +++++++++++++++++--------------- config.json.default | 2 +- winRun.bat | 1 + 6 files changed, 65 insertions(+), 19 deletions(-) create mode 100644 CLIOutput/eng.bat create mode 100644 GoGoDownloaderCLI.spec create mode 100644 winRun.bat diff --git a/CLIOutput/eng.bat b/CLIOutput/eng.bat new file mode 100644 index 0000000..f510d09 --- /dev/null +++ b/CLIOutput/eng.bat @@ -0,0 +1,3 @@ +for /R %%a in ("*.mp4") do MP4Box -lang eng "%%a" + +exit \ No newline at end of file diff --git a/GoGoDownloader.py b/GoGoDownloader.py index 3309948..772f845 100644 --- a/GoGoDownloader.py +++ b/GoGoDownloader.py @@ -16,7 +16,7 @@ except AttributeError: def gogodownloader(config): - CURRENT_DOMAIN = config["CurrentGoGoAnimeDomain"] + CURRENT_URL = config["CurrentGoGoAnimeURL"] os.system("cls" if os.name == "nt" else "clear") while True: print( @@ -45,7 +45,7 @@ def gogodownloader(config): title = name.replace("-", " ").title().strip() else: title = name.title().strip() - source = f"https://gogoanime.{CURRENT_DOMAIN}/category/{name}" + source = f"https://{CURRENT_URL}/category/{name}" with requests.get(source) as res: if res.status_code == 200: soup = BeautifulSoup(res.content, "html.parser") @@ -139,7 +139,7 @@ def gogodownloader(config): title, ) gogo.user_logged_in_check() - source = f"https://gogoanime.{CURRENT_DOMAIN}/{name}" + source = f"https://{CURRENT_URL}/{name}" with requests.get(source) as res: soup = BeautifulSoup(res.content, "html.parser") episode_zero = soup.find("h1", {"class": "entry-title"}) # value: 404 diff --git a/GoGoDownloaderCLI.spec b/GoGoDownloaderCLI.spec new file mode 100644 index 0000000..13bdace --- /dev/null +++ b/GoGoDownloaderCLI.spec @@ -0,0 +1,40 @@ +# -*- mode: python ; coding: utf-8 -*- + + +block_cipher = None + + +a = Analysis(['GoGoDownloaderCLI.py'], + pathex=[], + binaries=[], + datas=[], + hiddenimports=[], + hookspath=[], + hooksconfig={}, + runtime_hooks=[], + excludes=[], + win_no_prefer_redirects=False, + win_private_assemblies=False, + cipher=block_cipher, + noarchive=False) +pyz = PYZ(a.pure, a.zipped_data, + cipher=block_cipher) + +exe = EXE(pyz, + a.scripts, + a.binaries, + a.zipfiles, + a.datas, + [], + name='GoGoDownloaderCLI', + debug=False, + bootloader_ignore_signals=False, + strip=False, + upx=True, + upx_exclude=[], + runtime_tmpdir=None, + console=True, + disable_windowed_traceback=False, + target_arch=None, + codesign_identity=None, + entitlements_file=None ) diff --git a/backend.py b/backend.py index 9b79c69..0ce9f6a 100644 --- a/backend.py +++ b/backend.py @@ -94,18 +94,18 @@ class gogoanime: def get_gogoanime_auth_cookie(self): session = requests.session() page = session.get( - f"https://gogoanime.{self.config['CurrentGoGoAnimeDomain']}/login.html" + f"https://{self.config['CurrentGoGoAnimeURL']}/login.html" ) soup = BeautifulSoup(page.content, "html.parser") meta_path = soup.select('meta[name="csrf-token"]') csrf_token = meta_path[0].attrs["content"] - url = f"https://gogoanime.{self.config['CurrentGoGoAnimeDomain']}/login.html" + url = f"https://{self.config['CurrentGoGoAnimeURL']}/login.html" payload = f"email={self.config['GoGoAnime_Username']}&password={self.config['GoGoAnime_Password']}&_csrf={csrf_token}" headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36", "authority": "gogo-cdn.com", - "referer": f"https://gogoanime.{self.config['CurrentGoGoAnimeDomain']}/", + "referer": f"https://{self.config['CurrentGoGoAnimeURL']}/", "content-type": "application/x-www-form-urlencoded", } session.headers = headers @@ -121,7 +121,7 @@ class gogoanime: self, ): page = requests.get( - f"https://gogoanime.{self.config['CurrentGoGoAnimeDomain']}/one-piece-episode-1", + f"https://{self.config['CurrentGoGoAnimeURL']}/one-piece-episode-1", cookies=dict(auth=gogoanime.get_gogoanime_auth_cookie(self)), ) soup = BeautifulSoup(page.content, "html.parser") @@ -133,14 +133,14 @@ class gogoanime: def get_links(self, source=None): if source is not None: - source_ep = f"https://gogoanime.{self.config['CurrentGoGoAnimeDomain']}/{self.name}-episode-" + source_ep = f"https://{self.config['CurrentGoGoAnimeURL']}/{self.name}-episode-" episode_links = [ f"{source_ep}{i}" for i in range(self.episode_start, self.episode_end + 1) ] episode_links.insert(0, source) else: - source_ep = f"https://gogoanime.{self.config['CurrentGoGoAnimeDomain']}/{self.name}-episode-" + source_ep = f"https://{self.config['CurrentGoGoAnimeURL']}/{self.name}-episode-" episode_links = [ f"{source_ep}{i}" for i in range(self.episode_start, self.episode_end + 1) @@ -197,19 +197,21 @@ class gogoanime: ("authority", "gogo-cdn.com"), ( "referer", - f"https://gogoanime.{self.config['CurrentGoGoAnimeDomain']}/", + f"https://{self.config['CurrentGoGoAnimeURL']}/", ), ] ), ) - + for link in file_list: if link is not None: - dl.enqueue_file( - link, - path=f"./{self.title}", - ) - + try: + dl.enqueue_file( + link, + path=f"./{self.title}", + ) + except: + pass files = dl.download() return files @@ -218,7 +220,7 @@ class gogoanime: bookmarkList = [] a = dict(auth=gogoanime.get_gogoanime_auth_cookie(self)) resp = requests.get( - f"https://gogoanime.{self.config['CurrentGoGoAnimeDomain']}/user/bookmark", + f"https://{self.config['CurrentGoGoAnimeURL']}/user/bookmark", cookies=a, ) soup = BeautifulSoup(resp.text, "html.parser") @@ -242,7 +244,7 @@ class gogoanime: { "showName": animeName, "latestEpisode": int(episodeNum), - "downloadURL": f"https://gogoanime.{self.config['CurrentGoGoAnimeDomain']}/{animeDownloadName}-episode-{str(episodeNum)}", + "downloadURL": f"https://{self.config['CurrentGoGoAnimeURL']}/{animeDownloadName}-episode-{str(episodeNum)}", } ) with open("bookmarkList.json", "w") as f: diff --git a/config.json.default b/config.json.default index 5bce992..c03ab95 100644 --- a/config.json.default +++ b/config.json.default @@ -2,7 +2,7 @@ "GoGoAnime_Username":"", "GoGoAnime_Password":"", "MaxConcurrentDownloads": 4, - "CurrentGoGoAnimeDomain": "gg", + "CurrentGoGoAnimeURL": "gogoanime3.net", "OverwriteDownloads": 0, "CLIQuality":"720", "CLIDownloadLocation": "CLIOutput", diff --git a/winRun.bat b/winRun.bat new file mode 100644 index 0000000..3267759 --- /dev/null +++ b/winRun.bat @@ -0,0 +1 @@ +cd C:\Users\Karl.Hudgell\Documents\GoGoDownloader && venv\Scripts\activate && python GoGoDownloaderCLI.py \ No newline at end of file