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.
- {podflow-20250417 → podflow-20250417.2}/PKG-INFO +1 -1
- {podflow-20250417 → podflow-20250417.2}/podflow/templates/index.html +78 -44
- {podflow-20250417 → podflow-20250417.2}/podflow.egg-info/PKG-INFO +1 -1
- {podflow-20250417 → podflow-20250417.2}/setup.py +1 -1
- {podflow-20250417 → podflow-20250417.2}/MANIFEST.in +0 -0
- {podflow-20250417 → podflow-20250417.2}/README.md +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/__init__.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/basic/__init__.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/basic/file_save.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/basic/folder_build.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/basic/get_duration.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/basic/get_file_list.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/basic/get_html_dict.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/basic/http_client.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/basic/list_merge_tidy.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/basic/qr_code.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/basic/split_dict.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/basic/time_format.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/basic/time_print.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/basic/time_stamp.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/basic/vary_replace.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/basic/write_log.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/bilibili/__init__.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/bilibili/build.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/bilibili/get.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/bilibili/login.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/config/__init__.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/config/build_original.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/config/channge_icon.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/config/correct_channelid.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/config/correct_config.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/config/get_channelid.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/config/get_channelid_id.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/config/get_config.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/download/__init__.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/download/convert_bytes.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/download/delete_part.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/download/dl_aideo_video.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/download/show_progress.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/download/wait_animation.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/download/youtube_and_bilibili_download.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/download_and_build.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/ffmpeg_judge.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/httpfs/__init__.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/httpfs/app_bottle.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/httpfs/browser.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/httpfs/get_channelid.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/httpfs/port_judge.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/httpfs/progress_bar.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/httpfs/to_html.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/main.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/main_podcast.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/main_upload.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/makeup/__init__.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/makeup/del_makeup_format_fail.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/makeup/make_up_file.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/makeup/make_up_file_format_mod.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/makeup/make_up_file_mod.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/message/__init__.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/message/backup_zip_save.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/message/create_main_rss.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/message/display_qrcode_and_url.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/message/fail_message_initialize.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/message/format_time.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/message/get_media_name.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/message/get_original_rss.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/message/get_video_format.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/message/get_video_format_multithread.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/message/get_youtube_and_bilibili_video_format.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/message/media_format.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/message/optimize_download.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/message/original_rss_fail_print.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/message/rss_create_hash.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/message/save_rss.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/message/title_correction.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/message/update_information_display.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/message/update_youtube_bilibili_rss.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/message/want_retry.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/message/xml_item.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/message/xml_original_item.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/message/xml_rss.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/netscape/__init__.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/netscape/bulid_netscape.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/netscape/get_cookie_dict.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/parse_arguments.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/remove/__init__.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/remove/remove_dir.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/remove/remove_file.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/repair/__init__.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/repair/reverse_log.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/upload/__init__.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/upload/add_upload.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/upload/build_hash.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/upload/get_upload_original.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/upload/linked_client.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/upload/linked_server.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/upload/login.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/upload/time_key.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/upload/update_upload.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/upload/upload_server.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/youtube/__init__.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/youtube/build.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/youtube/get.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow/youtube/login.py +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow.egg-info/SOURCES.txt +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow.egg-info/dependency_links.txt +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow.egg-info/entry_points.txt +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow.egg-info/requires.txt +0 -0
- {podflow-20250417 → podflow-20250417.2}/podflow.egg-info/top_level.txt +0 -0
- {podflow-20250417 → podflow-20250417.2}/setup.cfg +0 -0
@@ -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:
|
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:
|
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:
|
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'
|
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
|
597
|
+
function startMessage() {
|
570
598
|
getMessages();
|
571
599
|
pollingTimer = setInterval(getMessages, 250);
|
572
600
|
}
|
573
601
|
|
574
602
|
// 停止消息轮询
|
575
|
-
function
|
603
|
+
function stopMessage() {
|
576
604
|
if (pollingTimer !== null) {
|
577
605
|
clearInterval(pollingTimer);
|
578
606
|
pollingTimer = null;
|
579
607
|
}
|
580
608
|
}
|
581
609
|
|
582
|
-
|
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>
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{podflow-20250417 → podflow-20250417.2}/podflow/message/get_youtube_and_bilibili_video_format.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|