Spaces:
Running
Running
Update watcher.py
Browse files- 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"
|
| 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"
|
| 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"
|
| 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"
|
| 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("ダウンロードリンクが見つかりませんでした(成功レスポンスでしたが
|
| 223 |
return None
|
| 224 |
|
| 225 |
for i, u in enumerate(unique_urls, start=1):
|
| 226 |
-
send_to_channel(f"
|
| 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}
|
| 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"])
|