Ethscriptions commited on
Commit
f9efdb9
·
verified ·
1 Parent(s): 67ed9d6

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +6 -21
app.py CHANGED
@@ -169,23 +169,18 @@ def format_play_time(time_str):
169
  return None
170
 
171
 
172
- # --- UPDATED Helper function to add TMS location column ---
173
  def add_tms_locations_to_analysis(analysis_df, tms_movie_list):
174
  locations = []
175
  for index, row in analysis_df.iterrows():
176
  movie_title = row['影片']
177
  found_versions = []
178
  for tms_movie in tms_movie_list:
179
- # FIX 3: Change matching from 'in' to 'startswith'
180
- if tms_movie['assert_name'].startswith(movie_title):
181
  version_name = tms_movie['assert_name'].replace(movie_title, '').strip()
182
  circled_halls = " ".join(sorted([get_circled_number(h) for h in tms_movie['halls']]))
183
-
184
- # FIX 2: Handle empty version name to remove colon
185
- if version_name:
186
- found_versions.append(f"{version_name}:{circled_halls}")
187
- else:
188
- found_versions.append(circled_halls)
189
 
190
  locations.append('|'.join(found_versions))
191
 
@@ -198,6 +193,7 @@ st.title('影城排片效率与内容分析工具')
198
  st.write("上传 `影片映出日累计报表.xlsx` 进行效率分析,或点击下方按钮查询 TMS 服务器影片内容。")
199
 
200
  uploaded_file = st.file_uploader("请在此处上传 Excel 文件", type=['xlsx', 'xls', 'csv'])
 
201
  query_tms_for_location = st.checkbox("查询 TMS 找影片所在影厅")
202
 
203
  if uploaded_file is not None:
@@ -221,23 +217,12 @@ if uploaded_file is not None:
221
  prime_time_analysis = process_and_analyze_data(
222
  df[df['放映时间'].between(pd.to_datetime('14:00:00').time(), pd.to_datetime('21:00:00').time())].copy())
223
 
 
224
  if query_tms_for_location:
225
  with st.spinner("正在关联查询 TMS 服务器..."):
226
  _, tms_movie_list = fetch_and_process_server_movies()
227
  full_day_analysis = add_tms_locations_to_analysis(full_day_analysis, tms_movie_list)
228
  prime_time_analysis = add_tms_locations_to_analysis(prime_time_analysis, tms_movie_list)
229
-
230
- # FIX 1: Reorder columns
231
- if '影片所在影厅位置' in full_day_analysis.columns:
232
- cols_full = full_day_analysis.columns.tolist()
233
- cols_full.insert(1, cols_full.pop(cols_full.index('影片所在影厅位置')))
234
- full_day_analysis = full_day_analysis[cols_full]
235
-
236
- if '影片所在影厅位置' in prime_time_analysis.columns:
237
- cols_prime = prime_time_analysis.columns.tolist()
238
- cols_prime.insert(1, cols_prime.pop(cols_prime.index('影片所在影厅位置')))
239
- prime_time_analysis = prime_time_analysis[cols_prime]
240
-
241
  st.toast("TMS 影片位置关联成功!", icon="🔗")
242
 
243
  st.markdown("### 全天排片效率分析")
 
169
  return None
170
 
171
 
172
+ # --- NEW Helper function to add TMS location column ---
173
  def add_tms_locations_to_analysis(analysis_df, tms_movie_list):
174
  locations = []
175
  for index, row in analysis_df.iterrows():
176
  movie_title = row['影片']
177
  found_versions = []
178
  for tms_movie in tms_movie_list:
179
+ if movie_title in tms_movie['assert_name']:
180
+ # Extract version name by removing the base title
181
  version_name = tms_movie['assert_name'].replace(movie_title, '').strip()
182
  circled_halls = " ".join(sorted([get_circled_number(h) for h in tms_movie['halls']]))
183
+ found_versions.append(f"{version_name}:{circled_halls}")
 
 
 
 
 
184
 
185
  locations.append('|'.join(found_versions))
186
 
 
193
  st.write("上传 `影片映出日累计报表.xlsx` 进行效率分析,或点击下方按钮查询 TMS 服务器影片内容。")
194
 
195
  uploaded_file = st.file_uploader("请在此处上传 Excel 文件", type=['xlsx', 'xls', 'csv'])
196
+ # NEW: Checkbox for the new feature
197
  query_tms_for_location = st.checkbox("查询 TMS 找影片所在影厅")
198
 
199
  if uploaded_file is not None:
 
217
  prime_time_analysis = process_and_analyze_data(
218
  df[df['放映时间'].between(pd.to_datetime('14:00:00').time(), pd.to_datetime('21:00:00').time())].copy())
219
 
220
+ # --- NEW LOGIC: If checkbox is ticked, fetch data and modify dataframes ---
221
  if query_tms_for_location:
222
  with st.spinner("正在关联查询 TMS 服务器..."):
223
  _, tms_movie_list = fetch_and_process_server_movies()
224
  full_day_analysis = add_tms_locations_to_analysis(full_day_analysis, tms_movie_list)
225
  prime_time_analysis = add_tms_locations_to_analysis(prime_time_analysis, tms_movie_list)
 
 
 
 
 
 
 
 
 
 
 
 
226
  st.toast("TMS 影片位置关联成功!", icon="🔗")
227
 
228
  st.markdown("### 全天排片效率分析")