share / main.py
Starchik1's picture
Update main.py
4998714 verified
raw
history blame
1.54 kB
from flask import Flask, request, jsonify
import random
import string
from threading import Lock
app = Flask(__name__)
lock = Lock()
transfers = {}
def generate_id():
return ''.join(random.choices(string.ascii_letters + string.digits, k=8))
@app.route('/create_transfer', methods=['POST'])
def create_transfer():
with lock:
transfer_id = generate_id()
transfers[transfer_id] = {
'sender': None,
'receiver': None,
'filename': request.json['filename'],
'filesize': request.json['filesize']
}
return jsonify({'transfer_id': transfer_id})
@app.route('/register_sender/<transfer_id>', methods=['POST'])
def register_sender(transfer_id):
with lock:
transfers[transfer_id]['sender'] = {
'ip': request.remote_addr,
'port': request.json['port']
}
return jsonify({'status': 'sender registered'})
@app.route('/register_receiver/<transfer_id>', methods=['POST'])
def register_receiver(transfer_id):
with lock:
transfers[transfer_id]['receiver'] = {
'ip': request.remote_addr,
'port': request.json['port']
}
return jsonify({'status': 'receiver registered'})
@app.route('/get_peer_info/<transfer_id>')
def get_peer_info(transfer_id):
return jsonify({
'sender': transfers.get(transfer_id, {}).get('sender'),
'receiver': transfers.get(transfer_id, {}).get('receiver')
})
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)