mirror of
https://github.com/lilydjwg/nvchecker.git
synced 2025-03-10 06:14:02 +00:00
fix: source sparkle
This commit is contained in:
parent
3dff0466d1
commit
e3df37b646
1 changed files with 25 additions and 6 deletions
|
@ -6,13 +6,32 @@ from xml.etree import ElementTree
|
||||||
|
|
||||||
from nvchecker.api import session
|
from nvchecker.api import session
|
||||||
|
|
||||||
|
NAMESPACE = "http://www.andymatuschak.org/xml-namespaces/sparkle"
|
||||||
|
|
||||||
|
|
||||||
async def get_version(name, conf, *, cache, **kwargs):
|
async def get_version(name, conf, *, cache, **kwargs):
|
||||||
sparkle = conf['sparkle']
|
sparkle = conf["sparkle"]
|
||||||
return await cache.get(sparkle, get_version_impl)
|
return await cache.get(sparkle, get_version_impl)
|
||||||
|
|
||||||
|
|
||||||
async def get_version_impl(sparkle):
|
async def get_version_impl(sparkle):
|
||||||
res = await session.get(sparkle)
|
res = await session.get(sparkle)
|
||||||
root = ElementTree.fromstring(res.body)
|
root = ElementTree.fromstring(res.body)
|
||||||
version = root.find('./channel/item[1]/{http://www.andymatuschak.org/xml-namespaces/sparkle}version')
|
item = root.find("./channel/item[1]/enclosure")
|
||||||
|
|
||||||
return version.text
|
version_string = item.get(f"{{{NAMESPACE}}}shortVersionString")
|
||||||
|
build_number = item.get(f"{{{NAMESPACE}}}version")
|
||||||
|
|
||||||
|
if (version_string and version_string.isdigit()) and (
|
||||||
|
build_number and not build_number.isdigit()
|
||||||
|
):
|
||||||
|
version_string, build_number = build_number, version_string
|
||||||
|
|
||||||
|
version = []
|
||||||
|
|
||||||
|
if version_string:
|
||||||
|
version.append(version_string)
|
||||||
|
if build_number and (build_number not in version):
|
||||||
|
version.append(build_number)
|
||||||
|
|
||||||
|
return "-".join(version) if version else None
|
||||||
|
|
Loading…
Add table
Reference in a new issue