Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -169,23 +169,18 @@ def format_play_time(time_str):
|
|
| 169 |
return None
|
| 170 |
|
| 171 |
|
| 172 |
-
# ---
|
| 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 |
-
|
| 180 |
-
|
| 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("### 全天排片效率分析")
|