@@ -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