You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

rld_m1.py 4.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229
  1. import gmod
  2. import inspect
  3. import flask.sansio.scaffold
  4. print(",,,")
  5. p=print
  6. sock = gmod.glob["sock"]
  7. app = gmod.glob["app"]
  8. # if not "" in gmod.glob
  9. OKBLUE = '\033[94m'
  10. ENDC = '\033[0m'
  11. gx = gmod.gx
  12. def um_info(o):
  13. p()
  14. # return
  15. for en in dir(o):
  16. # if "url" not in en:continue
  17. attr = getattr(o,en,"NO ATTR")
  18. p(OKBLUE,en,ENDC)
  19. p(attr)
  20. p()
  21. # for r in app.url_map.iter_rules:
  22. # p(:)
  23. # for en in o:
  24. # p(en)
  25. def what(*a,**kw):
  26. p("WHAT",a,kw)
  27. def what2(*a,**kw):
  28. p("WHAT2",a,kw)
  29. def route_or_replace_v0(*a,**kw):
  30. o ={
  31. "rld":0
  32. }
  33. p("QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ.")
  34. def dec(fn):
  35. p("QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ")
  36. p(fn.__name__,fn)
  37. p(inspect.getsource(fn))
  38. # if app._got_first_request or fn.__name__ in app.view_functions:
  39. if fn.__name__ in app.view_functions:
  40. o["rld"]=1
  41. # if started and not app.view_functions no real change??
  42. p("...fr 0",fn,a,kw)
  43. # app.view_functions[fn.__name__] = fn
  44. app.view_functions[fn.__name__] = flask.sansio.scaffold.setupmethod(what2)
  45. return fn
  46. else:
  47. return sock.route(*a,**kw)(fn)
  48. pass
  49. if o["rld"]:
  50. return what
  51. else:
  52. return dec
  53. # def
  54. def route_or_replace(path,*a,**kw):
  55. o = {"rld":0}
  56. def dec(fn):
  57. if fn.__name__ in app.view_functions:
  58. o["rld"]=1
  59. p("RLD!!!")
  60. else:
  61. return sock.route(path,*a,**kw)(fn)
  62. p("route_or_replace",o,path,a,kw)
  63. if o["rld"]:
  64. return what
  65. else:
  66. return dec
  67. def sinfo(o):
  68. for en in dir(o):
  69. attr = getattr(o,en,"NO ATTR")
  70. p(OKBLUE,en,ENDC)
  71. # p("\033[48;5;57m",en,ENDC)
  72. # p("\033[36m",en,ENDC)
  73. p(attr)
  74. # p(en)
  75. def oinfo(o,n="!"):
  76. for en in dir(o):
  77. attr = getattr(o,en,"NO ATTR")
  78. p('\033[33m',en,ENDC,sep='')
  79. p(attr)
  80. # p(en)
  81. # @sock.route('/echo_c1')
  82. def gmod_once():
  83. if not app._got_first_request:
  84. gmod.glob["all_ws_conn"] = set()
  85. gmod.glob["groups"] = {}
  86. gmod_once()
  87. p()
  88. p("app._got_first_request",app._got_first_request)
  89. # um_info(app)
  90. # p(app.view_functions)
  91. def echo_coll(sock,*a,**kw):
  92. p("echo_coll m7",sock,sock.connected,a,kw)
  93. gmod.gx.ws_conn(sock,*a,**kw)
  94. # sinfo(sock.sock)
  95. # gmod.glob["all_ws_conn"].add(sock)
  96. # gx.add_to_channel(sock,"N1")
  97. # gx.add_to_channel(sock,"N4")
  98. # gmod.glob["all_ws_conn"].add(sock)
  99. # p(type(sock))
  100. # p(inspect.getsource(sock.accept))
  101. # p(inspect.getsource(sock.sock.send))
  102. # p(inspect.getsource(sock.sock.__class__))
  103. # p(inspect.getfile(sock.sock.__class__))
  104. # p(sock.sock.send)
  105. # oinfo(sock.sock)
  106. while True:
  107. data = sock.receive()
  108. gx.handle_msg(sock,data,z=[a,kw])
  109. # p(inspect.getfile(sock.__class__),data)
  110. # p(":",inspect.getfile(sock.receive),data)
  111. if data == "throw_err":
  112. p("throwing_err")
  113. raise data
  114. elif data == "s2":
  115. p("::::s2...")
  116. # cls_abc.abc123()
  117. sock.send(data)
  118. p("ENDIIII")
  119. app.config['SOCK_SERVER_OPTIONS'] = {'ping_interval': 10}
  120. # r'''
  121. @route_or_replace('/echo_c1')
  122. def _echo_coll(*a,**kw):
  123. # p("_echo_coll")
  124. return echo_coll(*a,**kw)
  125. # p("echo_coll m1")
  126. # while True:
  127. # data = sock.receive()
  128. # sock.send(data)
  129. # '''
  130. for en,fn in app.view_functions.items():
  131. p(en,"\n\t.",fn)
  132. r'''
  133. # def echo234(*a,**kw):
  134. # @route_or_replace('/<path:path>')
  135. @sock.route('/<path:path>')
  136. def echo234(sock,*a,**kw):
  137. p("E2.2sa2............................",a,kw)
  138. # return
  139. while True:
  140. data = sock.receive()
  141. sock.send(data)
  142. for en in dir(sock):
  143. p(en)
  144. gmod.glob["echo234"] = app.view_functions["echo234"]
  145. # '''
  146. r'''
  147. def echo2345(*a,**kw):
  148. try:
  149. p("zzz",__class__)
  150. except Exception as E:
  151. p(":",E)
  152. p("E2.2sa2...........................?",sock,a,kw)
  153. # return
  154. while True:
  155. data = sock.receive()
  156. sock.send(data)
  157. for en in dir(sock):
  158. p(en)
  159. # p(gmod.glob["echo234"])
  160. p("***********************************************************")
  161. p(inspect.getsource(app.view_functions["echo234"]))
  162. p("***********************************************************..............")
  163. # app.view_functions["echo234"] = gmod.glob["echo234"]
  164. app.view_functions["echo234"] = echo2345
  165. # '''
  166. # p(inspect.getsource(echo234))
  167. # p(echo234)
  168. # um_info(app.url_map)
  169. # p(app.url_map)
  170. # p(app.url_map.iter_rules)