Ethscriptions commited on
Commit
6924c65
·
verified ·
1 Parent(s): 0329f70

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +33 -56
app.py CHANGED
@@ -1,57 +1,34 @@
1
- import libtorrent as lt
2
- import time
3
  import streamlit as st
4
- import os
5
- import shutil
6
-
7
- st.title('磁力链接 BT 下载器')
8
-
9
- magnet_link = st.text_input('请输入磁力链接:')
10
-
11
- if magnet_link:
12
- # 创建一个会话并配置设置
13
- ses = lt.session()
14
- settings = {
15
- 'connections_limit': 500, # 增加连接数限制
16
- 'download_rate_limit': 0, # 不限制下载速度
17
- 'upload_rate_limit': 0, # 不限制上传速度
18
- # ... 其他设置
19
- }
20
- ses.apply_settings(settings)
21
-
22
- h = lt.add_magnet_uri(ses, magnet_link, {'save_path': './downloads'})
23
- st.write('开始下载...')
24
-
25
- while not h.is_seed():
26
- s = h.status()
27
- state_str = [
28
- "queued",
29
- "checking",
30
- "downloading metadata",
31
- "downloading",
32
- "finished",
33
- "seeding",
34
- "allocating",
35
- "checking fastresume",
36
- ]
37
- st.write(
38
- f"进度: {s.progress * 100:.2f}%,速度: {s.download_rate / 1000000:.2f} KB/s,状态:{state_str[s.state]}"
39
- )
40
- time.sleep(1)
41
-
42
- st.write('下载完成')
43
-
44
- # 获取下载的文件路径
45
- save_path = './downloads'
46
-
47
- # 压缩文件夹为 zip 文件
48
- shutil.make_archive('downloads', 'zip', save_path)
49
-
50
- # 提供一个下载按钮给用户下载 zip 文件
51
- with open('downloads.zip', 'rb') as file:
52
- st.download_button(
53
- label='下载文件',
54
- data=file,
55
- file_name='downloads.zip',
56
- mime='application/zip'
57
- )
 
 
 
1
  import streamlit as st
2
+ import requests
3
+ from io import BytesIO
4
+
5
+ # 设置Streamlit应用程序的标题
6
+ st.title('文件下载器')
7
+
8
+ # 创建一个文本输入框,让用户输入文件的URL
9
+ url = st.text_input('输入文件的URL:')
10
+
11
+ # 如果用户输入了URL并且点击了下载按钮
12
+ if st.button('下载'):
13
+ if url:
14
+ try:
15
+ # 发送HTTP GET请求以下载文件
16
+ response = requests.get(url)
17
+ response.raise_for_status() # 如果发生HTTP错误,将引发异常
18
+
19
+ # 从URL中提取文件名
20
+ filename = url.split('/')[-1]
21
+
22
+ # 创建一个字节流对象
23
+ file = BytesIO(response.content)
24
+
25
+ # 提供文件下载
26
+ st.download_button(label='下载文件',
27
+ data=file,
28
+ file_name=filename,
29
+ mime='application/octet-stream')
30
+ st.success(f"文件已准备好下载:{filename}")
31
+ except requests.exceptions.RequestException as e:
32
+ st.error(f"下载文件时出错:{e}")
33
+ else:
34
+ st.warning('请输入一个有效的URL。')