File size: 1,719 Bytes
07d1566 33f8f7c 059bbb9 ee9d0ca 07d1566 059bbb9 ee9d0ca 33f8f7c 07d1566 33f8f7c 07d1566 ee9d0ca 07d1566 33f8f7c 07d1566 059bbb9 407606a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
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)
|