59 lines
1.9 KiB
Python
59 lines
1.9 KiB
Python
|
from typing import List
|
||
|
from defs.format_time import strf_time
|
||
|
|
||
|
|
||
|
class Assets:
|
||
|
def __init__(self, data: dict):
|
||
|
self.name = data["name"]
|
||
|
self.url = data["downloadUrl"]
|
||
|
|
||
|
|
||
|
class Release:
|
||
|
def __init__(self, data: dict):
|
||
|
self.name: str = data["name"]
|
||
|
self.url: str = data["url"]
|
||
|
self.description: str = data["description"]
|
||
|
self.publishedAt: str = strf_time(data["publishedAt"])
|
||
|
self.tagName: str = data["tagName"]
|
||
|
self.isPrerelease: bool = data["isPrerelease"]
|
||
|
assets = []
|
||
|
if data["releaseAssets"]:
|
||
|
for i in data["releaseAssets"]:
|
||
|
assets.append(Assets(i))
|
||
|
self.releaseAssets: List[Assets] = assets
|
||
|
self.releaseAssetsLen = len(assets)
|
||
|
|
||
|
|
||
|
class Module:
|
||
|
def __init__(self, data: dict):
|
||
|
self.name: str = data["name"]
|
||
|
self.description: str = data["description"]
|
||
|
self.url: str = data["url"]
|
||
|
self.homepageUrl: str = data["homepageUrl"] if data["homepageUrl"] else data["url"]
|
||
|
self.sourceUrl: str = data["sourceUrl"]
|
||
|
self.hide: bool = data["hide"]
|
||
|
self.createdAt: str = strf_time(data["createdAt"])
|
||
|
self.updatedAt: str = strf_time(data["updatedAt"])
|
||
|
text = []
|
||
|
for i in data["collaborators"]:
|
||
|
if i["name"]:
|
||
|
text.append(i["name"])
|
||
|
else:
|
||
|
text.append(i["login"])
|
||
|
self.collaborators: List[str] = text
|
||
|
self.latestRelease: str = data["latestRelease"]
|
||
|
releases = []
|
||
|
if data["releases"]:
|
||
|
for i in data["releases"]:
|
||
|
releases.append(Release(i))
|
||
|
self.releases: List[Release] = releases
|
||
|
self.summary = data["summary"]
|
||
|
|
||
|
|
||
|
class TrackMessage:
|
||
|
def __init__(self, text, url, name, button):
|
||
|
self.text = text
|
||
|
self.url = url
|
||
|
self.name = name
|
||
|
self.button = button
|