podflow 20250417__tar.gz → 20250417.2__tar.gz

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.
Files changed (110) hide show
  1. {podflow-20250417 → podflow-20250417.2}/PKG-INFO +1 -1
  2. {podflow-20250417 → podflow-20250417.2}/podflow/templates/index.html +78 -44
  3. {podflow-20250417 → podflow-20250417.2}/podflow.egg-info/PKG-INFO +1 -1
  4. {podflow-20250417 → podflow-20250417.2}/setup.py +1 -1
  5. {podflow-20250417 → podflow-20250417.2}/MANIFEST.in +0 -0
  6. {podflow-20250417 → podflow-20250417.2}/README.md +0 -0
  7. {podflow-20250417 → podflow-20250417.2}/podflow/__init__.py +0 -0
  8. {podflow-20250417 → podflow-20250417.2}/podflow/basic/__init__.py +0 -0
  9. {podflow-20250417 → podflow-20250417.2}/podflow/basic/file_save.py +0 -0
  10. {podflow-20250417 → podflow-20250417.2}/podflow/basic/folder_build.py +0 -0
  11. {podflow-20250417 → podflow-20250417.2}/podflow/basic/get_duration.py +0 -0
  12. {podflow-20250417 → podflow-20250417.2}/podflow/basic/get_file_list.py +0 -0
  13. {podflow-20250417 → podflow-20250417.2}/podflow/basic/get_html_dict.py +0 -0
  14. {podflow-20250417 → podflow-20250417.2}/podflow/basic/http_client.py +0 -0
  15. {podflow-20250417 → podflow-20250417.2}/podflow/basic/list_merge_tidy.py +0 -0
  16. {podflow-20250417 → podflow-20250417.2}/podflow/basic/qr_code.py +0 -0
  17. {podflow-20250417 → podflow-20250417.2}/podflow/basic/split_dict.py +0 -0
  18. {podflow-20250417 → podflow-20250417.2}/podflow/basic/time_format.py +0 -0
  19. {podflow-20250417 → podflow-20250417.2}/podflow/basic/time_print.py +0 -0
  20. {podflow-20250417 → podflow-20250417.2}/podflow/basic/time_stamp.py +0 -0
  21. {podflow-20250417 → podflow-20250417.2}/podflow/basic/vary_replace.py +0 -0
  22. {podflow-20250417 → podflow-20250417.2}/podflow/basic/write_log.py +0 -0
  23. {podflow-20250417 → podflow-20250417.2}/podflow/bilibili/__init__.py +0 -0
  24. {podflow-20250417 → podflow-20250417.2}/podflow/bilibili/build.py +0 -0
  25. {podflow-20250417 → podflow-20250417.2}/podflow/bilibili/get.py +0 -0
  26. {podflow-20250417 → podflow-20250417.2}/podflow/bilibili/login.py +0 -0
  27. {podflow-20250417 → podflow-20250417.2}/podflow/config/__init__.py +0 -0
  28. {podflow-20250417 → podflow-20250417.2}/podflow/config/build_original.py +0 -0
  29. {podflow-20250417 → podflow-20250417.2}/podflow/config/channge_icon.py +0 -0
  30. {podflow-20250417 → podflow-20250417.2}/podflow/config/correct_channelid.py +0 -0
  31. {podflow-20250417 → podflow-20250417.2}/podflow/config/correct_config.py +0 -0
  32. {podflow-20250417 → podflow-20250417.2}/podflow/config/get_channelid.py +0 -0
  33. {podflow-20250417 → podflow-20250417.2}/podflow/config/get_channelid_id.py +0 -0
  34. {podflow-20250417 → podflow-20250417.2}/podflow/config/get_config.py +0 -0
  35. {podflow-20250417 → podflow-20250417.2}/podflow/download/__init__.py +0 -0
  36. {podflow-20250417 → podflow-20250417.2}/podflow/download/convert_bytes.py +0 -0
  37. {podflow-20250417 → podflow-20250417.2}/podflow/download/delete_part.py +0 -0
  38. {podflow-20250417 → podflow-20250417.2}/podflow/download/dl_aideo_video.py +0 -0
  39. {podflow-20250417 → podflow-20250417.2}/podflow/download/show_progress.py +0 -0
  40. {podflow-20250417 → podflow-20250417.2}/podflow/download/wait_animation.py +0 -0
  41. {podflow-20250417 → podflow-20250417.2}/podflow/download/youtube_and_bilibili_download.py +0 -0
  42. {podflow-20250417 → podflow-20250417.2}/podflow/download_and_build.py +0 -0
  43. {podflow-20250417 → podflow-20250417.2}/podflow/ffmpeg_judge.py +0 -0
  44. {podflow-20250417 → podflow-20250417.2}/podflow/httpfs/__init__.py +0 -0
  45. {podflow-20250417 → podflow-20250417.2}/podflow/httpfs/app_bottle.py +0 -0
  46. {podflow-20250417 → podflow-20250417.2}/podflow/httpfs/browser.py +0 -0
  47. {podflow-20250417 → podflow-20250417.2}/podflow/httpfs/get_channelid.py +0 -0
  48. {podflow-20250417 → podflow-20250417.2}/podflow/httpfs/port_judge.py +0 -0
  49. {podflow-20250417 → podflow-20250417.2}/podflow/httpfs/progress_bar.py +0 -0
  50. {podflow-20250417 → podflow-20250417.2}/podflow/httpfs/to_html.py +0 -0
  51. {podflow-20250417 → podflow-20250417.2}/podflow/main.py +0 -0
  52. {podflow-20250417 → podflow-20250417.2}/podflow/main_podcast.py +0 -0
  53. {podflow-20250417 → podflow-20250417.2}/podflow/main_upload.py +0 -0
  54. {podflow-20250417 → podflow-20250417.2}/podflow/makeup/__init__.py +0 -0
  55. {podflow-20250417 → podflow-20250417.2}/podflow/makeup/del_makeup_format_fail.py +0 -0
  56. {podflow-20250417 → podflow-20250417.2}/podflow/makeup/make_up_file.py +0 -0
  57. {podflow-20250417 → podflow-20250417.2}/podflow/makeup/make_up_file_format_mod.py +0 -0
  58. {podflow-20250417 → podflow-20250417.2}/podflow/makeup/make_up_file_mod.py +0 -0
  59. {podflow-20250417 → podflow-20250417.2}/podflow/message/__init__.py +0 -0
  60. {podflow-20250417 → podflow-20250417.2}/podflow/message/backup_zip_save.py +0 -0
  61. {podflow-20250417 → podflow-20250417.2}/podflow/message/create_main_rss.py +0 -0
  62. {podflow-20250417 → podflow-20250417.2}/podflow/message/display_qrcode_and_url.py +0 -0
  63. {podflow-20250417 → podflow-20250417.2}/podflow/message/fail_message_initialize.py +0 -0
  64. {podflow-20250417 → podflow-20250417.2}/podflow/message/format_time.py +0 -0
  65. {podflow-20250417 → podflow-20250417.2}/podflow/message/get_media_name.py +0 -0
  66. {podflow-20250417 → podflow-20250417.2}/podflow/message/get_original_rss.py +0 -0
  67. {podflow-20250417 → podflow-20250417.2}/podflow/message/get_video_format.py +0 -0
  68. {podflow-20250417 → podflow-20250417.2}/podflow/message/get_video_format_multithread.py +0 -0
  69. {podflow-20250417 → podflow-20250417.2}/podflow/message/get_youtube_and_bilibili_video_format.py +0 -0
  70. {podflow-20250417 → podflow-20250417.2}/podflow/message/media_format.py +0 -0
  71. {podflow-20250417 → podflow-20250417.2}/podflow/message/optimize_download.py +0 -0
  72. {podflow-20250417 → podflow-20250417.2}/podflow/message/original_rss_fail_print.py +0 -0
  73. {podflow-20250417 → podflow-20250417.2}/podflow/message/rss_create_hash.py +0 -0
  74. {podflow-20250417 → podflow-20250417.2}/podflow/message/save_rss.py +0 -0
  75. {podflow-20250417 → podflow-20250417.2}/podflow/message/title_correction.py +0 -0
  76. {podflow-20250417 → podflow-20250417.2}/podflow/message/update_information_display.py +0 -0
  77. {podflow-20250417 → podflow-20250417.2}/podflow/message/update_youtube_bilibili_rss.py +0 -0
  78. {podflow-20250417 → podflow-20250417.2}/podflow/message/want_retry.py +0 -0
  79. {podflow-20250417 → podflow-20250417.2}/podflow/message/xml_item.py +0 -0
  80. {podflow-20250417 → podflow-20250417.2}/podflow/message/xml_original_item.py +0 -0
  81. {podflow-20250417 → podflow-20250417.2}/podflow/message/xml_rss.py +0 -0
  82. {podflow-20250417 → podflow-20250417.2}/podflow/netscape/__init__.py +0 -0
  83. {podflow-20250417 → podflow-20250417.2}/podflow/netscape/bulid_netscape.py +0 -0
  84. {podflow-20250417 → podflow-20250417.2}/podflow/netscape/get_cookie_dict.py +0 -0
  85. {podflow-20250417 → podflow-20250417.2}/podflow/parse_arguments.py +0 -0
  86. {podflow-20250417 → podflow-20250417.2}/podflow/remove/__init__.py +0 -0
  87. {podflow-20250417 → podflow-20250417.2}/podflow/remove/remove_dir.py +0 -0
  88. {podflow-20250417 → podflow-20250417.2}/podflow/remove/remove_file.py +0 -0
  89. {podflow-20250417 → podflow-20250417.2}/podflow/repair/__init__.py +0 -0
  90. {podflow-20250417 → podflow-20250417.2}/podflow/repair/reverse_log.py +0 -0
  91. {podflow-20250417 → podflow-20250417.2}/podflow/upload/__init__.py +0 -0
  92. {podflow-20250417 → podflow-20250417.2}/podflow/upload/add_upload.py +0 -0
  93. {podflow-20250417 → podflow-20250417.2}/podflow/upload/build_hash.py +0 -0
  94. {podflow-20250417 → podflow-20250417.2}/podflow/upload/get_upload_original.py +0 -0
  95. {podflow-20250417 → podflow-20250417.2}/podflow/upload/linked_client.py +0 -0
  96. {podflow-20250417 → podflow-20250417.2}/podflow/upload/linked_server.py +0 -0
  97. {podflow-20250417 → podflow-20250417.2}/podflow/upload/login.py +0 -0
  98. {podflow-20250417 → podflow-20250417.2}/podflow/upload/time_key.py +0 -0
  99. {podflow-20250417 → podflow-20250417.2}/podflow/upload/update_upload.py +0 -0
  100. {podflow-20250417 → podflow-20250417.2}/podflow/upload/upload_server.py +0 -0
  101. {podflow-20250417 → podflow-20250417.2}/podflow/youtube/__init__.py +0 -0
  102. {podflow-20250417 → podflow-20250417.2}/podflow/youtube/build.py +0 -0
  103. {podflow-20250417 → podflow-20250417.2}/podflow/youtube/get.py +0 -0
  104. {podflow-20250417 → podflow-20250417.2}/podflow/youtube/login.py +0 -0
  105. {podflow-20250417 → podflow-20250417.2}/podflow.egg-info/SOURCES.txt +0 -0
  106. {podflow-20250417 → podflow-20250417.2}/podflow.egg-info/dependency_links.txt +0 -0
  107. {podflow-20250417 → podflow-20250417.2}/podflow.egg-info/entry_points.txt +0 -0
  108. {podflow-20250417 → podflow-20250417.2}/podflow.egg-info/requires.txt +0 -0
  109. {podflow-20250417 → podflow-20250417.2}/podflow.egg-info/top_level.txt +0 -0
  110. {podflow-20250417 → podflow-20250417.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: podflow
3
- Version: 20250417
3
+ Version: 20250417.2
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
@@ -148,9 +148,6 @@
148
148
  width: 100%;
149
149
  max-width: 520px;
150
150
  padding: 2px;
151
- border: 1px solid var(--input-border);
152
- border-radius: 4px;
153
- background-color: var(--input-bg);
154
151
  color: var(--text-color);
155
152
  transition: background-color 0.3s, color 0.3s, border-color 0.3s;
156
153
  box-sizing: border-box;
@@ -163,16 +160,33 @@
163
160
  white-space: pre-wrap; /* 保留换行并允许自动换行 */
164
161
  }
165
162
  textarea {
166
- height: 350px;
163
+ height: 250px;
167
164
  font-size: 16px;
165
+ border: 1px solid var(--input-border);
166
+ border-radius: 4px;
167
+ background-color: var(--input-bg);
168
+ }
169
+ #messageDownload {
170
+ max-height: 200px;
171
+ height: auto;
172
+ font-size: 12px;
173
+ border: 0px;
174
+ border-radius: 4px;
175
+ background-color: var(--bg-color);
168
176
  }
169
177
  #messageArea {
170
- height: 350px;
178
+ height: 250px;
171
179
  font-size: 12px;
180
+ border: 1px solid var(--input-border);
181
+ border-radius: 4px;
182
+ background-color: var(--input-bg);
172
183
  }
173
184
  #messageHttp {
174
- height: 150px;
185
+ height: 100px;
175
186
  font-size: 12px;
187
+ border: 1px solid var(--input-border);
188
+ border-radius: 4px;
189
+ background-color: var(--input-bg);
176
190
  }
177
191
  .button-container {
178
192
  margin-top: 10px;
@@ -357,6 +371,8 @@
357
371
  <div class="status-text" id="progressStatus">准备中</div>
358
372
  <div class="percentage-text" id="progressPercentage">0.00%</div>
359
373
  </div>
374
+ <label id="downloadLabel">下载进度:</label>
375
+ <div class="common-area" id="messageDownload"></div>
360
376
  <label>构建服务:</label><br>
361
377
  <div class="common-area" id="messageArea"></div>
362
378
  <label>收发服务:</label><br>
@@ -365,28 +381,7 @@
365
381
  </section>
366
382
  </main>
367
383
  <script>
368
- (function() {
369
- // 生成单个二维码的函数
370
- function generateQRCodeForNode(container) {
371
- const rootStyles = getComputedStyle(document.documentElement);
372
- const textColor = rootStyles.getPropertyValue('--text-color');
373
- const inputBg = rootStyles.getPropertyValue('--input-bg');
374
- const url = container.dataset.url;
375
- container.innerHTML = '';
376
- if (url) {
377
- new QRCode(container, {
378
- text: url,
379
- width: 220,
380
- height: 220,
381
- colorDark: textColor,
382
- colorLight: inputBg,
383
- correctLevel: QRCode.CorrectLevel.L
384
- });
385
- } else {
386
- container.textContent = 'URL 未提供';
387
- }
388
- }
389
-
384
+ (function() {
390
385
  // 缓存常用节点
391
386
  const menu = document.getElementById('menu');
392
387
  const toggleMenuBtn = document.getElementById('toggleMenu');
@@ -405,9 +400,32 @@
405
400
  const progressPercentage = document.getElementById('progressPercentage');
406
401
  const messageArea = document.getElementById('messageArea');
407
402
  const messageHttp = document.getElementById('messageHttp');
403
+ const messageDownload = document.getElementById('messageDownload');
408
404
 
409
- let lastMessage = { podflow: [], http: [], schedule: [] };
405
+ let lastMessage = { podflow: [], http: [], schedule: [], download: [] };
410
406
  let pollingTimer = null;
407
+ let userScrolled = false;
408
+
409
+ // 生成单个二维码的函数
410
+ function generateQRCodeForNode(container) {
411
+ const rootStyles = getComputedStyle(document.documentElement);
412
+ const textColor = rootStyles.getPropertyValue('--text-color').trim();
413
+ const inputBg = rootStyles.getPropertyValue('--input-bg').trim();
414
+ const url = container.dataset.url;
415
+ container.innerHTML = '';
416
+ if (url) {
417
+ new QRCode(container, {
418
+ text: url,
419
+ width: 220,
420
+ height: 220,
421
+ colorDark: textColor,
422
+ colorLight: inputBg,
423
+ correctLevel: QRCode.CorrectLevel.L
424
+ });
425
+ } else {
426
+ container.textContent = 'URL 未提供';
427
+ }
428
+ }
411
429
 
412
430
  // 菜单切换函数
413
431
  function toggleMenu() {
@@ -430,15 +448,15 @@
430
448
  if (window.innerWidth <= 600 && !menu.classList.contains('hidden')) {
431
449
  toggleMenu();
432
450
  }
433
- pageId === 'pageMessage' ? startMessagePolling() : stopMessagePolling();
451
+ if (pageId === 'pageMessage') {
452
+ startMessage();
453
+ updateDownloadLabelVisibility();
454
+ } else {
455
+ stopMessage();
456
+ }
434
457
  }
435
458
  }
436
459
 
437
- // 初始化默认页面
438
- showPage('pageMessage');
439
-
440
- let userScrolled = false;
441
-
442
460
  // 监听滚动事件,检测用户是否手动滚动
443
461
  function onUserScroll(event) {
444
462
  const element = event.target;
@@ -446,10 +464,7 @@
446
464
  const nearBottom = element.scrollHeight - element.scrollTop <= element.clientHeight + 10;
447
465
  userScrolled = !nearBottom;
448
466
  }
449
-
450
- messageArea.addEventListener('scroll', onUserScroll);
451
- messageHttp.addEventListener('scroll', onUserScroll);
452
-
467
+
453
468
  // 轮询消息更新,更新 messageArea 与 messageHttp
454
469
  function getMessages() {
455
470
  fetch('message')
@@ -565,21 +580,40 @@
565
580
  }
566
581
  }
567
582
 
583
+ // 判断是否隐藏下载进度
584
+ function updateDownloadLabelVisibility() {
585
+ const messageDownload = document.getElementById('messageDownload');
586
+ const downloadLabel = document.getElementById('downloadLabel');
587
+ if (messageDownload.textContent.trim() === '') {
588
+ // 没有内容,隐藏label
589
+ downloadLabel.style.display = 'none';
590
+ } else {
591
+ // 有内容,显示label
592
+ downloadLabel.style.display = '';
593
+ }
594
+ }
595
+
568
596
  // 启动消息轮询
569
- function startMessagePolling() {
597
+ function startMessage() {
570
598
  getMessages();
571
599
  pollingTimer = setInterval(getMessages, 250);
572
600
  }
573
601
 
574
602
  // 停止消息轮询
575
- function stopMessagePolling() {
603
+ function stopMessage() {
576
604
  if (pollingTimer !== null) {
577
605
  clearInterval(pollingTimer);
578
606
  pollingTimer = null;
579
607
  }
580
608
  }
581
609
 
582
- // startMessagePolling();
610
+ // 滚动事件监听器
611
+ messageArea.addEventListener('scroll', onUserScroll);
612
+ messageHttp.addEventListener('scroll', onUserScroll);
613
+ messageDownload.addEventListener('scroll', onUserScroll);
614
+
615
+ // 初始化默认页面
616
+ showPage('pageMessage');
583
617
 
584
618
  // 表单异步提交(获取 Channel-ID)
585
619
  inputForm && inputForm.addEventListener('submit', function(event) {
@@ -657,7 +691,7 @@
657
691
 
658
692
  // 菜单切换按钮事件绑定
659
693
  toggleMenuBtn.addEventListener('click', toggleMenu);
660
-
694
+
661
695
  // 针对手机端,初始化时隐藏菜单
662
696
  if (window.innerWidth <= 600) {
663
697
  menu.classList.add('hidden');
@@ -665,6 +699,6 @@
665
699
  toggleMenuBtn.textContent = '❯';
666
700
  }
667
701
  })();
668
- </script>
702
+ </script>
669
703
  </body>
670
704
  </html>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: podflow
3
- Version: 20250417
3
+ Version: 20250417.2
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
@@ -5,7 +5,7 @@ from setuptools import setup, find_packages
5
5
 
6
6
  setup(
7
7
  name="podflow",
8
- version="20250417",
8
+ version="20250417.2",
9
9
  author="gruel_zxz",
10
10
  author_email="zhuxizhouzxz@gmail.com",
11
11
  description="A podcast server that includes YouTube and BiliBili",
File without changes
File without changes
File without changes
File without changes