mirror of
https://github.com/karl0ss/GoGoDownloader.git
synced 2025-04-28 04:13:40 +01:00
latest commit
This commit is contained in:
parent
d865913154
commit
62712a3897
3
CLIOutput/eng.bat
Normal file
3
CLIOutput/eng.bat
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
for /R %%a in ("*.mp4") do MP4Box -lang eng "%%a"
|
||||||
|
|
||||||
|
exit
|
@ -16,7 +16,7 @@ except AttributeError:
|
|||||||
|
|
||||||
|
|
||||||
def gogodownloader(config):
|
def gogodownloader(config):
|
||||||
CURRENT_DOMAIN = config["CurrentGoGoAnimeDomain"]
|
CURRENT_URL = config["CurrentGoGoAnimeURL"]
|
||||||
os.system("cls" if os.name == "nt" else "clear")
|
os.system("cls" if os.name == "nt" else "clear")
|
||||||
while True:
|
while True:
|
||||||
print(
|
print(
|
||||||
@ -45,7 +45,7 @@ def gogodownloader(config):
|
|||||||
title = name.replace("-", " ").title().strip()
|
title = name.replace("-", " ").title().strip()
|
||||||
else:
|
else:
|
||||||
title = name.title().strip()
|
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:
|
with requests.get(source) as res:
|
||||||
if res.status_code == 200:
|
if res.status_code == 200:
|
||||||
soup = BeautifulSoup(res.content, "html.parser")
|
soup = BeautifulSoup(res.content, "html.parser")
|
||||||
@ -139,7 +139,7 @@ def gogodownloader(config):
|
|||||||
title,
|
title,
|
||||||
)
|
)
|
||||||
gogo.user_logged_in_check()
|
gogo.user_logged_in_check()
|
||||||
source = f"https://gogoanime.{CURRENT_DOMAIN}/{name}"
|
source = f"https://{CURRENT_URL}/{name}"
|
||||||
with requests.get(source) as res:
|
with requests.get(source) as res:
|
||||||
soup = BeautifulSoup(res.content, "html.parser")
|
soup = BeautifulSoup(res.content, "html.parser")
|
||||||
episode_zero = soup.find("h1", {"class": "entry-title"}) # value: 404
|
episode_zero = soup.find("h1", {"class": "entry-title"}) # value: 404
|
||||||
|
40
GoGoDownloaderCLI.spec
Normal file
40
GoGoDownloaderCLI.spec
Normal file
@ -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 )
|
30
backend.py
30
backend.py
@ -94,18 +94,18 @@ class gogoanime:
|
|||||||
def get_gogoanime_auth_cookie(self):
|
def get_gogoanime_auth_cookie(self):
|
||||||
session = requests.session()
|
session = requests.session()
|
||||||
page = session.get(
|
page = session.get(
|
||||||
f"https://gogoanime.{self.config['CurrentGoGoAnimeDomain']}/login.html"
|
f"https://{self.config['CurrentGoGoAnimeURL']}/login.html"
|
||||||
)
|
)
|
||||||
soup = BeautifulSoup(page.content, "html.parser")
|
soup = BeautifulSoup(page.content, "html.parser")
|
||||||
meta_path = soup.select('meta[name="csrf-token"]')
|
meta_path = soup.select('meta[name="csrf-token"]')
|
||||||
csrf_token = meta_path[0].attrs["content"]
|
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}"
|
payload = f"email={self.config['GoGoAnime_Username']}&password={self.config['GoGoAnime_Password']}&_csrf={csrf_token}"
|
||||||
headers = {
|
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",
|
"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",
|
"authority": "gogo-cdn.com",
|
||||||
"referer": f"https://gogoanime.{self.config['CurrentGoGoAnimeDomain']}/",
|
"referer": f"https://{self.config['CurrentGoGoAnimeURL']}/",
|
||||||
"content-type": "application/x-www-form-urlencoded",
|
"content-type": "application/x-www-form-urlencoded",
|
||||||
}
|
}
|
||||||
session.headers = headers
|
session.headers = headers
|
||||||
@ -121,7 +121,7 @@ class gogoanime:
|
|||||||
self,
|
self,
|
||||||
):
|
):
|
||||||
page = requests.get(
|
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)),
|
cookies=dict(auth=gogoanime.get_gogoanime_auth_cookie(self)),
|
||||||
)
|
)
|
||||||
soup = BeautifulSoup(page.content, "html.parser")
|
soup = BeautifulSoup(page.content, "html.parser")
|
||||||
@ -133,14 +133,14 @@ class gogoanime:
|
|||||||
|
|
||||||
def get_links(self, source=None):
|
def get_links(self, source=None):
|
||||||
if source is not 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 = [
|
episode_links = [
|
||||||
f"{source_ep}{i}"
|
f"{source_ep}{i}"
|
||||||
for i in range(self.episode_start, self.episode_end + 1)
|
for i in range(self.episode_start, self.episode_end + 1)
|
||||||
]
|
]
|
||||||
episode_links.insert(0, source)
|
episode_links.insert(0, source)
|
||||||
else:
|
else:
|
||||||
source_ep = f"https://gogoanime.{self.config['CurrentGoGoAnimeDomain']}/{self.name}-episode-"
|
source_ep = f"https://{self.config['CurrentGoGoAnimeURL']}/{self.name}-episode-"
|
||||||
episode_links = [
|
episode_links = [
|
||||||
f"{source_ep}{i}"
|
f"{source_ep}{i}"
|
||||||
for i in range(self.episode_start, self.episode_end + 1)
|
for i in range(self.episode_start, self.episode_end + 1)
|
||||||
@ -197,7 +197,7 @@ class gogoanime:
|
|||||||
("authority", "gogo-cdn.com"),
|
("authority", "gogo-cdn.com"),
|
||||||
(
|
(
|
||||||
"referer",
|
"referer",
|
||||||
f"https://gogoanime.{self.config['CurrentGoGoAnimeDomain']}/",
|
f"https://{self.config['CurrentGoGoAnimeURL']}/",
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
),
|
),
|
||||||
@ -205,11 +205,13 @@ class gogoanime:
|
|||||||
|
|
||||||
for link in file_list:
|
for link in file_list:
|
||||||
if link is not None:
|
if link is not None:
|
||||||
dl.enqueue_file(
|
try:
|
||||||
link,
|
dl.enqueue_file(
|
||||||
path=f"./{self.title}",
|
link,
|
||||||
)
|
path=f"./{self.title}",
|
||||||
|
)
|
||||||
|
except:
|
||||||
|
pass
|
||||||
files = dl.download()
|
files = dl.download()
|
||||||
return files
|
return files
|
||||||
|
|
||||||
@ -218,7 +220,7 @@ class gogoanime:
|
|||||||
bookmarkList = []
|
bookmarkList = []
|
||||||
a = dict(auth=gogoanime.get_gogoanime_auth_cookie(self))
|
a = dict(auth=gogoanime.get_gogoanime_auth_cookie(self))
|
||||||
resp = requests.get(
|
resp = requests.get(
|
||||||
f"https://gogoanime.{self.config['CurrentGoGoAnimeDomain']}/user/bookmark",
|
f"https://{self.config['CurrentGoGoAnimeURL']}/user/bookmark",
|
||||||
cookies=a,
|
cookies=a,
|
||||||
)
|
)
|
||||||
soup = BeautifulSoup(resp.text, "html.parser")
|
soup = BeautifulSoup(resp.text, "html.parser")
|
||||||
@ -242,7 +244,7 @@ class gogoanime:
|
|||||||
{
|
{
|
||||||
"showName": animeName,
|
"showName": animeName,
|
||||||
"latestEpisode": int(episodeNum),
|
"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:
|
with open("bookmarkList.json", "w") as f:
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
"GoGoAnime_Username":"",
|
"GoGoAnime_Username":"",
|
||||||
"GoGoAnime_Password":"",
|
"GoGoAnime_Password":"",
|
||||||
"MaxConcurrentDownloads": 4,
|
"MaxConcurrentDownloads": 4,
|
||||||
"CurrentGoGoAnimeDomain": "gg",
|
"CurrentGoGoAnimeURL": "gogoanime3.net",
|
||||||
"OverwriteDownloads": 0,
|
"OverwriteDownloads": 0,
|
||||||
"CLIQuality":"720",
|
"CLIQuality":"720",
|
||||||
"CLIDownloadLocation": "CLIOutput",
|
"CLIDownloadLocation": "CLIOutput",
|
||||||
|
1
winRun.bat
Normal file
1
winRun.bat
Normal file
@ -0,0 +1 @@
|
|||||||
|
cd C:\Users\Karl.Hudgell\Documents\GoGoDownloader && venv\Scripts\activate && python GoGoDownloaderCLI.py
|
Loading…
x
Reference in New Issue
Block a user