File size: 1,543 Bytes
4998714 33f8f7c 4998714 059bbb9 4998714 059bbb9 6048a58 33f8f7c 07d1566 6048a58 4998714 6048a58 4998714 0491fc6 4998714 0491fc6 4998714 6048a58 4998714 07d1566 4998714 059bbb9 ae24aac 4998714 |
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 |
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) |