@@ -13,18 +13,25 @@ class MySession(httpx.Client):
1313 """
1414 Sessione httpx.
1515 """
16- def __init__ (self ) -> None :
17- super ().__init__ (http2 = True )
16+
17+ def __init__ (self , * args , ** kwargs ) -> None :
18+ super ().__init__ (* args , ** kwargs )
1819 self .headers .update ({'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36' })
1920 self .fixCookie ()
2021
22+ def build_url (self , url : httpx .URL | str ) -> httpx .URL :
23+ """
24+ Unisce l'url con il base_url.
25+ """
26+ return self ._merge_url (url )
27+
2128 def fixCookie (self ):
2229 """Aggiunge il csrf_token all'headers."""
2330
2431 csrf_token = re .compile (br'<meta.*?id="csrf-token"\s*?content="(.*?)">' )
2532 cookie = re .compile (br'document\.cookie\s*?=\s*?"(.+?)=(.+?)(\s*?;\s*?path=.+?)?"\s*?;' )
2633 for _ in range (2 ): # numero di tentativi
27- res = self .get ("https://www.animeworld.so " , follow_redirects = True )
34+ res = self .get ("/ " , follow_redirects = True )
2835
2936 m = cookie .search (res .content )
3037 if m :
@@ -111,7 +118,7 @@ def find(keyword: str) -> List[Dict]:
111118 ```
112119 """
113120
114- res = SES .post ("https://www.animeworld.so /api/search/v2?" , params = {"keyword" : keyword }, follow_redirects = True )
121+ res = SES .post ("/api/search/v2?" , params = {"keyword" : keyword }, follow_redirects = True )
115122
116123 data = res .json ()
117124 if "error" in data : return []
@@ -126,34 +133,41 @@ def find(keyword: str) -> List[Dict]:
126133
127134 return [
128135 {
129- "id" : elem ["id" ],
130- "name" : elem ["name" ],
131- "jtitle" : elem ["jtitle" ],
132- "studio" : elem ["studio" ],
133- "release" : elem ["release" ],
134- "episodes" : int (elem ["episodes" ]) if elem ["episodes" ] is not None else None ,
135- "state" : elem ["state" ],
136- "story" : elem ["story" ],
137- "categories" : elem ["categories" ],
138- "image" : elem ["image" ],
139- "durationEpisodes" : elem ["durationEpisodes" ],
140- "link" : f"https://www.animeworld.so/ play/{ elem ['link' ]} .{ elem ['identifier' ]} " if elem ['link' ] is not None or elem ['identifier' ] is not None else None ,
141- "createdAt" : elem ["createdAt" ],
142- "language" : elem ["language" ],
143- "year" : elem ["year" ],
144- "dub" : elem ["dub" ] != "0" if elem ["dub" ] is not None else None ,
145- "season" : elem ["season" ],
146- "totViews" : elem ["totViews" ],
147- "dayViews" : elem ["dayViews" ],
148- "weekViews" : elem ["weekViews" ],
149- "monthViews" : elem ["monthViews" ],
150- "malId" : elem ["malId" ],
151- "anilistId" : elem ["anilistId" ],
152- "mangaworldId" : elem ["mangaworldId" ],
153- "malVote" : elem ["malVote" ],
154- "trailer" : elem ["trailer" ]
155- }for elem in data
136+ "id" : elem ["id" ],
137+ "name" : elem ["name" ],
138+ "jtitle" : elem ["jtitle" ],
139+ "studio" : elem ["studio" ],
140+ "release" : elem ["release" ],
141+ "episodes" : int (elem ["episodes" ]) if elem ["episodes" ] is not None else None ,
142+ "state" : elem ["state" ],
143+ "story" : elem ["story" ],
144+ "categories" : elem ["categories" ],
145+ "image" : elem ["image" ],
146+ "durationEpisodes" : elem ["durationEpisodes" ],
147+ "link" : str ( SES . build_url ( f"/ play/{ elem ['link' ]} .{ elem ['identifier' ]} ")) if elem ['link' ] is not None or elem ['identifier' ] is not None else None ,
148+ "createdAt" : elem ["createdAt" ],
149+ "language" : elem ["language" ],
150+ "year" : elem ["year" ],
151+ "dub" : elem ["dub" ] != "0" if elem ["dub" ] is not None else None ,
152+ "season" : elem ["season" ],
153+ "totViews" : elem ["totViews" ],
154+ "dayViews" : elem ["dayViews" ],
155+ "weekViews" : elem ["weekViews" ],
156+ "monthViews" : elem ["monthViews" ],
157+ "malId" : elem ["malId" ],
158+ "anilistId" : elem ["anilistId" ],
159+ "mangaworldId" : elem ["mangaworldId" ],
160+ "malVote" : elem ["malVote" ],
161+ "trailer" : elem ["trailer" ]
162+ } for elem in data
156163 ]
157164
158- SES = MySession () # sessione contenente Cookie e headers
159- "Sessione httpx."
165+ SES = MySession (http2 = True , base_url = "https://www.animeworld.ac/" ) # sessione contenente Cookie e headers
166+ """Sessione httpx.
167+
168+ Example:
169+ ```py
170+ # Per cabiare il base_url:
171+ SES.base_url = "https://www.animeworld.ac"
172+ ```
173+ """
0 commit comments