Update app.py
Browse files
app.py
CHANGED
@@ -158,22 +158,31 @@ for i in range(row_count):
|
|
158 |
elif df is None and st.sidebar.button("Generate All"):
|
159 |
st.error(f"Failed for URL {i + 1}: No data or error.")
|
160 |
|
161 |
-
|
|
|
162 |
|
163 |
-
|
|
|
|
|
|
|
164 |
jobs = Queue()
|
165 |
results = Queue()
|
166 |
workers = [BacklinkWorker(jobs, results, api_login, api_key) for _ in range(num_concurrent_calls)]
|
|
|
167 |
for worker in workers:
|
168 |
worker.start()
|
|
|
169 |
for i in range(row_count):
|
170 |
target_url = st.session_state.get(f"target_url_{i}", "")
|
171 |
if target_url:
|
172 |
jobs.put((i, target_url, filters))
|
|
|
173 |
for _ in workers:
|
174 |
jobs.put(None)
|
|
|
175 |
for worker in workers:
|
176 |
worker.join()
|
|
|
177 |
while not results.empty():
|
178 |
url_id, df = results.get()
|
179 |
-
st.session_state[f"df_{url_id}"] = df
|
|
|
158 |
elif df is None and st.sidebar.button("Generate All"):
|
159 |
st.error(f"Failed for URL {i + 1}: No data or error.")
|
160 |
|
161 |
+
if 'generate_clicked' not in st.session_state:
|
162 |
+
st.session_state['generate_clicked'] = False
|
163 |
|
164 |
+
generate_button = st.sidebar.button("Generate All", key="generate_all")
|
165 |
+
|
166 |
+
if generate_button or st.session_state['generate_clicked']:
|
167 |
+
st.session_state['generate_clicked'] = True
|
168 |
jobs = Queue()
|
169 |
results = Queue()
|
170 |
workers = [BacklinkWorker(jobs, results, api_login, api_key) for _ in range(num_concurrent_calls)]
|
171 |
+
|
172 |
for worker in workers:
|
173 |
worker.start()
|
174 |
+
|
175 |
for i in range(row_count):
|
176 |
target_url = st.session_state.get(f"target_url_{i}", "")
|
177 |
if target_url:
|
178 |
jobs.put((i, target_url, filters))
|
179 |
+
|
180 |
for _ in workers:
|
181 |
jobs.put(None)
|
182 |
+
|
183 |
for worker in workers:
|
184 |
worker.join()
|
185 |
+
|
186 |
while not results.empty():
|
187 |
url_id, df = results.get()
|
188 |
+
st.session_state[f"df_{url_id}"] = df
|