Dynamically determine latest wow-lite version for API method
This commit is contained in:
parent
ca48a0f0ed
commit
1691e08f01
|
@ -1,3 +1,5 @@
|
||||||
|
import re
|
||||||
|
|
||||||
import requests
|
import requests
|
||||||
from flask import jsonify, send_from_directory, Response
|
from flask import jsonify, send_from_directory, Response
|
||||||
from flask_yoloapi import endpoint, parameter
|
from flask_yoloapi import endpoint, parameter
|
||||||
|
@ -66,28 +68,30 @@ def api_qr_generate(address):
|
||||||
return send_from_directory('static/qr', '%s.png' % address)
|
return send_from_directory('static/qr', '%s.png' % address)
|
||||||
|
|
||||||
|
|
||||||
@app.route('/api/1/wowlight')
|
@app.route('/api/1/wowlite')
|
||||||
@endpoint.api(
|
@endpoint.api(
|
||||||
parameter('version', type=str, location='args', required=True)
|
parameter('version', type=str, location='args', required=True)
|
||||||
)
|
)
|
||||||
def api_wowlight_version_check(version):
|
def api_wowlight_version_check(version: str) -> bool:
|
||||||
"""
|
"""
|
||||||
Checks incoming wowlight wallet version, returns False when the version is
|
Checks incoming wow-lite wallet version, returns False when the version is too old and needs to be upgraded.
|
||||||
too old and needs to be upgraded (due to hard-forks)
|
|
||||||
:param version:
|
:param version:
|
||||||
:return: bool
|
:return: bool
|
||||||
"""
|
"""
|
||||||
versions = {
|
url = "https://raw.githubusercontent.com/wownero/wow-lite-wallet/master/src/renderer/components/Landing/LandingPage.vue"
|
||||||
'0.1.0': False,
|
try:
|
||||||
'0.1.1': False,
|
resp = requests.get(url, headers={"User-Agent": "Mozilla 5.0"})
|
||||||
'0.1.2': False,
|
resp.raise_for_status()
|
||||||
'0.1.3': True
|
content = resp.content.decode()
|
||||||
}
|
except:
|
||||||
|
return True # default to true
|
||||||
|
|
||||||
if version not in versions:
|
# parse latest version
|
||||||
|
current = next(re.finditer(r"wowlite\?version=(\d+.\d+.\d+)", content), None)
|
||||||
|
if not current:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
return versions[version]
|
return version == current.group(1)
|
||||||
|
|
||||||
|
|
||||||
@app.route('/api/1/wow/supply')
|
@app.route('/api/1/wow/supply')
|
||||||
|
|
Loading…
Reference in New Issue