izuemon commited on
Commit
d27af8b
·
verified ·
1 Parent(s): fd917dd

Update watcher.py

Browse files
Files changed (1) hide show
  1. watcher.py +11 -16
watcher.py CHANGED
@@ -160,17 +160,14 @@ def poll_progress_url(progress_url, max_attempts=30, interval=10):
160
  return False, last_json
161
 
162
  def process_savenow_flow(youtube_url, quality_opt):
163
- """
164
- SaveNow の初回 GET -> progress_url をポーリング -> 見つかったリンクを channel に送信
165
- """
166
  initial_url = build_savenow_initial_url(youtube_url, quality_opt)
167
- send_to_channel(f"SaveNow にリクエストを送信しています: {initial_url}")
168
  try:
169
  r = requests.get(initial_url, timeout=30)
170
  r.raise_for_status()
171
  init_json = r.json()
172
  except Exception as e:
173
- send_to_channel(f"SaveNow へのリクエストに失敗しました: {e}")
174
  return None
175
 
176
  # 初回レスポンスに progress_url がある想定
@@ -188,17 +185,17 @@ def process_savenow_flow(youtube_url, quality_opt):
188
  urls.append(alt["url"])
189
  # channel に送る
190
  for i, u in enumerate(urls, start=1):
191
- send_to_channel(f"ダウンロードリンク #{i}: <link type=\"url\" value=\"{u}\">{u}</link>")
192
  return urls
193
- send_to_channel("progress_url が見つかりませんでした。レスポンスをログに出します。")
194
- send_to_channel(f"初回レスポンス: {json.dumps(init_json, ensure_ascii=False)[:1000]}")
195
  return None
196
 
197
  # progress_url があればポーリング
198
- send_to_channel(f"進捗監視を開始します: {progress_url} (最大30回、10秒間隔)")
199
  ok, poll_json = poll_progress_url(progress_url, max_attempts=30, interval=10)
200
  if not ok:
201
- send_to_channel("進捗監視がタイムアウトしました。最後のレスポンスをログに出します。")
202
  send_to_channel(f"最後のレスポンス: {json.dumps(poll_json, ensure_ascii=False)[:1000]}")
203
  return None
204
 
@@ -219,11 +216,11 @@ def process_savenow_flow(youtube_url, quality_opt):
219
  unique_urls.append(u)
220
 
221
  if not unique_urls:
222
- send_to_channel("ダウンロードリンクが見つかりませんでした(成功レスポンスでしたが link が空)。")
223
  return None
224
 
225
  for i, u in enumerate(unique_urls, start=1):
226
- send_to_channel(f"ダウンロードリンク #{i}: <link type=\"url\" value=\"{u}\">{u}</link>")
227
 
228
  return unique_urls
229
 
@@ -296,14 +293,12 @@ def main():
296
 
297
  quality_opt = normalize_quality(option)
298
  youtube_url = f"https://www.youtube.com/watch?v={video_id}"
299
- send_to_channel(f"{video_id} のダウンロード(SaveNow)を開始します。")
300
 
301
  # SaveNow フローを使う(要求にあった処理)
302
  urls = process_savenow_flow(youtube_url, quality_opt)
303
 
304
- if urls:
305
- send_to_channel("リンクを取得しました。必要ならファイルをアップロードする処理を追加してください。")
306
- else:
307
  send_to_channel("リンクが取得できませんでした。別の方法を試すか、ログを確認してください。")
308
 
309
  processed_messages.add(latest_msg["id"])
 
160
  return False, last_json
161
 
162
  def process_savenow_flow(youtube_url, quality_opt):
 
 
 
163
  initial_url = build_savenow_initial_url(youtube_url, quality_opt)
164
+ send_to_channel(f"リクエストを送信しています")
165
  try:
166
  r = requests.get(initial_url, timeout=30)
167
  r.raise_for_status()
168
  init_json = r.json()
169
  except Exception as e:
170
+ send_to_channel(f"リクエストに失敗しました: {e}")
171
  return None
172
 
173
  # 初回レスポンスに progress_url がある想定
 
185
  urls.append(alt["url"])
186
  # channel に送る
187
  for i, u in enumerate(urls, start=1):
188
+ send_to_channel(f"<link type=\"url\" value=\"{u}\">ダウンロードリンク{i}</link>")
189
  return urls
190
+ send_to_channel("progress_url が見つかりませんでした。")
191
+ #send_to_channel(f"初回レスポンス: {json.dumps(init_json, ensure_ascii=False)[:1000]}")
192
  return None
193
 
194
  # progress_url があればポーリング
195
+ send_to_channel(f"変換処理を開始します")
196
  ok, poll_json = poll_progress_url(progress_url, max_attempts=30, interval=10)
197
  if not ok:
198
+ send_to_channel("進捗監視がタイムアウトしました。")
199
  send_to_channel(f"最後のレスポンス: {json.dumps(poll_json, ensure_ascii=False)[:1000]}")
200
  return None
201
 
 
216
  unique_urls.append(u)
217
 
218
  if not unique_urls:
219
+ send_to_channel("ダウンロードリンクが見つかりませんでした(成功レスポンスでしたがlinkが空)。")
220
  return None
221
 
222
  for i, u in enumerate(unique_urls, start=1):
223
+ send_to_channel(f"<link type=\"url\" value=\"{u}\">ダウンロードリンク{i}</link>")
224
 
225
  return unique_urls
226
 
 
293
 
294
  quality_opt = normalize_quality(option)
295
  youtube_url = f"https://www.youtube.com/watch?v={video_id}"
296
+ send_to_channel(f"{video_id} のダウンロードを開始します。")
297
 
298
  # SaveNow フローを使う(要求にあった処理)
299
  urls = process_savenow_flow(youtube_url, quality_opt)
300
 
301
+ if not urls:
 
 
302
  send_to_channel("リンクが取得できませんでした。別の方法を試すか、ログを確認してください。")
303
 
304
  processed_messages.add(latest_msg["id"])