Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -37,9 +37,8 @@ class ReportSender:
|
|
| 37 |
self.stop_event.clear() # Clear any previous stop signal
|
| 38 |
self.is_running = True
|
| 39 |
|
| 40 |
-
#
|
| 41 |
master_urls = [u.strip() for u in master_url_batch.split('\n') if u.strip()]
|
| 42 |
-
# ---------------------------------------------------------------------------------
|
| 43 |
|
| 44 |
num_urls = len(master_urls)
|
| 45 |
|
|
@@ -94,28 +93,35 @@ class ReportSender:
|
|
| 94 |
|
| 95 |
# Check for explicit success based on API behavior
|
| 96 |
is_empty_success = response.status_code == 200 and not response.text.strip()
|
|
|
|
| 97 |
|
| 98 |
-
if is_empty_success:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 99 |
status_icon = "✅"
|
| 100 |
-
|
|
|
|
| 101 |
else:
|
| 102 |
status_icon = "⚠️"
|
| 103 |
-
#
|
| 104 |
-
|
| 105 |
-
|
| 106 |
-
try:
|
| 107 |
-
parsed = response.json()
|
| 108 |
-
status_code = parsed.get('status_code', '???')
|
| 109 |
-
status_message = parsed.get('status_message', 'No Message')
|
| 110 |
-
error_msg = f"Code: {status_code} | Msg: {status_message}"
|
| 111 |
-
except:
|
| 112 |
-
error_msg = response.text[:50] + "..."
|
| 113 |
else:
|
| 114 |
-
|
| 115 |
|
| 116 |
-
status_msg = f"Request Failed ({response.status_code}): {error_msg}"
|
| 117 |
-
|
| 118 |
-
|
| 119 |
log_entry = (
|
| 120 |
f"[{timestamp}] {status_icon} REQ ({total_requests_sent}): {report_name}\n"
|
| 121 |
f" ⬇ Status: {status_msg} | Delay: {delay:.2f}s\n"
|
|
@@ -193,7 +199,7 @@ with gr.Blocks() as app:
|
|
| 193 |
batch_count_input = gr.Number(
|
| 194 |
label="Batch Count (Total Cycles)",
|
| 195 |
info="Set to -1 for continuous run.",
|
| 196 |
-
value=
|
| 197 |
scale=1
|
| 198 |
)
|
| 199 |
# Status box fix: set scale to 1 for better proportion
|
|
|
|
| 37 |
self.stop_event.clear() # Clear any previous stop signal
|
| 38 |
self.is_running = True
|
| 39 |
|
| 40 |
+
# FIX: Only check for non-empty lines, assume valid URL format (http/https)
|
| 41 |
master_urls = [u.strip() for u in master_url_batch.split('\n') if u.strip()]
|
|
|
|
| 42 |
|
| 43 |
num_urls = len(master_urls)
|
| 44 |
|
|
|
|
| 93 |
|
| 94 |
# Check for explicit success based on API behavior
|
| 95 |
is_empty_success = response.status_code == 200 and not response.text.strip()
|
| 96 |
+
is_json_success = False
|
| 97 |
|
| 98 |
+
if not is_empty_success:
|
| 99 |
+
try:
|
| 100 |
+
parsed = response.json()
|
| 101 |
+
# Check for TikTok's explicit success indicator (status_code: 0)
|
| 102 |
+
if parsed.get('status_code', -1) == 0:
|
| 103 |
+
is_json_success = True
|
| 104 |
+
# Use status_message from JSON response for logging/debugging
|
| 105 |
+
status_code_msg = parsed.get('status_message', 'No Message')
|
| 106 |
+
status_code_val = parsed.get('status_code', '???')
|
| 107 |
+
except:
|
| 108 |
+
status_code_msg = "Non-JSON"
|
| 109 |
+
status_code_val = response.status_code
|
| 110 |
+
|
| 111 |
+
is_success = is_empty_success or is_json_success
|
| 112 |
+
|
| 113 |
+
if is_success:
|
| 114 |
status_icon = "✅"
|
| 115 |
+
# Simple success message as requested
|
| 116 |
+
status_msg = "Request Sent (SUCCESS)"
|
| 117 |
else:
|
| 118 |
status_icon = "⚠️"
|
| 119 |
+
# Detailed failure message
|
| 120 |
+
if not is_empty_success and not is_json_success:
|
| 121 |
+
status_msg = f"Request Failed ({response.status_code}): Code: {status_code_val} | Msg: {status_code_msg}"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 122 |
else:
|
| 123 |
+
status_msg = f"Request Failed ({response.status_code}): Unexpected Error"
|
| 124 |
|
|
|
|
|
|
|
|
|
|
| 125 |
log_entry = (
|
| 126 |
f"[{timestamp}] {status_icon} REQ ({total_requests_sent}): {report_name}\n"
|
| 127 |
f" ⬇ Status: {status_msg} | Delay: {delay:.2f}s\n"
|
|
|
|
| 199 |
batch_count_input = gr.Number(
|
| 200 |
label="Batch Count (Total Cycles)",
|
| 201 |
info="Set to -1 for continuous run.",
|
| 202 |
+
value=-1, # Changed default to -1 as requested
|
| 203 |
scale=1
|
| 204 |
)
|
| 205 |
# Status box fix: set scale to 1 for better proportion
|