share / main.py
Starchik1's picture
Update main.py
07d1566 verified
raw
history blame
2.06 kB
from flask import Flask, request, jsonify
import uuid
app = Flask(__name__)
# В памяти храним зарегистрированных пользователей и сессии передачи файлов
users = {}
transfers = {}
@app.route('/register', methods=['POST'])
def register():
data = request.json
username = data.get('username')
password = data.get('password')
if not username or not password:
return jsonify({'error': 'Не переданы обязательные поля'}), 400
if username in users:
return jsonify({'error': 'Пользователь уже существует'}), 400
users[username] = {'password': password}
return jsonify({'message': 'Регистрация прошла успешно'})
@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 = str(uuid.uuid4())
transfers[transfer_id] = {
'filename': filename,
'ip': ip,
'port': port,
'filesize': filesize,
'downloaded': False
}
# Формируем ссылку для скачивания. request.host_url учитывает адрес сервера.
download_link = request.host_url + 'download/' + transfer_id
return jsonify({'download_link': download_link})
@app.route('/download/<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__':
# Запускаем сервер на всех интерфейсах на порту 5000
app.run(host='0.0.0.0', port=5000)