share / main.py
Starchik1's picture
Update main.py
ee9d0ca verified
raw
history blame
1.72 kB
from flask import Flask, request, jsonify
import random
import string
app = Flask(__name__)
# В памяти храним зарегистрированные передачи файлов
transfers = {}
BASE_URL = "https://starchik1-share.hf.space/d/" # Постоянный серверный URL
def generate_short_id(length=8):
"""
Генерирует короткий уникальный идентификатор для передачи файла.
"""
while True:
token = ''.join(random.choices(string.ascii_letters + string.digits, k=length))
if token not in transfers:
return token
@app.route('/create_transfer', methods=['POST'])
def create_transfer():
data = request.json
filename = data.get('filename')
ip = data.get('ip')
port = data.get('port')
filesize = data.get('filesize', 0)
if not filename or not ip or not port:
return jsonify({'error': 'Отсутствуют необходимые параметры'}), 400
# Используем короткий идентификатор для передачи файла
transfer_id = generate_short_id(8)
transfers[transfer_id] = {
'filename': filename,
'ip': ip,
'port': port,
'filesize': filesize,
'downloaded': False
}
return jsonify({'token': transfer_id})
@app.route('/d/<transfer_id>', methods=['GET'])
def get_transfer(transfer_id):
transfer = transfers.get(transfer_id)
if not transfer:
return jsonify({'error': 'Неверный идентификатор передачи'}), 404
return jsonify(transfer)
if __name__ == '__main__':
app.run(host='0.0.0.0', port=7860)