mirror of https://github.com/morpheus65535/bazarr
48 lines
1.8 KiB
Python
48 lines
1.8 KiB
Python
# coding=utf-8
|
|
|
|
import io
|
|
import json
|
|
import os
|
|
import logging
|
|
|
|
from flask import jsonify
|
|
from flask_restful import Resource
|
|
|
|
from ..utils import authenticate
|
|
from config import settings
|
|
from get_args import args
|
|
|
|
|
|
class SystemReleases(Resource):
|
|
@authenticate
|
|
def get(self):
|
|
filtered_releases = []
|
|
try:
|
|
with io.open(os.path.join(args.config_dir, 'config', 'releases.txt'), 'r', encoding='UTF-8') as f:
|
|
releases = json.loads(f.read())
|
|
|
|
for release in releases:
|
|
if settings.general.branch == 'master' and not release['prerelease']:
|
|
filtered_releases.append(release)
|
|
elif settings.general.branch != 'master' and any(not x['prerelease'] for x in filtered_releases):
|
|
continue
|
|
elif settings.general.branch != 'master':
|
|
filtered_releases.append(release)
|
|
if settings.general.branch == 'master':
|
|
filtered_releases = filtered_releases[:5]
|
|
|
|
current_version = os.environ["BAZARR_VERSION"]
|
|
|
|
for i, release in enumerate(filtered_releases):
|
|
body = release['body'].replace('- ', '').split('\n')[1:]
|
|
filtered_releases[i] = {"body": body,
|
|
"name": release['name'],
|
|
"date": release['date'][:10],
|
|
"prerelease": release['prerelease'],
|
|
"current": release['name'].lstrip('v') == current_version}
|
|
|
|
except Exception:
|
|
logging.exception(
|
|
'BAZARR cannot parse releases caching file: ' + os.path.join(args.config_dir, 'config', 'releases.txt'))
|
|
return jsonify(data=filtered_releases)
|