from flask import Flask, send_file, Response
import os
import zipfile
import io
app = Flask(__name__)
NEWEST_DIR = 'Releases/newest'

@app.route('/version')
def version():
    version_file = os.path.join(NEWEST_DIR, 'version.txt')
    if os.path.exists(version_file):
        with open(version_file, 'r') as f:
            version_text = f.read().strip()
        return Response(version_text, mimetype='text/plain')
    else:
        return Response("V0.0.0", mimetype='text/plain')

@app.route('/get')
def get_latest():
    memory_file = io.BytesIO()
    with zipfile.ZipFile(memory_file, 'w', zipfile.ZIP_DEFLATED) as zf:
        for root, dirs, files in os.walk(NEWEST_DIR):
            for file in files:
                file_path = os.path.join(root, file)
                zf.write(file_path, arcname=os.path.relpath(file_path, NEWEST_DIR))
    memory_file.seek(0)
    return send_file(
        memory_file,
        mimetype='application/zip',
        as_attachment=True,
        download_name='latest.zip'
    )

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8000)
