lea97338 commited on
Commit
dcba848
·
verified ·
1 Parent(s): d87e333

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +174 -3
app.py CHANGED
@@ -12,6 +12,7 @@ ENTREPRISES_FILE = "entreprises.json"
12
  clients = {}
13
  logged_users = {}
14
  player_positions = {}
 
15
 
16
  # ======================================================
17
  # PLAYERS
@@ -229,8 +230,6 @@ async def websocket_endpoint(
229
  except:
230
  pass
231
 
232
- # Envoi des propriétaires des entreprises
233
-
234
  for path, owner in (
235
  entreprises_data.items()
236
  ):
@@ -426,12 +425,185 @@ async def websocket_endpoint(
426
  except:
427
  pass
428
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
429
  except WebSocketDisconnect:
430
 
431
  pass
432
 
433
  finally:
434
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
435
  # Libération entreprises
436
 
437
  to_clear = []
@@ -485,7 +657,6 @@ async def websocket_endpoint(
485
 
486
  except:
487
  pass
488
-
489
  if __name__ == "__main__":
490
 
491
  port = int(
 
12
  clients = {}
13
  logged_users = {}
14
  player_positions = {}
15
+ coop_requests = {}
16
 
17
  # ======================================================
18
  # PLAYERS
 
230
  except:
231
  pass
232
 
 
 
233
  for path, owner in (
234
  entreprises_data.items()
235
  ):
 
425
  except:
426
  pass
427
 
428
+ # =====================================
429
+ # COOP INVITE
430
+ # =====================================
431
+
432
+ elif (
433
+ msg_type
434
+ ==
435
+ "coop_invite"
436
+ ):
437
+
438
+ if username:
439
+
440
+ target = str(
441
+ data.get(
442
+ "target",
443
+ ""
444
+ )
445
+ ).strip()
446
+
447
+ target_sid = None
448
+
449
+ for sid, uname in logged_users.items():
450
+
451
+ if uname == target:
452
+
453
+ target_sid = sid
454
+
455
+ break
456
+
457
+ if (
458
+ target_sid
459
+ and
460
+ target_sid in clients
461
+ ):
462
+
463
+ coop_requests[
464
+ target_sid
465
+ ] = session_id
466
+
467
+ try:
468
+
469
+ await clients[
470
+ target_sid
471
+ ].send_text(
472
+ json.dumps({
473
+ "type":"coop_invite",
474
+ "sender":username
475
+ })
476
+ )
477
+
478
+ except:
479
+ pass
480
+
481
+ # =====================================
482
+ # COOP ACCEPT
483
+ # =====================================
484
+
485
+ elif (
486
+ msg_type
487
+ ==
488
+ "coop_accept"
489
+ ):
490
+
491
+ if username:
492
+
493
+ sender_name = str(
494
+ data.get(
495
+ "sender",
496
+ ""
497
+ )
498
+ ).strip()
499
+
500
+ sender_sid = None
501
+
502
+ for sid, uname in logged_users.items():
503
+
504
+ if uname == sender_name:
505
+
506
+ sender_sid = sid
507
+
508
+ break
509
+
510
+ if (
511
+ sender_sid
512
+ and
513
+ sender_sid in clients
514
+ ):
515
+
516
+ if session_id in coop_requests:
517
+
518
+ del coop_requests[session_id]
519
+
520
+ try:
521
+
522
+ await clients[
523
+ sender_sid
524
+ ].send_text(
525
+ json.dumps({
526
+ "type":"coop_accept",
527
+ "from":username
528
+ })
529
+ )
530
+
531
+ except:
532
+ pass
533
+
534
+ # =====================================
535
+ # COOP REFUSE
536
+ # =====================================
537
+
538
+ elif (
539
+ msg_type
540
+ ==
541
+ "coop_refuse"
542
+ ):
543
+
544
+ if username:
545
+
546
+ sender_name = str(
547
+ data.get(
548
+ "sender",
549
+ ""
550
+ )
551
+ ).strip()
552
+
553
+ sender_sid = None
554
+
555
+ for sid, uname in logged_users.items():
556
+
557
+ if uname == sender_name:
558
+
559
+ sender_sid = sid
560
+
561
+ break
562
+
563
+ if (
564
+ sender_sid
565
+ and
566
+ sender_sid in clients
567
+ ):
568
+
569
+ if session_id in coop_requests:
570
+
571
+ del coop_requests[session_id]
572
+
573
+ try:
574
+
575
+ await clients[
576
+ sender_sid
577
+ ].send_text(
578
+ json.dumps({
579
+ "type":"coop_refuse",
580
+ "from":username
581
+ })
582
+ )
583
+
584
+ except:
585
+ pass
586
+
587
  except WebSocketDisconnect:
588
 
589
  pass
590
 
591
  finally:
592
 
593
+ # Libération coop
594
+
595
+ if session_id in coop_requests:
596
+
597
+ del coop_requests[session_id]
598
+
599
+ for k, v in list(
600
+ coop_requests.items()
601
+ ):
602
+
603
+ if v == session_id:
604
+
605
+ del coop_requests[k]
606
+
607
  # Libération entreprises
608
 
609
  to_clear = []
 
657
 
658
  except:
659
  pass
 
660
  if __name__ == "__main__":
661
 
662
  port = int(