47 lines
1.5 KiB
Python
47 lines
1.5 KiB
Python
"""Flask Web 应用:在浏览器中查看 Gitea 最新项目。"""
|
|
|
|
import os
|
|
from flask import Flask, render_template, request
|
|
|
|
from gitea_client import GiteaClient
|
|
|
|
app = Flask(__name__)
|
|
|
|
|
|
@app.route('/', methods=['GET', 'POST'])
|
|
def index():
|
|
repos = []
|
|
error = None
|
|
form = {
|
|
'base_url': os.environ.get('GITEA_BASE_URL', ''),
|
|
'owner': '',
|
|
'token': '',
|
|
'limit': 10,
|
|
'is_org': False,
|
|
}
|
|
|
|
if request.method == 'POST':
|
|
form['base_url'] = request.form.get('base_url', '').strip()
|
|
form['owner'] = request.form.get('owner', '').strip()
|
|
form['token'] = request.form.get('token', '').strip()
|
|
form['limit'] = int(request.form.get('limit', 10) or 10)
|
|
form['is_org'] = request.form.get('is_org') == 'on'
|
|
|
|
if not form['base_url'] or not form['owner']:
|
|
error = '请填写 Gitea 地址和用户名/组织名。'
|
|
else:
|
|
try:
|
|
client = GiteaClient(form['base_url'], form['token'] or None)
|
|
if form['is_org']:
|
|
repos = client.get_org_latest_repos(form['owner'], form['limit'])
|
|
else:
|
|
repos = client.get_latest_repos(form['owner'], form['limit'])
|
|
except Exception as e:
|
|
error = f'获取失败:{e}'
|
|
|
|
return render_template('index.html', repos=repos, error=error, form=form)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
app.run(host='127.0.0.1', port=5000, debug=True)
|