@@ -132,43 +132,135 @@ class TLSLibrary:
132
132
"""
133
133
134
134
_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
+ }
135
221
136
222
@classmethod
137
223
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
+
138
250
asset_urls , ubuntu_urls = [], []
139
251
for _ in range (retries ):
140
252
try :
141
253
response = requests .get (GITHUB_API_URL )
142
254
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
168
257
169
258
except Exception as ex :
170
259
print ("Unable to fetch GitHub API: %s" % ex )
171
260
261
+ if not asset_urls and not ubuntu_urls :
262
+ _find_release ([cls ._STATIC_API_DATA ])
263
+
172
264
for url in ubuntu_urls :
173
265
yield url
174
266
@@ -183,14 +275,22 @@ def find(cls) -> str:
183
275
184
276
@classmethod
185
277
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
+ ]
187
283
188
284
@classmethod
189
285
def download (cls , version : str = None ) -> str :
190
286
try :
191
287
print (
192
288
"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
+ )
194
294
)
195
295
download_url = None
196
296
for download_url in cls .fetch_api (version ):
0 commit comments