podflow 20250212__py3-none-any.whl → 20250301__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/youtube/build.py CHANGED
@@ -8,8 +8,6 @@ import contextlib
8
8
  import xml.etree.ElementTree as ET
9
9
  from datetime import datetime, timezone
10
10
  from Podflow import gVar
11
- from Podflow.message.xml_rss import xml_rss
12
- from Podflow.basic.file_save import file_save
13
11
  from Podflow.message.xml_item import xml_item
14
12
  from Podflow.basic.http_client import http_client
15
13
  from Podflow.message.format_time import format_time
@@ -25,10 +23,9 @@ def get_youtube_introduction():
25
23
  # 使用http获取youtube频道简介和图标模块
26
24
  def youtube_xml_get(output_dir):
27
25
  if channel_about := http_client(
28
- f"https://www.youtube.com/channel/{output_dir}/about",
29
- f"{gVar.channelid_youtube_ids[output_dir]} 简介",
30
- 2,
31
- 5,
26
+ url=f"https://www.youtube.com/channel/{output_dir}/about",
27
+ max_retries=2,
28
+ retry_delay=5,
32
29
  ):
33
30
  channel_about = channel_about.text
34
31
  xml_tree = {
@@ -46,6 +43,8 @@ def get_youtube_introduction():
46
43
  channel_about,
47
44
  flags=re.DOTALL,
48
45
  ).group()
46
+ else:
47
+ xml_tree = False
49
48
  with youtube_xml_get_lock:
50
49
  gVar.youtube_xml_get_tree[output_dir] = xml_tree
51
50
 
@@ -60,6 +59,15 @@ def get_youtube_introduction():
60
59
  thread.join()
61
60
 
62
61
 
62
+ # 打印无法获取youtube频道简介模块
63
+ def print_fail_youtube_introduction():
64
+ for output_dir, xml_tree in gVar.youtube_xml_get_tree:
65
+ if isinstance(xml_tree, bool) and not xml_tree:
66
+ print(
67
+ f"{datetime.now().strftime('%H:%M:%S')}|{gVar.channelid_youtube_ids[output_dir]} 简介获取失败"
68
+ )
69
+
70
+
63
71
  # 获取YouTube播放列表模块
64
72
  def get_youtube_playlist(url, channelid_title):
65
73
  videoids = []
@@ -69,7 +77,15 @@ def get_youtube_playlist(url, channelid_title):
69
77
  0
70
78
  ]["tabRenderer"]["content"]["sectionListRenderer"]["contents"][0][
71
79
  "itemSectionRenderer"
72
- ]["contents"][0]["playlistVideoListRenderer"]["contents"]
80
+ ][
81
+ "contents"
82
+ ][
83
+ 0
84
+ ][
85
+ "playlistVideoListRenderer"
86
+ ][
87
+ "contents"
88
+ ]
73
89
  videoids.extend(
74
90
  content["playlistVideoRenderer"]["videoId"] for content in contents
75
91
  )
@@ -262,12 +278,14 @@ def youtube_xml_items(output_dir):
262
278
  except Exception: # 参数不存在直接更新
263
279
  description = gVar.config["description"]
264
280
  icon = gVar.config["icon"]
281
+ youtube_xml_get_tree = gVar.youtube_xml_get_tree
265
282
  if (
266
283
  output_dir in gVar.channelid_youtube_ids_update
267
- and output_dir in gVar.youtube_xml_get_tree
284
+ and output_dir in youtube_xml_get_tree
285
+ and isinstance(youtube_xml_get_tree[output_dir], dict)
268
286
  ):
269
- description = gVar.youtube_xml_get_tree[output_dir]["description"]
270
- icon = gVar.youtube_xml_get_tree[output_dir]["icon"]
287
+ description = youtube_xml_get_tree[output_dir]["description"]
288
+ icon = youtube_xml_get_tree[output_dir]["icon"]
271
289
  category = gVar.config["category"]
272
290
  if output_dir_value["type"] == "dict":
273
291
  title = output_dir_value["content"]["title"]
@@ -278,9 +296,11 @@ def youtube_xml_items(output_dir):
278
296
  items = f"""<!-- {{{output_dir}}} -->
279
297
  {items}
280
298
  <!-- {{{output_dir}}} -->"""
281
- file_save(
282
- xml_rss(title, link, description, category, icon, items),
283
- f"{output_dir}.xml",
284
- "channel_rss",
285
- )
286
- return items
299
+ return {
300
+ "title": title,
301
+ "link": link,
302
+ "description": description,
303
+ "category": category,
304
+ "icon": icon,
305
+ "items": items,
306
+ }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: podflow
3
- Version: 20250212
3
+ Version: 20250301
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
@@ -15,7 +15,7 @@ Description-Content-Type: text/markdown
15
15
  Requires-Dist: astral>=3.2
16
16
  Requires-Dist: bottle>=0.13.2
17
17
  Requires-Dist: qrcode>=8.0
18
- Requires-Dist: yt-dlp>=2025.1.26
18
+ Requires-Dist: yt-dlp>=2025.2.19
19
19
  Requires-Dist: chardet>=5.2.0
20
20
  Requires-Dist: cherrypy>=18.10.0
21
21
  Requires-Dist: requests>=2.32.3
@@ -1,6 +1,9 @@
1
- Podflow/__init__.py,sha256=lXlJ6btdmA-rtsJH7fH4gvaRobCe5woXRuD5PCtXMRM,6908
1
+ Podflow/__init__.py,sha256=fRgwxrydKSb9rK_ZsZsb2XhbGEgxxTYKmLB4f88fg0M,6908
2
+ Podflow/download_and_build.py,sha256=LeLjLHnF5N9vdrroDsB-mT4UKY2OwPSL3APUAkhTuwc,671
2
3
  Podflow/ffmpeg_judge.py,sha256=krttVs1PDot_0CDq5rmtUIpchiaiqtAkPYFQRLG6OQM,1275
3
- Podflow/main.py,sha256=k_rb5ssdHZIqkdb7GCPtsGALPQnM_gpGpxGtF3uDJsM,10120
4
+ Podflow/main.py,sha256=qSUmVrY5uM1pAViEnPkk9Dx_18NqbZE8W2_fU-Hg2O8,456
5
+ Podflow/main_podcast.py,sha256=IUVEEYpXfyVNSACkDriTPgLsQhjC1xHFZTP5V3zwZZw,8289
6
+ Podflow/main_upload.py,sha256=FzWWRDK5GmvMas-BcTRBq1H5djVgg5-NF8vXMoo7Sko,886
4
7
  Podflow/parse_arguments.py,sha256=qa5228sralPV7s4JdB6UgS1ug66rBqckDvSOwjz2tIc,2171
5
8
  Podflow/basic/__init__.py,sha256=SyFA_F_0-zn1VejCL83IPeZx1k2HCiqNY-0l0bp1N88,44
6
9
  Podflow/basic/file_save.py,sha256=mstWM6njYtCpq2sa28JD_neClvVLcjJOrGlCXBjUnZs,696
@@ -8,7 +11,7 @@ Podflow/basic/folder_build.py,sha256=Bt1ab1shKIluvSRzWqxaFmvG3AVU3kwJNzwSesdNlIU
8
11
  Podflow/basic/get_duration.py,sha256=e9w8XktV-ozdO0v0dlsUMqcyKJZpjcibCpY-wfwZt54,532
9
12
  Podflow/basic/get_file_list.py,sha256=Y6Nqn6lxhPXiIT2eeCkY7fMPrzFClwjv7kXej4CCFCY,2389
10
13
  Podflow/basic/get_html_dict.py,sha256=EZQ0Wlu87SFbUFZuakE7JWgFx53FQKpLbP78L7Gww3E,869
11
- Podflow/basic/http_client.py,sha256=lsVRA672y47FXBjC8gDVHdsat0OwR5l_y-1o2WzGqxk,2644
14
+ Podflow/basic/http_client.py,sha256=gvaxg_1lz81tnWCq2HIh-oliShWJCP77JUnYl2v5qng,3003
12
15
  Podflow/basic/list_merge_tidy.py,sha256=o9cEnfEK0bhjf5awls5HyUzg0siPa1e4V97-kqxlpt0,368
13
16
  Podflow/basic/qr_code.py,sha256=3q2omeQTDIt4aDlfPGVpiynfAHW7K4XYx59LBSUiEDk,1704
14
17
  Podflow/basic/split_dict.py,sha256=rxwsGuzBWXJ8nDxcxYI-BqeeccyDTsw011tjkT8rZwI,401
@@ -17,9 +20,9 @@ Podflow/basic/time_stamp.py,sha256=vf0p6FIK2-ZN2p2sotbpf4dewQMy-Vior-aREYfT0Zc,1
17
20
  Podflow/basic/vary_replace.py,sha256=aecFDuAOvQjTpgtoSW5uDu8Tx_YTs4bCFF9imVFkfVY,211
18
21
  Podflow/basic/write_log.py,sha256=Sm6qzTSb1x6X2uQnnmVD4dU6BsY1PONxenwsWAdFxso,1358
19
22
  Podflow/bilibili/__init__.py,sha256=ekvpCzR4bg6ar73Gq0YWQcPXND4TEqP46pb9iLyke9g,47
20
- Podflow/bilibili/build.py,sha256=Z62hEUDT0YB_NNR9rDpmvvOYrSOBR644Kvkdc05FGU0,7936
23
+ Podflow/bilibili/build.py,sha256=Oeh6Cqb61F5zQWe8ohDP0QKwykAa4_I2fa-Yl6ZxkCw,7957
21
24
  Podflow/bilibili/get.py,sha256=PXPh_H8B_zP9dhqe6sA_QCeJcdnriBCpbF7mPq46xMw,20337
22
- Podflow/bilibili/login.py,sha256=aYKEj5re-JYXnA0aCOKUF9Cqwwd7FTOuAu_yvcaqdag,10944
25
+ Podflow/bilibili/login.py,sha256=ujczE9rWKFJQ7zIJ7mvlrf2XpXpn6sQwtGtqPsaf3wg,10932
23
26
  Podflow/config/__init__.py,sha256=BroaS1uvdLb00OQeJXc1i7QeuErD-U-2QjynQH5IDdE,45
24
27
  Podflow/config/build_original.py,sha256=tZtsGUi1rG6DH6cxaiaVQPRtIl6U0-FqOdeho7CXl0s,1809
25
28
  Podflow/config/channge_icon.py,sha256=z2tFFiP7aZFiMP1RqXkrovWAxBOI77rTHKhuzzhFfn0,5653
@@ -34,21 +37,22 @@ Podflow/download/delete_part.py,sha256=G9lK8G8tOOmnEBmAHJKPdqPeLhJ61S5m8o6iL5g9S
34
37
  Podflow/download/dl_aideo_video.py,sha256=8Y8agC4bBCpWLDE6zWfCAi0PrT_ik302XkufxgXK1z8,10001
35
38
  Podflow/download/show_progress.py,sha256=7oGzhj_frO2A1o5JeGuHn7bHtma5oPpD_IWcctIO2rs,1595
36
39
  Podflow/download/wait_animation.py,sha256=E2V3cm-10e5Iif40oU722OfzDe7YiLMbDqsjZ6dshBE,1056
37
- Podflow/download/youtube_and_bilibili_download.py,sha256=jt6CWb8ZJ-dyIom7fJ_K1qve9pSzoW0hNwfWnZiju7w,1228
40
+ Podflow/download/youtube_and_bilibili_download.py,sha256=uHb-ZirbDXmnW_gDTmUtus6xqLy8flXwKmSkeslN_dc,1285
38
41
  Podflow/httpfs/__init__.py,sha256=agnAtd2Xe0qfOrElKgoBattAVqUBdj79wU2e2UOpcJM,45
39
42
  Podflow/httpfs/app_bottle.py,sha256=B5rGSxSNFbrjZfmtH7GVYdHCNDZ0T_7Jxrh4_oM8-FU,9333
40
- Podflow/httpfs/port_judge.py,sha256=OSNyE-aWRFB8aPmv2LJugRSQdBkwoxrqv7_rEP7OFzM,565
43
+ Podflow/httpfs/port_judge.py,sha256=KozmaCGlMVh3E0ONekxSUstJWthhwdLK4WoJ84u1c5Q,349
41
44
  Podflow/makeup/__init__.py,sha256=HaBchKbUjRqqXSGCkMfEqLOyx3tlqB2htXvTDs59owI,45
42
- Podflow/makeup/del_makeup_yt_format_fail.py,sha256=j2QCpfL-UslUfVYBwBxlJnZdp6BMNLpS-D3zjGwTakc,638
45
+ Podflow/makeup/del_makeup_format_fail.py,sha256=rUSJD5lXMBM5pCde1amrtF6s93MMHp66-NHCXZy56AI,642
43
46
  Podflow/makeup/make_up_file.py,sha256=6r5Mf_zK9snLS2hByD-HyKyuKWTccqqDJXh39GKhq28,2222
44
- Podflow/makeup/make_up_file_format_mod.py,sha256=1hUne0OxWi7tfl4vpe2Jlp74Zub6f2W_IRzVmijzBCY,3640
47
+ Podflow/makeup/make_up_file_format_mod.py,sha256=NMG8gzp1ARSyZWZvMta3BMFPH75o1YYmaIbv247MgSw,3613
45
48
  Podflow/makeup/make_up_file_mod.py,sha256=CDwgC8BKPf1o1x5U5DF8UR1gtoAEPmhknokkqGLdJWY,1075
46
49
  Podflow/message/__init__.py,sha256=SC42QCYhGwCvzvBnxiBz6L1MN-l57WHbH7PIh-UyPdI,46
47
50
  Podflow/message/backup_zip_save.py,sha256=cU1oLO68INKSlmckYNCWmdZKu51T-HNuVFSHYzA9a-8,1740
48
- Podflow/message/create_main_rss.py,sha256=pbi5h0EOPLtX9rh9IUZ4QWdXQnQXNRPTE35XCUqiiqw,1773
49
- Podflow/message/display_qrcode_and_url.py,sha256=72DwF1H2-cmVxsRlTb93Othc-6fkgFWEVHl3djm3acE,1183
50
- Podflow/message/fail_message_initialize.py,sha256=ilLoRBtHaDvcz9vZ3R57Ut1AknUOQxioR0mLWsLMFL0,6130
51
+ Podflow/message/create_main_rss.py,sha256=R-8nfTp7cg1m9BfK-YGfb186iR_miMwDxszwOLFc-eQ,2946
52
+ Podflow/message/display_qrcode_and_url.py,sha256=Ren6ly_W-c__FGlRxXrpNSyV16IOu-OwHDNOkzB6La0,1016
53
+ Podflow/message/fail_message_initialize.py,sha256=J7yjPo7vaL5Ix3lHOK13DE2zZ_xmdFF9xokarajtv6E,6299
51
54
  Podflow/message/format_time.py,sha256=2Z7rPh3rrU68UoDO5fFF_ipV_SEmtotziBmBBl0mHdc,909
55
+ Podflow/message/get_media_name.py,sha256=5a9Tuvsr7-jslJ8h3hH23Bh11mN6GcCQmHUQwvwS54A,861
52
56
  Podflow/message/get_original_rss.py,sha256=QRtpHEYeS9rDh4Cv_EkTIC89eSw0I6540ykrTT3yr-4,2383
53
57
  Podflow/message/get_video_format.py,sha256=RIX0fxuPYkoQPRWt-ulJPhfEWtMkyxwOEVqcuRsp4v8,4770
54
58
  Podflow/message/get_video_format_multithread.py,sha256=ZXzY9RwT59eOvP6Lmx-I07P3C1CWCl-4l_uw_pkozqE,1406
@@ -56,6 +60,7 @@ Podflow/message/get_youtube_and_bilibili_video_format.py,sha256=RuaxL3JwZs3_Bqm7
56
60
  Podflow/message/media_format.py,sha256=WH0NnjWPLigU8Wy2kbqDIhj_RISnaCCXtsR5qIjLFdU,7346
57
61
  Podflow/message/original_rss_fail_print.py,sha256=pVVb_BGM1HofHDh9pCX5GS03gOnNAssfHDjj5Ytz_mw,502
58
62
  Podflow/message/rss_create_hash.py,sha256=NODhtprDPkpiuiezupARKm5Xr4Zt2Io_lcxmHedPAQc,638
63
+ Podflow/message/save_rss.py,sha256=ZBZrEWrF70w2lmJ3oP84sTPL3d5w93ZLq01Zeg0wurs,3201
59
64
  Podflow/message/title_correction.py,sha256=JR2q3PubOUUAfQEPjIzeRzUe4Jy86opGIO1st51qt2g,915
60
65
  Podflow/message/update_information_display.py,sha256=-vIBKaR6_JrZJyzvN6-YUfj_ISY7qw_1fGiyXDxFAE4,3061
61
66
  Podflow/message/update_youtube_bilibili_rss.py,sha256=eSQhYyLsOGyNpE7i4AjQ2auSUrunJUE18qPiPbhiv4Q,5238
@@ -68,15 +73,20 @@ Podflow/netscape/bulid_netscape.py,sha256=lG2uQQIGVX1H7iyOEO8aGKlaPdBPWbZq4rgdcJ
68
73
  Podflow/netscape/get_cookie_dict.py,sha256=ptT2H8ZwFseK8EmpH0jn-lhzh-KCciOOPwpAJnIFDFU,691
69
74
  Podflow/remove/__init__.py,sha256=kns-jfTXH8lXh9OQ5E5-llsrAPlET5rl6RYpjoZKav8,45
70
75
  Podflow/remove/remove_dir.py,sha256=tah3LCD0bCcf5dDg3NrHuseaje3-31C5NLNupMg15TU,1099
71
- Podflow/remove/remove_file.py,sha256=R8Gr0d6bIAYKQ7YEfFl5_QJ_CcumTu_8XejP7xuRm2k,981
76
+ Podflow/remove/remove_file.py,sha256=ACO2iK8RAZKGJ08uABbzGwu5-B0RLklQ-EOOkSuPFiU,982
72
77
  Podflow/upload/__init__.py,sha256=9uOIL8vr_vP_XYrhfZ4IDZmfSGyCf0_MpLOc-KnbpSY,45
73
- Podflow/upload/get_upload_original.py,sha256=JLepP_0ROLexVNUV-Ji8r1kq81pACfJqdA4ewIgmujw,4194
78
+ Podflow/upload/add_upload.py,sha256=8kxHDLFa225WFze3oTPNtOWbcECF--bQXuALfsRJLoo,1432
79
+ Podflow/upload/get_upload_original.py,sha256=h2aoutZ-po40N8auRDbKvse14261Y5H7vHgfAN23vV0,4358
80
+ Podflow/upload/linked_client.py,sha256=mprI2ZEGQt9v8hRa6a3QxfFjkOWu-TxAq5dSeeptHrI,2299
81
+ Podflow/upload/linked_server.py,sha256=qbAzkxcy1M_JOCOx0WwZYWpTXYbS2OBcD4geLhEzE08,1041
82
+ Podflow/upload/update_upload.py,sha256=4B5HyWwfmc_4Z5ZS_Wt2VcL6sgQFvq3JEl0Qubh7TwE,3183
83
+ Podflow/upload/upload_print.py,sha256=KDMPxlWx7jqFVJuEwBFs5U6o3K5AbXBGxcACtXKDqdE,165
74
84
  Podflow/youtube/__init__.py,sha256=-bdMyuw-wxoz2miVkp284amS4Qg0k7VN0JPuGF-cXlM,46
75
- Podflow/youtube/build.py,sha256=010SwUpvtYrAOxZEWOqt70XByPpPrnZ0HQZOCD96Qhg,11171
85
+ Podflow/youtube/build.py,sha256=yy-rPBGs7H4aUjgLNyKz2HE-mjyGTs3b0FL5-KPHPM0,11650
76
86
  Podflow/youtube/get.py,sha256=dFLyiHttygqdJltwC29jD_v8wwoLynE5NUdow_0wERI,16970
77
87
  Podflow/youtube/login.py,sha256=DlS_ZG4g6CKWqS5ojE4UwFJSCSZDsXbeuDVgHtQAa4A,1380
78
- podflow-20250212.dist-info/METADATA,sha256=ikAvsNny5lZfu8dkgprsW2R3uLKCyHxpqNwlPp2F6yo,13801
79
- podflow-20250212.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
80
- podflow-20250212.dist-info/entry_points.txt,sha256=44nj8jJB7bo1JLNrKQZmwMGEA1OalrALJ0tF_G0yXLY,131
81
- podflow-20250212.dist-info/top_level.txt,sha256=KcvRCiz_DRWWc9i-PgpARvFB0J4CKmpZOZgPqOdG-Lk,8
82
- podflow-20250212.dist-info/RECORD,,
88
+ podflow-20250301.dist-info/METADATA,sha256=B9-vRpJMHUs2TDUY53PZ4PCI8F1Nml46ZjAedU5Jxq8,13801
89
+ podflow-20250301.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
90
+ podflow-20250301.dist-info/entry_points.txt,sha256=44nj8jJB7bo1JLNrKQZmwMGEA1OalrALJ0tF_G0yXLY,131
91
+ podflow-20250301.dist-info/top_level.txt,sha256=KcvRCiz_DRWWc9i-PgpARvFB0J4CKmpZOZgPqOdG-Lk,8
92
+ podflow-20250301.dist-info/RECORD,,