Skip to content

Commit d9c76af

Browse files
committed
Update server.py
1 parent 9c320e5 commit d9c76af

1 file changed

Lines changed: 108 additions & 6 deletions

File tree

animeworld/server.py

Lines changed: 108 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ def _sanitize(self, title: str) -> str: # Toglie i caratteri illegali per i file
6161
for x in illegal:
6262
title = title.replace(x, '')
6363
return title
64-
64+
6565
def fileInfo(self) -> Dict[str,str]:
6666
"""
6767
Recupera le informazioni del file dell'episodio.
@@ -78,6 +78,12 @@ def fileInfo(self) -> Dict[str,str]:
7878
```
7979
"""
8080

81+
raise ServerNotSupported(self.name)
82+
83+
def _fileInfoIn(self) -> Dict[str,str]:
84+
"""
85+
Recupera le informazioni del file dell'episodio usando requests.
86+
"""
8187
url = self._getFileLink()
8288

8389
with SES.head(url) as r:
@@ -91,6 +97,35 @@ def fileInfo(self) -> Dict[str,str]:
9197
"server_id": self.Nid,
9298
"url": url
9399
}
100+
101+
def _fileInfoEx(self) -> Dict[str,str]:
102+
"""
103+
Recupera le informazioni del file dell'episodio usando yutube_dl.
104+
"""
105+
106+
class MyLogger(object):
107+
def debug(self, msg):
108+
pass
109+
def warning(self, msg):
110+
pass
111+
def error(self, msg):
112+
print(msg)
113+
return False
114+
115+
ydl_opts = {
116+
'logger': MyLogger()
117+
}
118+
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
119+
url = self._getFileLink()
120+
info = ydl.extract_info(url, download=False)
121+
return {
122+
"content_type": "unknown",
123+
"total_bytes": -1,
124+
"last_modified": datetime.fromtimestamp(0),
125+
"server_name": self.name,
126+
"server_id": self.Nid,
127+
"url": url
128+
}
94129

95130

96131
def download(self, title: Optional[str]=None, folder: str='', hook: Callable[[Dict], None] = lambda *args:None) -> Optional[str]:
@@ -115,11 +150,6 @@ def download(self, title: Optional[str]=None, folder: str='', hook: Callable[[Di
115150
"""
116151
raise ServerNotSupported(self.name)
117152

118-
# Protected
119-
def _getFileLink(self) -> str:
120-
121-
raise ServerNotSupported(self.name)
122-
123153
# Protected
124154
def _downloadIn(self, title: str, folder: str, hook: Callable[[Dict], None]) -> bool: # Scarica l'episodio
125155
"""
@@ -252,6 +282,24 @@ def _getFileLink(self):
252282

253283
return self.link.replace('download-file.php?id=', '')
254284

285+
def fileInfo(self) -> Dict[str,str]:
286+
"""
287+
Recupera le informazioni del file dell'episodio.
288+
289+
```
290+
return {
291+
"content_type": str, # Tipo del file, es. video/mp4
292+
"total_bytes": int, # Byte totali del file
293+
"last_modified": datetime, # Data e ora dell'ultimo aggiornamento effettuato all'episodio sul server
294+
"server_name": str, # Nome del server
295+
"server_id": int, # ID del server
296+
"url": str # url dell'episodio
297+
}
298+
```
299+
"""
300+
301+
return self._fileInfoIn()
302+
255303
def download(self, title: Optional[str]=None, folder: str='', hook: Callable[[Dict], None] = lambda *args:None) -> bool:
256304
"""
257305
Scarica l'episodio.
@@ -293,6 +341,24 @@ def _getFileLink(self):
293341

294342
raw = soupeddata.find("a", { "class" : "VVVVID-link" })
295343
return raw.get("href")
344+
345+
def fileInfo(self) -> Dict[str,str]:
346+
"""
347+
Recupera le informazioni del file dell'episodio.
348+
349+
```
350+
return {
351+
"content_type": str, # Tipo del file, es. video/mp4
352+
"total_bytes": int, # Byte totali del file
353+
"last_modified": datetime, # Data e ora dell'ultimo aggiornamento effettuato all'episodio sul server
354+
"server_name": str, # Nome del server
355+
"server_id": int, # ID del server
356+
"url": str # url dell'episodio
357+
}
358+
```
359+
"""
360+
361+
return self._fileInfoEx()
296362

297363
def download(self, title: Optional[str]=None, folder: str='', hook: Callable[[Dict], None] = lambda *args:None) -> bool:
298364
"""
@@ -339,6 +405,24 @@ def _getFileLink(self):
339405

340406
return yutubelink_raw.replace('embed/', 'watch?v=')
341407

408+
def fileInfo(self) -> Dict[str,str]:
409+
"""
410+
Recupera le informazioni del file dell'episodio.
411+
412+
```
413+
return {
414+
"content_type": str, # Tipo del file, es. video/mp4
415+
"total_bytes": int, # Byte totali del file
416+
"last_modified": datetime, # Data e ora dell'ultimo aggiornamento effettuato all'episodio sul server
417+
"server_name": str, # Nome del server
418+
"server_id": int, # ID del server
419+
"url": str # url dell'episodio
420+
}
421+
```
422+
"""
423+
424+
return self._fileInfoEx()
425+
342426
def download(self, title: Optional[str]=None, folder: str='', hook: Callable[[Dict], None] = lambda *args:None) -> bool:
343427
"""
344428
Scarica l'episodio.
@@ -386,6 +470,24 @@ def _getFileLink(self):
386470
mp4_link = 'http:/' + (raw_link_part1 + raw_link_part2).replace(' ', '')
387471

388472
return mp4_link
473+
474+
def fileInfo(self) -> Dict[str,str]:
475+
"""
476+
Recupera le informazioni del file dell'episodio.
477+
478+
```
479+
return {
480+
"content_type": str, # Tipo del file, es. video/mp4
481+
"total_bytes": int, # Byte totali del file
482+
"last_modified": datetime, # Data e ora dell'ultimo aggiornamento effettuato all'episodio sul server
483+
"server_name": str, # Nome del server
484+
"server_id": int, # ID del server
485+
"url": str # url dell'episodio
486+
}
487+
```
488+
"""
489+
490+
return self._fileInfoIn()
389491

390492
def download(self, title: Optional[str]=None, folder: str='', hook: Callable[[Dict], None] = lambda *args:None) -> bool:
391493
"""

0 commit comments

Comments
 (0)