podflow 20250317__tar.gz → 20250318__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 (102) hide show
  1. {podflow-20250317 → podflow-20250318}/PKG-INFO +1 -1
  2. {podflow-20250317 → podflow-20250318}/Podflow/httpfs/app_bottle.py +0 -1
  3. {podflow-20250317 → podflow-20250318}/Podflow/main_podcast.py +10 -2
  4. {podflow-20250317 → podflow-20250318}/Podflow/upload/linked_client.py +1 -4
  5. {podflow-20250317 → podflow-20250318}/Podflow/upload/linked_server.py +3 -2
  6. podflow-20250318/Podflow/upload/login.py +119 -0
  7. {podflow-20250317 → podflow-20250318}/podflow.egg-info/PKG-INFO +1 -1
  8. {podflow-20250317 → podflow-20250318}/setup.py +1 -1
  9. podflow-20250317/Podflow/upload/login.py +0 -28
  10. {podflow-20250317 → podflow-20250318}/Podflow/__init__.py +0 -0
  11. {podflow-20250317 → podflow-20250318}/Podflow/basic/__init__.py +0 -0
  12. {podflow-20250317 → podflow-20250318}/Podflow/basic/file_save.py +0 -0
  13. {podflow-20250317 → podflow-20250318}/Podflow/basic/folder_build.py +0 -0
  14. {podflow-20250317 → podflow-20250318}/Podflow/basic/get_duration.py +0 -0
  15. {podflow-20250317 → podflow-20250318}/Podflow/basic/get_file_list.py +0 -0
  16. {podflow-20250317 → podflow-20250318}/Podflow/basic/get_html_dict.py +0 -0
  17. {podflow-20250317 → podflow-20250318}/Podflow/basic/http_client.py +0 -0
  18. {podflow-20250317 → podflow-20250318}/Podflow/basic/list_merge_tidy.py +0 -0
  19. {podflow-20250317 → podflow-20250318}/Podflow/basic/qr_code.py +0 -0
  20. {podflow-20250317 → podflow-20250318}/Podflow/basic/split_dict.py +0 -0
  21. {podflow-20250317 → podflow-20250318}/Podflow/basic/time_format.py +0 -0
  22. {podflow-20250317 → podflow-20250318}/Podflow/basic/time_print.py +0 -0
  23. {podflow-20250317 → podflow-20250318}/Podflow/basic/time_stamp.py +0 -0
  24. {podflow-20250317 → podflow-20250318}/Podflow/basic/vary_replace.py +0 -0
  25. {podflow-20250317 → podflow-20250318}/Podflow/basic/write_log.py +0 -0
  26. {podflow-20250317 → podflow-20250318}/Podflow/bilibili/__init__.py +0 -0
  27. {podflow-20250317 → podflow-20250318}/Podflow/bilibili/build.py +0 -0
  28. {podflow-20250317 → podflow-20250318}/Podflow/bilibili/get.py +0 -0
  29. {podflow-20250317 → podflow-20250318}/Podflow/bilibili/login.py +0 -0
  30. {podflow-20250317 → podflow-20250318}/Podflow/config/__init__.py +0 -0
  31. {podflow-20250317 → podflow-20250318}/Podflow/config/build_original.py +0 -0
  32. {podflow-20250317 → podflow-20250318}/Podflow/config/channge_icon.py +0 -0
  33. {podflow-20250317 → podflow-20250318}/Podflow/config/correct_channelid.py +0 -0
  34. {podflow-20250317 → podflow-20250318}/Podflow/config/correct_config.py +0 -0
  35. {podflow-20250317 → podflow-20250318}/Podflow/config/get_channelid.py +0 -0
  36. {podflow-20250317 → podflow-20250318}/Podflow/config/get_channelid_id.py +0 -0
  37. {podflow-20250317 → podflow-20250318}/Podflow/config/get_config.py +0 -0
  38. {podflow-20250317 → podflow-20250318}/Podflow/download/__init__.py +0 -0
  39. {podflow-20250317 → podflow-20250318}/Podflow/download/convert_bytes.py +0 -0
  40. {podflow-20250317 → podflow-20250318}/Podflow/download/delete_part.py +0 -0
  41. {podflow-20250317 → podflow-20250318}/Podflow/download/dl_aideo_video.py +0 -0
  42. {podflow-20250317 → podflow-20250318}/Podflow/download/show_progress.py +0 -0
  43. {podflow-20250317 → podflow-20250318}/Podflow/download/wait_animation.py +0 -0
  44. {podflow-20250317 → podflow-20250318}/Podflow/download/youtube_and_bilibili_download.py +0 -0
  45. {podflow-20250317 → podflow-20250318}/Podflow/download_and_build.py +0 -0
  46. {podflow-20250317 → podflow-20250318}/Podflow/ffmpeg_judge.py +0 -0
  47. {podflow-20250317 → podflow-20250318}/Podflow/httpfs/__init__.py +0 -0
  48. {podflow-20250317 → podflow-20250318}/Podflow/httpfs/port_judge.py +0 -0
  49. {podflow-20250317 → podflow-20250318}/Podflow/main.py +0 -0
  50. {podflow-20250317 → podflow-20250318}/Podflow/main_upload.py +0 -0
  51. {podflow-20250317 → podflow-20250318}/Podflow/makeup/__init__.py +0 -0
  52. {podflow-20250317 → podflow-20250318}/Podflow/makeup/del_makeup_format_fail.py +0 -0
  53. {podflow-20250317 → podflow-20250318}/Podflow/makeup/make_up_file.py +0 -0
  54. {podflow-20250317 → podflow-20250318}/Podflow/makeup/make_up_file_format_mod.py +0 -0
  55. {podflow-20250317 → podflow-20250318}/Podflow/makeup/make_up_file_mod.py +0 -0
  56. {podflow-20250317 → podflow-20250318}/Podflow/message/__init__.py +0 -0
  57. {podflow-20250317 → podflow-20250318}/Podflow/message/backup_zip_save.py +0 -0
  58. {podflow-20250317 → podflow-20250318}/Podflow/message/create_main_rss.py +0 -0
  59. {podflow-20250317 → podflow-20250318}/Podflow/message/display_qrcode_and_url.py +0 -0
  60. {podflow-20250317 → podflow-20250318}/Podflow/message/fail_message_initialize.py +0 -0
  61. {podflow-20250317 → podflow-20250318}/Podflow/message/format_time.py +0 -0
  62. {podflow-20250317 → podflow-20250318}/Podflow/message/get_media_name.py +0 -0
  63. {podflow-20250317 → podflow-20250318}/Podflow/message/get_original_rss.py +0 -0
  64. {podflow-20250317 → podflow-20250318}/Podflow/message/get_video_format.py +0 -0
  65. {podflow-20250317 → podflow-20250318}/Podflow/message/get_video_format_multithread.py +0 -0
  66. {podflow-20250317 → podflow-20250318}/Podflow/message/get_youtube_and_bilibili_video_format.py +0 -0
  67. {podflow-20250317 → podflow-20250318}/Podflow/message/media_format.py +0 -0
  68. {podflow-20250317 → podflow-20250318}/Podflow/message/original_rss_fail_print.py +0 -0
  69. {podflow-20250317 → podflow-20250318}/Podflow/message/rss_create_hash.py +0 -0
  70. {podflow-20250317 → podflow-20250318}/Podflow/message/save_rss.py +0 -0
  71. {podflow-20250317 → podflow-20250318}/Podflow/message/title_correction.py +0 -0
  72. {podflow-20250317 → podflow-20250318}/Podflow/message/update_information_display.py +0 -0
  73. {podflow-20250317 → podflow-20250318}/Podflow/message/update_youtube_bilibili_rss.py +0 -0
  74. {podflow-20250317 → podflow-20250318}/Podflow/message/want_retry.py +0 -0
  75. {podflow-20250317 → podflow-20250318}/Podflow/message/xml_item.py +0 -0
  76. {podflow-20250317 → podflow-20250318}/Podflow/message/xml_original_item.py +0 -0
  77. {podflow-20250317 → podflow-20250318}/Podflow/message/xml_rss.py +0 -0
  78. {podflow-20250317 → podflow-20250318}/Podflow/netscape/__init__.py +0 -0
  79. {podflow-20250317 → podflow-20250318}/Podflow/netscape/bulid_netscape.py +0 -0
  80. {podflow-20250317 → podflow-20250318}/Podflow/netscape/get_cookie_dict.py +0 -0
  81. {podflow-20250317 → podflow-20250318}/Podflow/parse_arguments.py +0 -0
  82. {podflow-20250317 → podflow-20250318}/Podflow/remove/__init__.py +0 -0
  83. {podflow-20250317 → podflow-20250318}/Podflow/remove/remove_dir.py +0 -0
  84. {podflow-20250317 → podflow-20250318}/Podflow/remove/remove_file.py +0 -0
  85. {podflow-20250317 → podflow-20250318}/Podflow/repair/__init__.py +0 -0
  86. {podflow-20250317 → podflow-20250318}/Podflow/repair/reverse_log.py +0 -0
  87. {podflow-20250317 → podflow-20250318}/Podflow/upload/__init__.py +0 -0
  88. {podflow-20250317 → podflow-20250318}/Podflow/upload/add_upload.py +0 -0
  89. {podflow-20250317 → podflow-20250318}/Podflow/upload/get_upload_original.py +0 -0
  90. {podflow-20250317 → podflow-20250318}/Podflow/upload/time_key.py +0 -0
  91. {podflow-20250317 → podflow-20250318}/Podflow/upload/update_upload.py +0 -0
  92. {podflow-20250317 → podflow-20250318}/Podflow/youtube/__init__.py +0 -0
  93. {podflow-20250317 → podflow-20250318}/Podflow/youtube/build.py +0 -0
  94. {podflow-20250317 → podflow-20250318}/Podflow/youtube/get.py +0 -0
  95. {podflow-20250317 → podflow-20250318}/Podflow/youtube/login.py +0 -0
  96. {podflow-20250317 → podflow-20250318}/README.md +0 -0
  97. {podflow-20250317 → podflow-20250318}/podflow.egg-info/SOURCES.txt +0 -0
  98. {podflow-20250317 → podflow-20250318}/podflow.egg-info/dependency_links.txt +0 -0
  99. {podflow-20250317 → podflow-20250318}/podflow.egg-info/entry_points.txt +0 -0
  100. {podflow-20250317 → podflow-20250318}/podflow.egg-info/requires.txt +0 -0
  101. {podflow-20250317 → podflow-20250318}/podflow.egg-info/top_level.txt +0 -0
  102. {podflow-20250317 → podflow-20250318}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: podflow
3
- Version: 20250317
3
+ Version: 20250318
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
@@ -247,7 +247,6 @@ class bottle_app:
247
247
  upload_data = gVar.upload_data
248
248
  username = request.query.get("username")
249
249
  password = request.query.get("password")
250
-
251
250
  if username in upload_data:
252
251
  if upload_data[username] == password:
253
252
  self.print_out("login", 200)
@@ -53,6 +53,7 @@ from Podflow.remove.remove_dir import remove_dir
53
53
  from Podflow.youtube.build import print_fail_youtube
54
54
 
55
55
  # 长期媒体进行上传模块
56
+ from Podflow.upload.login import login_upload
56
57
  from Podflow.upload.add_upload import add_upload
57
58
  from Podflow.upload.update_upload import update_upload
58
59
  from Podflow.upload.linked_client import connect_upload_server
@@ -116,10 +117,17 @@ def main_podcast():
116
117
  gVar.xmls_original, gVar.hash_rss_original, gVar.xmls_original_fail = (
117
118
  get_original_rss()
118
119
  )
120
+ # 连接上传服务器
121
+ upload_url = connect_upload_server()
122
+ # 登陆上传服务器
123
+ if upload_url:
124
+ upload_json = login_upload(upload_url)
125
+ if upload_json:
126
+ gVar.config["upload"] = False
127
+ else:
128
+ gVar.config["upload"] = False
119
129
  # 初始化原始上传信息
120
130
  get_upload_original()
121
- # 连接上传服务器
122
- connect_upload_server()
123
131
  # 更新Youtube和哔哩哔哩频道xml
124
132
  update_youtube_bilibili_rss()
125
133
  # 判断是否有更新内容
@@ -86,7 +86,4 @@ def connect_upload_server():
86
86
  # 选择第一个找到的服务器
87
87
  server_ip, server_port = servers[0]
88
88
  time_print(f"正在连接到{server_ip}:{server_port}...", True)
89
- return {
90
- "ip": server_ip,
91
- "port": server_port
92
- }
89
+ return f"http://{server_ip}:{server_port}"
@@ -2,6 +2,7 @@
2
2
  # coding: utf-8
3
3
 
4
4
  import socket
5
+ from Podflow.basic.write_log import write_log
5
6
  from Podflow.basic.time_print import time_print
6
7
  from Podflow.httpfs.port_judge import port_judge
7
8
  from Podflow.upload.time_key import check_time_key
@@ -45,11 +46,11 @@ def handle_discovery(broadcast_port, service_port):
45
46
  # 检查消息是否包含时间关键字
46
47
  if check_time_key(data ,"PODFLOW_DISCOVER_SERVER_REQUEST"):
47
48
  # 打印接收到的发现请求成功
48
- time_print(f"来自{addr[0]}的发现请求\033[32m成功\033[0m")
49
+ write_log(f"来自{addr[0]}的发现请求\033[32m成功\033[0m")
49
50
  # 构造响应消息
50
51
  response = f"PODFLOW_SERVER_INFO|{service_port}".encode()
51
52
  # 发送响应消息
52
53
  sock.sendto(response, addr)
53
54
  else:
54
55
  # 打印接收到的发现请求失败
55
- time_print(f"来自{addr[0]}的发现请求\033[31m失败\033[0m")
56
+ write_log(f"来自{addr[0]}的发现请求\033[31m失败\033[0m")
@@ -0,0 +1,119 @@
1
+ # Podflow/upload/login.py
2
+ # coding: utf-8
3
+
4
+ import os
5
+ import json
6
+ import uuid
7
+ import hashlib
8
+ from Podflow import gVar
9
+ from Podflow.upload.time_key import time_key
10
+ from Podflow.basic.file_save import file_save
11
+ from Podflow.basic.write_log import write_log
12
+ from Podflow.basic.time_print import time_print
13
+ from Podflow.basic.http_client import http_client
14
+
15
+
16
+ def get_login():
17
+ try:
18
+ with open("channel_data/upload_login.json", "r") as file:
19
+ upload_data = file.read()
20
+ gVar.upload_data = json.loads(upload_data)
21
+ except Exception:
22
+ file_save(gVar.upload_data, "upload_login.json", "channel_data")
23
+
24
+
25
+ def create():
26
+ new_username = str(uuid.uuid4())
27
+ while new_username in gVar.upload_data:
28
+ new_username = str(uuid.uuid4())
29
+ new_password = hashlib.sha256(os.urandom(64)).hexdigest()
30
+ gVar.upload_data[new_username] = new_password
31
+ file_save(gVar.upload_data, "upload_login.json", "channel_data")
32
+ return new_username, new_password
33
+
34
+
35
+ def get_account(url):
36
+ url = f"{url}/newuser"
37
+ token = time_key(
38
+ "We need to generate an account password for uploading non one-time items that need to be saved."
39
+ )
40
+ data = {"token": token}
41
+ if response := http_client(
42
+ url=url,
43
+ name="获取上传服务账号密码",
44
+ data=data,
45
+ ):
46
+ return response.json()
47
+
48
+
49
+ def login(url, username, password):
50
+ url = f"{url}/login"
51
+ data = {
52
+ "username": username,
53
+ "password": password,
54
+ }
55
+ if response := http_client(
56
+ url=url,
57
+ name="登陆上传服务",
58
+ data=data,
59
+ ):
60
+ return response.json()
61
+
62
+
63
+ def login_upload(url):
64
+ try:
65
+ # 尝试打开并读取 JSON 文件
66
+ with open("channel_data/upload_data.json", "r") as file:
67
+ upload_json = file.read()
68
+ upload_json = json.loads(
69
+ upload_json
70
+ )
71
+ except Exception:
72
+ upload_json = {}
73
+ if "username" not in upload_json:
74
+ write_log("上传服务账号密码不存在")
75
+ time_print("获取上传服务账号密码...")
76
+ account_data = get_account(url)
77
+ if "code" in account_data:
78
+ if account_data["code"] == 0:
79
+ write_log("账号密码获取\033[32m成功\033[0m")
80
+ username = account_data["data"]["username"]
81
+ password = account_data["data"]["password"]
82
+ upload_json = {
83
+ "username": username,
84
+ "password": password,
85
+ }
86
+ file_save(upload_json, "upload_data.json", "channel_data")
87
+ return upload_json
88
+ elif account_data["code"] == -1:
89
+ write_log("账号密码获取\033[31m失败\033[0m: 认证失败")
90
+ return
91
+ else:
92
+ write_log("账号密码获取\033[31m失败\033[0m")
93
+ return
94
+ else:
95
+ write_log("账号密码获取\033[31m失败\033[0m: 无法连接")
96
+ return
97
+ else:
98
+ username = upload_json["username"]
99
+ password = upload_json.get("password", "")
100
+ login_data = login(url, username, password)
101
+ if "code" in login_data:
102
+ if login_data["code"] == 0:
103
+ time_print("登陆上传服务\033[32m成功\033[0m")
104
+ return upload_json
105
+ elif login_data["code"] == -1:
106
+ write_log("登陆上传服务\033[31m失败\033[0m: 认证失败")
107
+ return
108
+ elif login_data["code"] == -2:
109
+ write_log("登陆上传服务\033[31m失败\033[0m: 账号错误")
110
+ return
111
+ elif login_data["code"] == -3:
112
+ write_log("登陆上传服务\033[31m失败\033[0m: 密码错误")
113
+ return
114
+ else:
115
+ write_log("登陆上传服务\033[31m失败\033[0m")
116
+ return
117
+ else:
118
+ write_log("登陆上传服务\033[31m失败\033[0m: 无法连接")
119
+ return
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: podflow
3
- Version: 20250317
3
+ Version: 20250318
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="20250317",
8
+ version="20250318",
9
9
  author="gruel_zxz",
10
10
  author_email="zhuxizhouzxz@gmail.com",
11
11
  description="A podcast server that includes YouTube and BiliBili",
@@ -1,28 +0,0 @@
1
- # Podflow/upload/login.py
2
- # coding: utf-8
3
-
4
- import os
5
- import json
6
- import uuid
7
- import hashlib
8
- from Podflow import gVar
9
- from Podflow.basic.file_save import file_save
10
-
11
-
12
- def get_login():
13
- try:
14
- with open("channel_data/upload_login.json", "r") as file:
15
- upload_data = file.read()
16
- gVar.upload_data = json.loads(upload_data)
17
- except Exception:
18
- file_save(gVar.upload_data, "upload_login.json", "channel_data")
19
-
20
-
21
- def create():
22
- new_username = str(uuid.uuid4())
23
- while new_username in gVar.upload_data:
24
- new_username = str(uuid.uuid4())
25
- new_password = hashlib.sha256(os.urandom(64)).hexdigest()
26
- gVar.upload_data[new_username] = new_password
27
- file_save(gVar.upload_data, "upload_login.json", "channel_data")
28
- return new_username, new_password
File without changes
File without changes
File without changes