123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228 |
- from flask import Flask, render_template
- from flask_socketio import SocketIO
-
- import flask_socketio
- import flask
- import os
-
- app = Flask(__name__,template_folder = r"../js_client")
- app.config['SECRET_KEY'] = 'secret!'
- socketio = SocketIO(app)
-
- p=print
-
- @app.route('/')
- def index():
- print("INDEX")
- return render_template('index.html')
-
- @app.route('/f1/<path:path>')
- def r2(path):
- p("????,...",path)
- return flask.send_file(r"../js_client/"+ path)
- return flask.send_file(r"../js_client", path)
- return flask.send_file('../js_client/jquery-3.5.1.min.js')
- # return flask.send_from_directory('templates', path)
- return flask.send_from_directory('./', path)
-
-
- @app.route('/<path:path>')
- def r1(path):
- p("????,aaaa,...",path)
- if ("shared_libs/jquery-3.5.1.min.js" in path):
- return flask.send_from_directory(r"../js_client", "jquery-3.5.1.min.js")
-
- return flask.send_from_directory(r"../js_client", path)
- return flask.send_file('../js_client/jquery-3.5.1.min.js')
- # return flask.send_from_directory('templates', path)
- return flask.send_from_directory('./', path)
-
- # @socketio.on('connect',namespace="/rx2/")
-
-
- r'''
- @socketio.on('connect',namespace="/rx2")
- def handle_message_a(*a,**kw):
- print('received connect: ',a,kw)
-
- @socketio.on('connect',namespace="rx2")
- def handle_message_b(*a,**kw):
- print('received connect: ',a,kw)
-
- @socketio.on('connect',namespace="rx2/")
- def handle_message_c(*a,**kw):
- print('received connect: ',a,kw)
- @socketio.on('connect',namespace="/rx2/")
- def handle_message_d(*a,**kw):
- print('received connect: ',a,kw)
-
-
-
-
-
-
- @socketio.on('connect',"/rx2")
- def handle_message__a(*a,**kw):
- print('received connect: ',a,kw)
-
- @socketio.on('connect',"rx2")
- def handle_message__b(*a,**kw):
- print('received connect: ',a,kw)
-
- @socketio.on('connect',"rx2/")
- def handle_message__c(*a,**kw):
- print('received connect: ',a,kw)
- @socketio.on('connect',"/rx2/")
- def handle_message__d(*a,**kw):
- print('received connect: ',a,kw)
-
-
- '''
-
- # @socketio.onAny('connect',namespace="/rx2")
- # def fn1(*a,**kw):
- # p("\n\t\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
-
-
-
-
- # @socketio.on('connect<path>',"/<path:path>")
- # @socketio.on('connect',"/<path:path>")
- @socketio.on('connect',"/")
- def handle_message(*a,**kw):
- print('received connect:?? ',a,kw)
- # p(flask.request.sid)
- #
- # for en in dir(flask.request):
- # p(en)
-
- # p(":")
- # p(flask.request.args)
-
- # p(flask.request.url)
- room = flask.request.args.get("room","no_room")
- p("+",room)
- join_room(room)
- # p(flask.request.event)
- # p(socketio.server.get_environ())
- @socketio.on('disconnect')
- def test_disconnect():
- print('Client disconnected')
- room = flask.request.args.get("room","no_room")
- p("}}}}}}}}}}",room)
-
-
-
- @socketio.on('message')
- def handle_message(data):
- print('received message: ' + data)
-
-
-
- @socketio.on('jsync.io2')
- def handle_message(data):
- print('received jsync.io message: ' + data)
- room = flask.request.args.get("room","no_room")
- p("io2+",room)
-
- # flask_socketio.emit('jsync.io', data, broadcast=True)
- flask_socketio.emit('jsync.io2', data ,room=room, broadcast=True)
-
-
-
-
- @socketio.on('jsync.io')
- def handle_message(data):
- print('received jsync.io message: ' + data)
- room = flask.request.args.get("room","no_room")
- p("io+",room)
- # flask_socketio.send(data, to=room)
- flask_socketio.emit('jsync.io2', data+"?", broadcast=True)
-
- # flask_socketio.emit('jsync.io', data, broadcast=True)
- # flask_socketio.emit('jsync.io2', data+"?", broadcast=True)
-
-
- @socketio.on('jsync.io.all')
- def handle_message(data):
- print('received jsync.io message: ' + data)
- flask_socketio.emit('jsync.io', data, broadcast=True)
- flask_socketio.emit('jsync.io2', data, broadcast=True)
-
-
-
- from flask_socketio import join_room, leave_room
- @socketio.on('join')
- def on_join(data):
- username = data['username']
- room = data['room']
- join_room(room)
- flask_socketio.send(username + ' has entered the room.', to=room)
-
- @socketio.on('leave')
- def on_leave(data):
- username = data['username']
- room = data['room']
- leave_room(room)
- flask_socketio.send(username + ' has left the room.', to=room)
-
-
-
-
-
-
-
- @socketio.on('json')
- def handle_json(json):
- print('received json: ' + str(json))
-
-
- # generated by bing seems to work
- @app.route("/ldir")
- def list_directory():
- orig_path = os.getcwd()
-
-
- # Get the list of files and directories
- # items = os.listdir(DIRECTORY_PATH)
- os.chdir(app.root_path)
- items = os.listdir("../js_client")
- os.chdir(orig_path)
-
- # Filter out hidden files and directories
- items = [item for item in items if not item.startswith(".")]
-
- # Create an HTML string with the list of items as links
- html_content = "<h1>Contents of the Directory</h1><ul>"
- html_links = ""
- html_src_links = ""
- other_links = ""
- for item in items:
- p([item])
- if "html" in item:
- html_src_links += f"<li><a href='viewsrc2/{item}'>src:{item}</a></li>"
- html_links += f"<li><a href='{item}'>{item}</a></li>"
- else:
- other_links += f"<li><a href='{item}'>{item}</a></li>"
- # link = (request.path + '/' if request.path != '/' else '') + item
- html_content+=html_links
- html_content+="<br>"
- html_content+=other_links
- html_content+="<br>"
- html_content+="VIEW SRC: its actually < pre >"
- html_content+="<br>"
- html_content+="<br>"
- html_content+=html_src_links
- html_content += "</ul>"
-
- # Return the HTML content directly
- return html_content
- # end generated by bing
-
- for en in dir(socketio):
- p("~~",en)
-
-
- if __name__ == '__main__':
- socketio.run(app,debug=True,host='0.0.0.0')
|