izuemon commited on
Commit
cba51eb
·
verified ·
1 Parent(s): 67bf15c

Update watcher.py

Browse files
Files changed (1) hide show
  1. watcher.py +49 -0
watcher.py CHANGED
@@ -61,7 +61,47 @@ def extract_youtube_id(text):
61
  if m:
62
  return m.group(1)
63
  return None
 
 
 
 
 
64
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
65
  def extract_youtube_and_option(text):
66
  parts = re.split(r"[ \u3000]+", text.strip())
67
  video_id = extract_youtube_id(parts[0])
@@ -303,7 +343,16 @@ def main():
303
 
304
  if not urls:
305
  send_to_channel("リンクが取得できませんでした。別の方法を試すか、ログを確認してください。")
 
 
 
306
 
 
 
 
 
 
 
307
  processed_messages.add(latest_msg["id"])
308
  print(f"処理完了: {video_id}")
309
 
 
61
  if m:
62
  return m.group(1)
63
  return None
64
+
65
+ def upload_file_to_channel(file_url):
66
+ # mp4バイナリ取得
67
+ file_res = requests.get(file_url, timeout=60)
68
+ file_res.raise_for_status()
69
 
70
+ upload_url = "https://media.channel.io/cht/v1/pri-file/200605/groups/519217/message/send_yt_video_file.mp4"
71
+
72
+ files = {
73
+ "file": ("video.mp4", file_res.content, "video/mp4")
74
+ }
75
+
76
+ headers = {
77
+ "x-account": X_ACCOUNT,
78
+ }
79
+
80
+ res = requests.post(upload_url, headers=headers, files=files, timeout=60)
81
+ res.raise_for_status()
82
+
83
+ return res.json() # ←これを messages POST の body.files に入れる
84
+
85
+
86
+ def send_video_message(file_json):
87
+ request_id = f"desk-web-{int(time.time() * 1000)}"
88
+
89
+ payload = {
90
+ "requestId": request_id,
91
+ "blocks": [
92
+ {"type": "text", "value": "プレビュー:"}
93
+ ],
94
+ "files": [file_json], # ←ここが重要!
95
+ }
96
+
97
+ res = requests.post(
98
+ POST_URL,
99
+ headers=HEADERS_POST,
100
+ data=json.dumps(payload),
101
+ timeout=30
102
+ )
103
+ res.raise_for_status()
104
+
105
  def extract_youtube_and_option(text):
106
  parts = re.split(r"[ \u3000]+", text.strip())
107
  video_id = extract_youtube_id(parts[0])
 
343
 
344
  if not urls:
345
  send_to_channel("リンクが取得できませんでした。別の方法を試すか、ログを確認してください。")
346
+ merged_url = urls[0]
347
+
348
+ send_to_channel("ファイルをダウンロードして送信します。少々お待ちください。")
349
 
350
+ try:
351
+ file_json = upload_file_to_channel(merged_url)
352
+ send_video_message(file_json)
353
+ except Exception as e:
354
+ send_to_channel(f"ファイル送信中にエラーが発生しました: {e}")
355
+
356
  processed_messages.add(latest_msg["id"])
357
  print(f"処理完了: {video_id}")
358