@@ -132,43 +132,135 @@ class TLSLibrary:
132132    """ 
133133
134134    _PATH : str  =  None 
135+     _STATIC_API_DATA  =  {
136+         "name" : "v1.7.10" ,
137+         "tag_name" : "v1.7.10" ,
138+         "assets" : [
139+             {
140+                 "browser_download_url" : "https://github.com/bogdanfinn/tls-client/releases/download/v1.7.10/tls-client-darwin-amd64-1.7.10.dylib" ,
141+                 "name" : "tls-client-darwin-amd64-1.7.10.dylib" ,
142+             },
143+             {
144+                 "browser_download_url" : "https://github.com/bogdanfinn/tls-client/releases/download/v1.7.10/tls-client-darwin-arm64-1.7.10.dylib" ,
145+                 "name" : "tls-client-darwin-arm64-1.7.10.dylib" ,
146+             },
147+             {
148+                 "browser_download_url" : "https://github.com/bogdanfinn/tls-client/releases/download/v1.7.10/tls-client-linux-arm64-1.7.10.so" ,
149+                 "name" : "tls-client-linux-arm64-1.7.10.so" ,
150+             },
151+             {
152+                 "browser_download_url" : "https://github.com/bogdanfinn/tls-client/releases/download/v1.7.10/tls-client-linux-armv7-1.7.10.so" ,
153+                 "name" : "tls-client-linux-armv7-1.7.10.so" ,
154+             },
155+             {
156+                 "browser_download_url" : "https://github.com/bogdanfinn/tls-client/releases/download/v1.7.10/tls-client-linux-ubuntu-amd64-1.7.10.so" ,
157+                 "name" : "tls-client-linux-ubuntu-amd64-1.7.10.so" ,
158+             },
159+             {
160+                 "browser_download_url" : "https://github.com/bogdanfinn/tls-client/releases/download/v1.7.10/tls-client-windows-32-1.7.10.dll" ,
161+                 "name" : "tls-client-windows-32-1.7.10.dll" ,
162+             },
163+             {
164+                 "browser_download_url" : "https://github.com/bogdanfinn/tls-client/releases/download/v1.7.10/tls-client-windows-64-1.7.10.dll" ,
165+                 "name" : "tls-client-windows-64-1.7.10.dll" ,
166+             },
167+             {
168+                 "browser_download_url" : "https://github.com/bogdanfinn/tls-client/releases/download/v1.7.10/tls-client-xgo-1.7.10-darwin-amd64.dylib" ,
169+                 "name" : "tls-client-xgo-1.7.10-darwin-amd64.dylib" ,
170+             },
171+             {
172+                 "browser_download_url" : "https://github.com/bogdanfinn/tls-client/releases/download/v1.7.10/tls-client-xgo-1.7.10-darwin-arm64.dylib" ,
173+                 "name" : "tls-client-xgo-1.7.10-darwin-arm64.dylib" ,
174+             },
175+             {
176+                 "browser_download_url" : "https://github.com/bogdanfinn/tls-client/releases/download/v1.7.10/tls-client-xgo-1.7.10-linux-386.so" ,
177+                 "name" : "tls-client-xgo-1.7.10-linux-386.so" ,
178+             },
179+             {
180+                 "browser_download_url" : "https://github.com/bogdanfinn/tls-client/releases/download/v1.7.10/tls-client-xgo-1.7.10-linux-amd64.so" ,
181+                 "name" : "tls-client-xgo-1.7.10-linux-amd64.so" ,
182+             },
183+             {
184+                 "browser_download_url" : "https://github.com/bogdanfinn/tls-client/releases/download/v1.7.10/tls-client-xgo-1.7.10-linux-arm-5.so" ,
185+                 "name" : "tls-client-xgo-1.7.10-linux-arm-5.so" ,
186+             },
187+             {
188+                 "browser_download_url" : "https://github.com/bogdanfinn/tls-client/releases/download/v1.7.10/tls-client-xgo-1.7.10-linux-arm-6.so" ,
189+                 "name" : "tls-client-xgo-1.7.10-linux-arm-6.so" ,
190+             },
191+             {
192+                 "browser_download_url" : "https://github.com/bogdanfinn/tls-client/releases/download/v1.7.10/tls-client-xgo-1.7.10-linux-arm-7.so" ,
193+                 "name" : "tls-client-xgo-1.7.10-linux-arm-7.so" ,
194+             },
195+             {
196+                 "browser_download_url" : "https://github.com/bogdanfinn/tls-client/releases/download/v1.7.10/tls-client-xgo-1.7.10-linux-arm64.so" ,
197+                 "name" : "tls-client-xgo-1.7.10-linux-arm64.so" ,
198+             },
199+             {
200+                 "browser_download_url" : "https://github.com/bogdanfinn/tls-client/releases/download/v1.7.10/tls-client-xgo-1.7.10-linux-ppc64le.so" ,
201+                 "name" : "tls-client-xgo-1.7.10-linux-ppc64le.so" ,
202+             },
203+             {
204+                 "browser_download_url" : "https://github.com/bogdanfinn/tls-client/releases/download/v1.7.10/tls-client-xgo-1.7.10-linux-riscv64.so" ,
205+                 "name" : "tls-client-xgo-1.7.10-linux-riscv64.so" ,
206+             },
207+             {
208+                 "browser_download_url" : "https://github.com/bogdanfinn/tls-client/releases/download/v1.7.10/tls-client-xgo-1.7.10-linux-s390x.so" ,
209+                 "name" : "tls-client-xgo-1.7.10-linux-s390x.so" ,
210+             },
211+             {
212+                 "browser_download_url" : "https://github.com/bogdanfinn/tls-client/releases/download/v1.7.10/tls-client-xgo-1.7.10-windows-386.dll" ,
213+                 "name" : "tls-client-xgo-1.7.10-windows-386.dll" ,
214+             },
215+             {
216+                 "browser_download_url" : "https://github.com/bogdanfinn/tls-client/releases/download/v1.7.10/tls-client-xgo-1.7.10-windows-amd64.dll" ,
217+                 "name" : "tls-client-xgo-1.7.10-windows-amd64.dll" ,
218+             },
219+         ],
220+     }
135221
136222    @classmethod  
137223    def  fetch_api (cls , version : str  =  None , retries : int  =  3 ):
224+         def  _find_release (data , version_ : str  =  None ):
225+             releases  =  [
226+                 Release .from_kwargs (** kwargs ) for  kwargs  in  data 
227+             ]
228+ 
229+             if  version_  is  not None :
230+                 version_  =  (
231+                     "v%s"  %  version_ 
232+                     if  not  str (version_ ).startswith ("v" )
233+                     else  str (version_ )
234+                 )
235+                 releases  =  [
236+                     release 
237+                     for  release  in  releases 
238+                     if  re .search (version_ , release .name , re .I )
239+                 ]
240+ 
241+             for  release  in  releases :
242+                 for  asset  in  release .assets :
243+                     if  IS_UBUNTU  and  PATTERN_UBUNTU_RE .search (
244+                         asset .browser_download_url 
245+                     ):
246+                         ubuntu_urls .append (asset .browser_download_url )
247+                     if  PATTERN_RE .search (asset .browser_download_url ):
248+                         asset_urls .append (asset .browser_download_url )
249+ 
138250        asset_urls , ubuntu_urls  =  [], []
139251        for  _  in  range (retries ):
140252            try :
141253                response  =  requests .get (GITHUB_API_URL )
142254                if  response .ok :
143-                     response_json  =  response .json ()
144-                     releases  =  [
145-                         Release .from_kwargs (** kwargs ) for  kwargs  in  response_json 
146-                     ]
147- 
148-                     if  version  is  not None :
149-                         version  =  (
150-                             "v%s"  %  version 
151-                             if  not  str (version ).startswith ("v" )
152-                             else  str (version )
153-                         )
154-                         releases  =  [
155-                             release 
156-                             for  release  in  releases 
157-                             if  re .search (version , release .name , re .I )
158-                         ]
159- 
160-                     for  release  in  releases :
161-                         for  asset  in  release .assets :
162-                             if  IS_UBUNTU  and  PATTERN_UBUNTU_RE .search (
163-                                 asset .browser_download_url 
164-                             ):
165-                                 ubuntu_urls .append (asset .browser_download_url )
166-                             if  PATTERN_RE .search (asset .browser_download_url ):
167-                                 asset_urls .append (asset .browser_download_url )
255+                     _find_release (response .json ())
256+                     break 
168257
169258            except  Exception  as  ex :
170259                print ("Unable to fetch GitHub API: %s"  %  ex )
171260
261+         if  not  asset_urls  and  not  ubuntu_urls :
262+             _find_release ([cls ._STATIC_API_DATA ])
263+ 
172264        for  url  in  ubuntu_urls :
173265            yield  url 
174266
@@ -183,14 +275,22 @@ def find(cls) -> str:
183275
184276    @classmethod  
185277    def  find_all (cls ) ->  list [str ]:
186-         return  [src  for  src  in  glob .glob (os .path .join (BIN_DIR , r"*" )) if  src .lower ().endswith (('so' , 'dll' , 'dylib' ))]
278+         return  [
279+             src 
280+             for  src  in  glob .glob (os .path .join (BIN_DIR , r"*" ))
281+             if  src .lower ().endswith (("so" , "dll" , "dylib" ))
282+         ]
187283
188284    @classmethod  
189285    def  download (cls , version : str  =  None ) ->  str :
190286        try :
191287            print (
192288                "System Info - Platform: %s, Machine: %s, File Ext : %s." 
193-                 %  (PLATFORM , "%s (Ubuntu)"  %  MACHINE  if  IS_UBUNTU  else  MACHINE , FILE_EXT )
289+                 %  (
290+                     PLATFORM ,
291+                     "%s (Ubuntu)"  %  MACHINE  if  IS_UBUNTU  else  MACHINE ,
292+                     FILE_EXT ,
293+                 )
194294            )
195295            download_url  =  None 
196296            for  download_url  in  cls .fetch_api (version ):
0 commit comments