izuemon commited on
Commit
4aa01a5
·
verified ·
1 Parent(s): 52c366d

Update turbowarp-server/qr-converter.py

Browse files
Files changed (1) hide show
  1. turbowarp-server/qr-converter.py +14 -29
turbowarp-server/qr-converter.py CHANGED
@@ -7,10 +7,11 @@ PROJECT_ID = 1293030706
7
  tw = scratchcommunication.TwCloudConnection(
8
  project_id=PROJECT_ID,
9
  username="server",
10
- contact_info="contact"
 
 
11
  )
12
 
13
- # 文字→数値変換(a-z0-9 → 00-35)
14
  def encode_short_id(short_id):
15
  chars = "abcdefghijklmnopqrstuvwxyz0123456789"
16
  result = ""
@@ -19,62 +20,46 @@ def encode_short_id(short_id):
19
  result += f"{index:02d}"
20
  return result
21
 
22
-
23
  last_n1 = None
24
 
25
  while True:
26
  try:
27
- n1 = str(tw.get_variable("n1"))
 
28
 
29
- # 変化検知
30
  if n1 != last_n1:
31
  last_n1 = n1
32
 
33
- # 最低3桁必要
34
  if len(n1) < 3:
35
  continue
36
 
37
- mode = n1[0] # 0 or 1
38
  read_flag = n1[1]
39
 
40
- # ---------------------------
41
- # 📥 Scratch → サーバー
42
- # ---------------------------
43
  if mode == "0" and read_flag == "0":
44
- # 使用中フラグ
45
- tw.set_variable("n0", 1)
46
 
47
- # ID取得
48
  recv_id = n1[2:]
49
  print("受信ID:", recv_id)
50
 
51
- # 既読に変更
52
- tw.set_variable("n1", "0" + "1" + recv_id)
53
 
54
- # APIアクセス
55
  url = f"https://20.rf.gd/set.php?project_id={recv_id}"
56
  res = requests.get(url)
57
  data = res.json()
58
-
59
  short_id = data.get("short_id", "")
 
60
  print("short_id:", short_id)
61
 
62
- # エンコード
63
  encoded = encode_short_id(short_id)
64
 
65
- # ---------------------------
66
- # 📤 サーバー Scratch
67
- # ---------------------------
68
- # 未読で送信
69
- tw.set_variable("n1", "1" + "0" + encoded)
70
 
71
- # ---------------------------
72
- # 📬 既読検知(Scratch側)
73
- # ---------------------------
74
  elif mode == "1" and read_flag == "1":
75
- # 使用終了
76
- tw.set_variable("n0", 0)
77
- print("通信終了")
78
 
79
  time.sleep(0.2)
80
 
 
7
  tw = scratchcommunication.TwCloudConnection(
8
  project_id=PROJECT_ID,
9
  username="server",
10
+ contact_info="contact",
11
+ reconnect=True,
12
+ receive_from_websocket=True
13
  )
14
 
 
15
  def encode_short_id(short_id):
16
  chars = "abcdefghijklmnopqrstuvwxyz0123456789"
17
  result = ""
 
20
  result += f"{index:02d}"
21
  return result
22
 
 
23
  last_n1 = None
24
 
25
  while True:
26
  try:
27
+ # 修正ポイント: name を指定する
28
+ n1 = str(tw.get_variable(name="n1"))
29
 
 
30
  if n1 != last_n1:
31
  last_n1 = n1
32
 
 
33
  if len(n1) < 3:
34
  continue
35
 
36
+ mode = n1[0]
37
  read_flag = n1[1]
38
 
 
 
 
39
  if mode == "0" and read_flag == "0":
40
+ tw.set_variable(name="n0", value=1)
 
41
 
 
42
  recv_id = n1[2:]
43
  print("受信ID:", recv_id)
44
 
45
+ # 既読にする
46
+ tw.set_variable(name="n1", value="0" + "1" + recv_id)
47
 
 
48
  url = f"https://20.rf.gd/set.php?project_id={recv_id}"
49
  res = requests.get(url)
50
  data = res.json()
 
51
  short_id = data.get("short_id", "")
52
+
53
  print("short_id:", short_id)
54
 
 
55
  encoded = encode_short_id(short_id)
56
 
57
+ # レスポンス書き込み
58
+ tw.set_variable(name="n1", value="1" + "0" + encoded)
 
 
 
59
 
 
 
 
60
  elif mode == "1" and read_flag == "1":
61
+ tw.set_variable(name="n0", value=0)
62
+ print("完了")
 
63
 
64
  time.sleep(0.2)
65