|
|
@ -126,18 +126,236 @@ class FileTransferApp: |
|
|
) |
|
|
) |
|
|
receive_button.pack() |
|
|
receive_button.pack() |
|
|
|
|
|
|
|
|
|
|
|
# 网盘加速卡片 |
|
|
|
|
|
cloud_card = tk.Frame(card_frame, bg='#f8f9fa', relief='raised', bd=1, padx=20, pady=20) |
|
|
|
|
|
cloud_card.pack(side='left', padx=15) |
|
|
|
|
|
|
|
|
|
|
|
cloud_icon = tk.Label(cloud_card, text="⚡", font=("Arial", 24), bg='#f8f9fa') |
|
|
|
|
|
cloud_icon.pack() |
|
|
|
|
|
|
|
|
|
|
|
cloud_title = tk.Label(cloud_card, text="网盘加速", font=("Microsoft YaHei", 14, "bold"), fg="#2c3e50", bg='#f8f9fa') |
|
|
|
|
|
cloud_title.pack(pady=(10, 5)) |
|
|
|
|
|
|
|
|
|
|
|
cloud_desc = tk.Label(cloud_card, text="加速您的网盘访问", font=("Microsoft YaHei", 9), fg="#7f8c8d", bg='#f8f9fa') |
|
|
|
|
|
cloud_desc.pack(pady=(0, 15)) |
|
|
|
|
|
|
|
|
|
|
|
cloud_button = tk.Button( |
|
|
|
|
|
cloud_card, |
|
|
|
|
|
text="加速服务", |
|
|
|
|
|
command=self.show_cloud_accel_screen, |
|
|
|
|
|
font=("Microsoft YaHei", 11, "bold"), |
|
|
|
|
|
bg="#f39c12", |
|
|
|
|
|
fg="white", |
|
|
|
|
|
width=12, |
|
|
|
|
|
height=2, |
|
|
|
|
|
relief='flat', |
|
|
|
|
|
cursor='hand2' |
|
|
|
|
|
) |
|
|
|
|
|
cloud_button.pack() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 底部信息 |
|
|
# 底部信息 |
|
|
footer_frame = tk.Frame(self.main_frame, bg='white') |
|
|
footer_frame = tk.Frame(self.main_frame, bg='white') |
|
|
footer_frame.pack(side='bottom', pady=20) |
|
|
footer_frame.pack(side='bottom', pady=20) |
|
|
|
|
|
|
|
|
footer_label = tk.Label( |
|
|
footer_label = tk.Label( |
|
|
footer_frame, |
|
|
footer_frame, |
|
|
text="© 2024 蜗牛创造 - 让文件传输更简单", |
|
|
text="© 2025 蜗牛创造 - 让文件传输更简单", |
|
|
font=("Microsoft YaHei", 9), |
|
|
font=("Microsoft YaHei", 9), |
|
|
fg="#bdc3c7", |
|
|
fg="#bdc3c7", |
|
|
bg='white' |
|
|
bg='white' |
|
|
) |
|
|
) |
|
|
footer_label.pack() |
|
|
footer_label.pack() |
|
|
|
|
|
def show_cloud_accel_screen(self): |
|
|
|
|
|
"""显示网盘加速界面""" |
|
|
|
|
|
self.clear_frame() |
|
|
|
|
|
|
|
|
|
|
|
# 标题栏 |
|
|
|
|
|
title_frame = tk.Frame(self.main_frame, bg='white') |
|
|
|
|
|
title_frame.pack(fill='x', pady=(10, 20)) |
|
|
|
|
|
|
|
|
|
|
|
back_button = self.create_styled_button(title_frame, "← 返回", self.show_welcome_screen, "#95a5a6", 8) |
|
|
|
|
|
back_button.pack(side='left') |
|
|
|
|
|
|
|
|
|
|
|
title_label = tk.Label( |
|
|
|
|
|
title_frame, |
|
|
|
|
|
text="⚡ 网盘加速服务", |
|
|
|
|
|
font=("Microsoft YaHei", 16, "bold"), |
|
|
|
|
|
fg="#2c3e50", |
|
|
|
|
|
bg='white' |
|
|
|
|
|
) |
|
|
|
|
|
title_label.pack(side='left', padx=10) |
|
|
|
|
|
|
|
|
|
|
|
# 说明文本 |
|
|
|
|
|
desc_frame = tk.Frame(self.main_frame, bg='white') |
|
|
|
|
|
desc_frame.pack(fill='x', pady=(0, 20)) |
|
|
|
|
|
|
|
|
|
|
|
desc_text = """功能说明: |
|
|
|
|
|
• 为KodCloud等网盘提供加速服务 |
|
|
|
|
|
• 使用XTCP协议建立高速通道 |
|
|
|
|
|
• 本地端口: 8089 |
|
|
|
|
|
• 服务器: 127.0.0.1""" |
|
|
|
|
|
|
|
|
|
|
|
desc_label = tk.Label( |
|
|
|
|
|
desc_frame, |
|
|
|
|
|
text=desc_text, |
|
|
|
|
|
font=("Microsoft YaHei", 10), |
|
|
|
|
|
fg="#7f8c8d", |
|
|
|
|
|
bg='white', |
|
|
|
|
|
justify='left' |
|
|
|
|
|
) |
|
|
|
|
|
desc_label.pack(anchor='w') |
|
|
|
|
|
|
|
|
|
|
|
# 按钮组 |
|
|
|
|
|
button_frame = tk.Frame(self.main_frame, bg='white') |
|
|
|
|
|
button_frame.pack(pady=20) |
|
|
|
|
|
|
|
|
|
|
|
self.cloud_start_button = self.create_styled_button(button_frame, "🚀 启动加速", self.start_cloud_accel, "#27ae60", 15) |
|
|
|
|
|
self.cloud_start_button.pack(side='left', padx=10) |
|
|
|
|
|
|
|
|
|
|
|
self.cloud_stop_button = self.create_styled_button(button_frame, "⏹️ 停止加速", self.stop_cloud_accel, "#e74c3c", 15) |
|
|
|
|
|
self.cloud_stop_button.pack(side='left', padx=10) |
|
|
|
|
|
self.cloud_stop_button.config(state='disabled') |
|
|
|
|
|
|
|
|
|
|
|
# 状态显示 |
|
|
|
|
|
status_frame = tk.Frame(self.main_frame, bg='white') |
|
|
|
|
|
status_frame.pack(fill='x', pady=5) |
|
|
|
|
|
|
|
|
|
|
|
self.cloud_status_label = tk.Label( |
|
|
|
|
|
status_frame, |
|
|
|
|
|
text="📊 状态: 等待启动加速服务", |
|
|
|
|
|
font=("Microsoft YaHei", 10), |
|
|
|
|
|
fg="#7f8c8d", |
|
|
|
|
|
bg='white' |
|
|
|
|
|
) |
|
|
|
|
|
self.cloud_status_label.pack() |
|
|
|
|
|
|
|
|
|
|
|
# 输出区域 |
|
|
|
|
|
output_card = tk.Frame(self.main_frame, bg='#f8f9fa', relief='raised', bd=1, padx=15, pady=15) |
|
|
|
|
|
output_card.pack(fill='both', expand=True, pady=(10, 0)) |
|
|
|
|
|
|
|
|
|
|
|
output_label = tk.Label(output_card, text="📋 加速服务日志:", font=("Microsoft YaHei", 10), bg='#f8f9fa') |
|
|
|
|
|
output_label.pack(anchor='w') |
|
|
|
|
|
|
|
|
|
|
|
self.cloud_output = scrolledtext.ScrolledText( |
|
|
|
|
|
output_card, |
|
|
|
|
|
height=12, |
|
|
|
|
|
width=80, |
|
|
|
|
|
font=("Consolas", 9), |
|
|
|
|
|
state='disabled', |
|
|
|
|
|
relief='solid', |
|
|
|
|
|
bd=1, |
|
|
|
|
|
bg='#ffffff' |
|
|
|
|
|
) |
|
|
|
|
|
self.cloud_output.pack(fill='both', expand=True, pady=(5, 0)) |
|
|
|
|
|
|
|
|
|
|
|
# 初始信息 |
|
|
|
|
|
self.append_cloud_output("网盘加速服务就绪\n") |
|
|
|
|
|
self.append_cloud_output("点击「启动加速」开始服务\n") |
|
|
|
|
|
|
|
|
|
|
|
# 进程引用 |
|
|
|
|
|
self.cloud_process = None |
|
|
|
|
|
self.is_cloud_running = False |
|
|
|
|
|
|
|
|
|
|
|
def create_kodcloud_ini(self): |
|
|
|
|
|
"""创建kodcloud.ini配置文件""" |
|
|
|
|
|
# 获取当前时间,精确到秒 |
|
|
|
|
|
from datetime import datetime |
|
|
|
|
|
current_time = datetime.now().strftime("%Y%m%d_%H%M%S") |
|
|
|
|
|
|
|
|
|
|
|
ini_content = f"""[common] |
|
|
|
|
|
local_ip = 0.0.0.0 |
|
|
|
|
|
server_addr = 47.97.6.201 |
|
|
|
|
|
server_port = 7100 |
|
|
|
|
|
token = ENbOUMvXJGWuA623@@@ |
|
|
|
|
|
|
|
|
|
|
|
[kodcloud_{current_time}] |
|
|
|
|
|
type = xtcp |
|
|
|
|
|
role = visitor |
|
|
|
|
|
server_name = M0BUnkgzPxR0Ebdp9NQ4VUtm4EpTDvPR1 |
|
|
|
|
|
sk = aw1fohFnPcZEjRcRogENJzBbgPsNqjV31 |
|
|
|
|
|
bind_ip = 127.0.0.1 |
|
|
|
|
|
bind_port = 8089 |
|
|
|
|
|
""" |
|
|
|
|
|
try: |
|
|
|
|
|
with open('./kodcloud.ini', 'w', encoding='utf-8') as f: |
|
|
|
|
|
f.write(ini_content) |
|
|
|
|
|
self.append_cloud_output(f"✅ 配置文件 kodcloud.ini 创建成功\n") |
|
|
|
|
|
self.append_cloud_output(f"✅ 时间标识: {current_time}\n") |
|
|
|
|
|
return True |
|
|
|
|
|
except Exception as e: |
|
|
|
|
|
self.append_cloud_output(f"❌ 创建配置文件失败: {e}\n") |
|
|
|
|
|
return False |
|
|
|
|
|
|
|
|
|
|
|
def monitor_cloud_output(self): |
|
|
|
|
|
"""监控网盘加速输出""" |
|
|
|
|
|
try: |
|
|
|
|
|
for line in iter(self.cloud_process.stdout.readline, ''): |
|
|
|
|
|
if not self.is_cloud_running: |
|
|
|
|
|
break |
|
|
|
|
|
if line: |
|
|
|
|
|
self.append_cloud_output(f"[加速服务] {line}") |
|
|
|
|
|
except: |
|
|
|
|
|
pass |
|
|
|
|
|
|
|
|
|
|
|
def start_cloud_accel(self): |
|
|
|
|
|
"""启动网盘加速服务""" |
|
|
|
|
|
try: |
|
|
|
|
|
# 创建配置文件 |
|
|
|
|
|
if not self.create_kodcloud_ini(): |
|
|
|
|
|
return |
|
|
|
|
|
|
|
|
|
|
|
self.cloud_process = subprocess.Popen( |
|
|
|
|
|
['.\\gc.exe', '-c', '.\\kodcloud.ini'], |
|
|
|
|
|
stdout=subprocess.PIPE, |
|
|
|
|
|
stderr=subprocess.STDOUT, |
|
|
|
|
|
text=True, |
|
|
|
|
|
encoding='utf-8', |
|
|
|
|
|
errors='replace', |
|
|
|
|
|
bufsize=1, |
|
|
|
|
|
universal_newlines=True |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
# 更新状态 |
|
|
|
|
|
self.is_cloud_running = True |
|
|
|
|
|
self.cloud_start_button.config(state='disabled') |
|
|
|
|
|
self.cloud_stop_button.config(state='normal') |
|
|
|
|
|
self.cloud_status_label.config(text="📊 状态: 加速服务运行中", fg="#27ae60") |
|
|
|
|
|
|
|
|
|
|
|
self.append_cloud_output("🚀 启动网盘加速服务...\n") |
|
|
|
|
|
self.append_cloud_output("📍 本地访问地址: http://127.0.0.1:8089\n") |
|
|
|
|
|
|
|
|
|
|
|
# 启动输出监控线程 |
|
|
|
|
|
output_thread = threading.Thread(target=self.monitor_cloud_output, daemon=True) |
|
|
|
|
|
output_thread.start() |
|
|
|
|
|
|
|
|
|
|
|
except Exception as e: |
|
|
|
|
|
self.append_cloud_output(f"❌ 启动加速服务失败: {e}\n") |
|
|
|
|
|
|
|
|
|
|
|
def stop_cloud_accel(self): |
|
|
|
|
|
"""停止网盘加速服务""" |
|
|
|
|
|
self.is_cloud_running = False |
|
|
|
|
|
self.cloud_status_label.config(text="📊 状态: 正在停止服务", fg="#e74c3c") |
|
|
|
|
|
|
|
|
|
|
|
if self.cloud_process and self.cloud_process.poll() is None: |
|
|
|
|
|
try: |
|
|
|
|
|
self.cloud_process.terminate() |
|
|
|
|
|
self.append_cloud_output("⏹️ 正在停止加速服务...\n") |
|
|
|
|
|
except: |
|
|
|
|
|
pass |
|
|
|
|
|
|
|
|
|
|
|
time.sleep(1) |
|
|
|
|
|
|
|
|
|
|
|
self.cloud_start_button.config(state='normal') |
|
|
|
|
|
self.cloud_stop_button.config(state='disabled') |
|
|
|
|
|
self.cloud_status_label.config(text="📊 状态: 服务已停止", fg="#7f8c8d") |
|
|
|
|
|
self.append_cloud_output("✅ 加速服务已停止\n") |
|
|
|
|
|
|
|
|
|
|
|
def append_cloud_output(self, message): |
|
|
|
|
|
"""向网盘加速输出框添加消息""" |
|
|
|
|
|
self.cloud_output.config(state='normal') |
|
|
|
|
|
self.cloud_output.insert(tk.END, message) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def create_styled_button(self, parent, text, command, bg_color, width=10): |
|
|
def create_styled_button(self, parent, text, command, bg_color, width=10): |
|
|
"""创建样式统一的按钮""" |
|
|
"""创建样式统一的按钮""" |
|
|
@ -493,7 +711,7 @@ bind_port = {bport} |
|
|
'.\\p2pfile.py', |
|
|
'.\\p2pfile.py', |
|
|
'--mode', 'send', |
|
|
'--mode', 'send', |
|
|
'--path', file_path, |
|
|
'--path', file_path, |
|
|
'--psk', self.send_psk |
|
|
'--psk', self.send_psk, |
|
|
'--port', self.bport |
|
|
'--port', self.bport |
|
|
], |
|
|
], |
|
|
stdout=subprocess.PIPE, |
|
|
stdout=subprocess.PIPE, |
|
|
@ -536,7 +754,7 @@ bind_port = {bport} |
|
|
sk = parts[1].strip() |
|
|
sk = parts[1].strip() |
|
|
psk = parts[2].strip() |
|
|
psk = parts[2].strip() |
|
|
sern = parts[3].strip() |
|
|
sern = parts[3].strip() |
|
|
bport = parts[4].strip() |
|
|
bport = parts[4].strip() if len(parts) > 4 else "7001" |
|
|
|
|
|
|
|
|
self.send_token = token |
|
|
self.send_token = token |
|
|
self.send_sk = sk |
|
|
self.send_sk = sk |
|
|
@ -787,7 +1005,8 @@ local_port = {bport} |
|
|
sk = parts[1].strip() |
|
|
sk = parts[1].strip() |
|
|
psk = parts[2].strip() |
|
|
psk = parts[2].strip() |
|
|
sern = parts[3].strip() |
|
|
sern = parts[3].strip() |
|
|
bport = parts[4].strip() |
|
|
# 修改: 当缺少bport时,默认使用7001 |
|
|
|
|
|
bport = parts[4].strip() if len(parts) > 4 else "6000" |
|
|
|
|
|
|
|
|
self.current_token = token |
|
|
self.current_token = token |
|
|
self.current_sk = sk |
|
|
self.current_sk = sk |
|
|
|