Makefile: WIP
This commit is contained in:
parent
80835d33fd
commit
43d49d978e
2 changed files with 50 additions and 35 deletions
58
tools/get_p2_url.py
Normal file
58
tools/get_p2_url.py
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
#!/usr/bin/env python3
|
||||
import requests
|
||||
import re
|
||||
from bs4 import BeautifulSoup
|
||||
import lzma
|
||||
from urllib.parse import urlparse
|
||||
from contextlib import suppress
|
||||
import os
|
||||
from os import path
|
||||
from tqdm import tqdm
|
||||
import shutil
|
||||
import time
|
||||
from pathlib import Path
|
||||
|
||||
def fucked_up_get(*args, **kwargs):
|
||||
for retry in range(5):
|
||||
for timeout in [0.1, 0.5, 1.0, 2.0, 5.0]:
|
||||
kwargs.update({'timeout': timeout})
|
||||
try:
|
||||
return requests.get(*args, **kwargs)
|
||||
except requests.exceptions.Timeout:
|
||||
pass
|
||||
time.sleep(0.5)
|
||||
raise requests.exceptions.Timeout()
|
||||
|
||||
def crop(s, length=80):
|
||||
if len(s) <= length:
|
||||
return s + (' ' * (length-len(s)))
|
||||
|
||||
if length > 40:
|
||||
return s[:length - 20 - 3] + '...' + s[-20:]
|
||||
|
||||
return s[:length]
|
||||
|
||||
if __name__ == '__main__':
|
||||
import argparse
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('-u', '--update-site', default='http://sw-center.st.com/stm32cubeide/updatesite1')
|
||||
parser.add_argument('artifact_id')
|
||||
args = parser.parse_args()
|
||||
|
||||
res = fucked_up_get(f'{args.update_site}/compositeContent.xml')
|
||||
res.raise_for_status()
|
||||
soup = BeautifulSoup(res.content, features='html.parser')
|
||||
latest_version = soup.find('repository')['version']
|
||||
|
||||
res = fucked_up_get(f'{args.update_site}/{latest_version}/artifacts.xml.xz')
|
||||
res.raise_for_status()
|
||||
soup = BeautifulSoup(lzma.LZMADecompressor().decompress(res.content), features='html.parser')
|
||||
|
||||
artifact = soup.find('artifact', recursive=True, id=args.artifact_id)
|
||||
art_id, art_ver, art_cls = artifact['id'], artifact['version'], artifact['classifier']
|
||||
|
||||
filename = f'{art_id}_{art_ver}.jar'
|
||||
|
||||
url = f'{args.update_site}/{latest_version}/plugins/{filename}'
|
||||
print(f'{url}')
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue