podflow 20250630__py3-none-any.whl → 20250701__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
podflow/main_podcast.py CHANGED
@@ -72,17 +72,17 @@ def main_podcast():
72
72
  # 初始化
73
73
  build_original()
74
74
  # http共享
75
- port = gVar.config.get("port", 8000) # 使用 .get 获取端口
75
+ port = gVar.config.get("port", 8000) # 使用 .get 获取端口
76
76
  hostip = "0.0.0.0"
77
77
 
78
- if port_judge(hostip, port): # 假设 port_judge 存在
78
+ if port_judge(hostip, port): # 假设 port_judge 存在
79
79
  # 设置路由 (确保此时 gVar.config 等已就绪)
80
- bottle_app_instance.setup_routes(upload=False) # 或者根据需要设置为 True
80
+ bottle_app_instance.setup_routes(upload=False) # 或者根据需要设置为 True
81
81
 
82
82
  # 设置logname
83
83
  bottle_app_instance.set_logname(
84
84
  logname="httpfs.log",
85
- http_fs=gVar.config.get("httpfs", False), # 使用 .get
85
+ http_fs=gVar.config.get("httpfs", False), # 使用 .get
86
86
  )
87
87
 
88
88
  # 启动 CherryPy 服务器
@@ -99,7 +99,7 @@ def main_podcast():
99
99
  "log.access_file": "", # 关闭访问日志
100
100
  "log.error_file": "", # 关闭错误日志
101
101
  # 添加线程池配置,对于长连接 (SSE) 可能有帮助
102
- 'server.thread_pool': 30 # 示例值,根据需要调整
102
+ "server.thread_pool": 30, # 示例值,根据需要调整
103
103
  }
104
104
  }
105
105
  )
@@ -122,7 +122,7 @@ def main_podcast():
122
122
  gVar.server_process_print_flag[0] = "pause"
123
123
  # 获取YouTube cookie
124
124
  gVar.youtube_cookie = get_youtube_cookie(gVar.channelid_youtube_ids_original)
125
- progress_update(0.01 ,num=0.0049)
125
+ progress_update(0.01, num=0.0049)
126
126
  # 更新哔哩哔哩data
127
127
  gVar.channelid_bilibili_ids, gVar.bilibili_data = get_bilibili_data(
128
128
  gVar.channelid_bilibili_ids_original
@@ -131,7 +131,9 @@ def main_podcast():
131
131
  # 恢复进程打印
132
132
  bottle_app_instance.cherry_print()
133
133
  # 获取原始xml字典和rss文本
134
- gVar.xmls_original, gVar.hash_rss_original, gVar.xmls_original_fail = get_original_rss()
134
+ gVar.xmls_original, gVar.hash_rss_original, gVar.xmls_original_fail = (
135
+ get_original_rss()
136
+ )
135
137
  progress_update(0.025, num=-0.0024)
136
138
  # 暂停进程打印
137
139
  gVar.server_process_print_flag[0] = "pause"
@@ -147,15 +149,10 @@ def main_podcast():
147
149
  # 初始化原始上传信息
148
150
  get_upload_original()
149
151
  progress_update(0.04)
150
-
151
152
  # 如果有上传服务器,则启动上传线程
152
153
  if upload_url:
153
- thread_upload = threading.Thread(
154
- target=all_upload,
155
- args=(upload_url,)
156
- )
154
+ thread_upload = threading.Thread(target=all_upload, args=(upload_url,))
157
155
  thread_upload.start()
158
-
159
156
  # 更新Youtube和哔哩哔哩频道xml
160
157
  update_youtube_bilibili_rss()
161
158
  progress_update(0.1)
@@ -198,11 +195,9 @@ def main_podcast():
198
195
  # 下载并构建YouTube和哔哩哔哩视频
199
196
  download_and_build()
200
197
  progress_update(0.8)
201
-
202
198
  # 如果有上传服务器,则等待上传线程完成
203
199
  if upload_url:
204
200
  thread_upload.join()
205
-
206
201
  # 添加新媒体至上传列表
207
202
  add_upload()
208
203
  progress_update(0.81, num=0.0049)
@@ -257,12 +252,10 @@ def main_podcast():
257
252
  # 清理缓存文件
258
253
  remove_flush(upload_url)
259
254
  else:
260
-
261
255
  # 如果没有更新内容,则停止上传线程
262
- gVar.upload_stop = True
256
+ gVar.upload_stop = True
263
257
  if upload_url:
264
258
  thread_upload.join()
265
-
266
259
  time_print("频道无更新内容")
267
260
  # 清空变量内数据
268
261
  gVar.channelid_youtube_ids_update.clear() # 需更新的YouTube频道字典
@@ -22,15 +22,21 @@ def update_upload():
22
22
  upload_original = gVar.upload_original
23
23
  # 获取所有项目
24
24
  all_items = gVar.all_items
25
+ # 获取原始 XML 数据
26
+ xmls_original = gVar.xmls_original
27
+ # 获取无法更新channel_id
28
+ fail_upload_parts = list(set(xmls_original.keys()) - set(all_items.keys()))
25
29
  # 遍历所有项目,获取每个输出目录的媒体名称
26
30
  for output_dir, items_dict in all_items.items():
27
31
  media_name[output_dir] = get_media_name(items_dict["type"], items_dict["items"])
28
32
  # 遍历原始上传列表,筛选出需要上传的媒体部分
29
33
  for upload_part in upload_original:
30
34
  if (
31
- upload_part["channel_id"] in media_name
32
- and upload_part["media_id"] in media_name[upload_part["channel_id"]]
33
- ):
35
+ (
36
+ upload_part["channel_id"] in media_name
37
+ and upload_part["media_id"] in media_name[upload_part["channel_id"]]
38
+ )
39
+ or upload_part["channel_id"] in fail_upload_parts):
34
40
  main_upload.append(upload_part)
35
41
 
36
42
  # 获取需要上传的媒体部分的ID
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: podflow
3
- Version: 20250630
3
+ Version: 20250701
4
4
  Summary: A podcast server that includes YouTube and BiliBili
5
5
  Home-page: https://github.com/gruel-zxz/podflow
6
6
  Author: gruel_zxz
@@ -14,7 +14,7 @@ Requires-Python: >=3.8
14
14
  Description-Content-Type: text/markdown
15
15
  Requires-Dist: astral>=3.2
16
16
  Requires-Dist: bottle>=0.13.2
17
- Requires-Dist: yt-dlp>=2025.6.25
17
+ Requires-Dist: yt-dlp>=2025.6.30
18
18
  Requires-Dist: chardet>=5.2.0
19
19
  Requires-Dist: cherrypy>=18.10.0
20
20
  Requires-Dist: pyqrcode>=1.2.1
@@ -2,7 +2,7 @@ podflow/__init__.py,sha256=mquu8BdWK9V4dDObCCfnPodeXOPkz-kj8_RNB7kK3Ys,7628
2
2
  podflow/download_and_build.py,sha256=x7S7N26B1G9Yn2yr7YthDJgKUwEKBLtHBLlaqpofLas,746
3
3
  podflow/ffmpeg_judge.py,sha256=wM49pPXOFwFAA_8TKHal5fV6ka9sAA87yGQMDOssvXo,1340
4
4
  podflow/main.py,sha256=7zWdpw80jqPaYu1Un1nPqaZoiAb7Dqg8zaF-cUioU4c,755
5
- podflow/main_podcast.py,sha256=Lz8cFdIjzCjSjsTx2vjmrU5i2opdSO93Y9IxWlJeD4E,13065
5
+ podflow/main_podcast.py,sha256=J2maKB-SRwHhOniVURKyp1zrqE6-ypkTmKQSZy4u6RE,12977
6
6
  podflow/main_upload.py,sha256=xuN15GAXokl2xzZrraLeusevl0j-TnHVziL0wobsBZc,2586
7
7
  podflow/parse_arguments.py,sha256=h3a7EaRZS04kNMFYbxTW9Ch29KgZ7dyS-yqEEt_etQI,2592
8
8
  podflow/basic/__init__.py,sha256=CAfI6mVQtz7KKbAiTIZ9_IbvaTXeAqxR1U7ov9GDoDo,44
@@ -99,15 +99,15 @@ podflow/upload/linked_client.py,sha256=NdSi5uh0TbZUhOHbA_mkHo4aIz1XNKoSXHhT4rMRU
99
99
  podflow/upload/linked_server.py,sha256=h-qSx13fP8_Ny2IKW3wCNPwqRqW6-Iz1pqxD9ga9-dM,2308
100
100
  podflow/upload/login.py,sha256=85sqr12T-3NH-TD3kAMzy4yb1KOheV3Tr0eGee7NCJo,4007
101
101
  podflow/upload/time_key.py,sha256=6jZ3cxUjzj_umYDwH27R0YNZlLXxfhNp-CqV_K22wlo,967
102
- podflow/upload/update_upload.py,sha256=_5tp1zPNsC9DdDnLzm-P8bLcOBuDov4eMRHp_861j80,3183
102
+ podflow/upload/update_upload.py,sha256=tolV9WMRFg9KqdGSSC37REBy4N_f-d3GvCihciMlOlg,3456
103
103
  podflow/upload/upload_files.py,sha256=zKMv27cqj7u-c8dHKNZx67UNx0gkMkQAnu2oxnk6a5M,5749
104
104
  podflow/upload/upload_server.py,sha256=BFq3QrWE7U97LbC4EQiDhQXbLapEc4R00eRDBH12E6A,565
105
105
  podflow/youtube/__init__.py,sha256=pgXod8gq0IijZxIkPSwgAOcb9JI5rd1mqMomoR7bcJ4,46
106
106
  podflow/youtube/build.py,sha256=j6SVq3HFFGlNNqRrHfnBIThdzsH88PFmwLnejosif1U,12311
107
107
  podflow/youtube/get.py,sha256=oO32GjTFvUgP5AfFX5AlIuXU2UT6QtOUOXWLFzi8XtI,17157
108
108
  podflow/youtube/login.py,sha256=KYl--ya6Z1u0uIcOp9l8i3DIIj9hsYUDH4dtJjI0MLM,1295
109
- podflow-20250630.dist-info/METADATA,sha256=GEeZ4rah0rMYrbE4XCyEs34tWr-sB6CyGsdDRjmLKrI,14195
110
- podflow-20250630.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
111
- podflow-20250630.dist-info/entry_points.txt,sha256=mn7hD_c_dmpKe3XU0KNekheBvD01LhlJ9htY-Df0j2A,131
112
- podflow-20250630.dist-info/top_level.txt,sha256=fUujhhz-RrMI8aGvi-3Ey5y7FQnpOOgoFw9OWM3yLCU,8
113
- podflow-20250630.dist-info/RECORD,,
109
+ podflow-20250701.dist-info/METADATA,sha256=8Ea-bk1KpDHAD179t_i8ooFe7KBcMPA--JqBHdvv1Co,14195
110
+ podflow-20250701.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
111
+ podflow-20250701.dist-info/entry_points.txt,sha256=mn7hD_c_dmpKe3XU0KNekheBvD01LhlJ9htY-Df0j2A,131
112
+ podflow-20250701.dist-info/top_level.txt,sha256=fUujhhz-RrMI8aGvi-3Ey5y7FQnpOOgoFw9OWM3yLCU,8
113
+ podflow-20250701.dist-info/RECORD,,