Skip to content

Commit 4a2e19f

Browse files
authored
feat: add remote server quick access feature (#99)
1 parent 0c1067b commit 4a2e19f

File tree

5 files changed

+45
-0
lines changed

5 files changed

+45
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
- 🔽 Instead of browser download manager
1818
- 🖱️ Right-click menu download
1919
- 🔍 Sniff web resources
20+
- 🚀 Quick access to remote servers
2021
- ⚙️ Support multiple downloader configurations
2122
- 📦 More..
2223

README_zh-CN.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
- 🔽 接管浏览器下载
1818
- 🖱️ 右键菜单下载
1919
- 🔍 嗅探网页资源
20+
- 🚀 快速访问远程服务器
2021
- ⚙️ 支持多个下载器配置
2122
- 📦 More..
2223

locales/en/messages.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,9 @@
8989
"remote_download": {
9090
"message": "Remote Download"
9191
},
92+
"remote_server": {
93+
"message": "Remote Server"
94+
},
9295
"enable_remote_download": {
9396
"message": "Enable Remote Download"
9497
},

locales/zh/messages.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,9 @@
8686
"remote_download": {
8787
"message": "远程下载"
8888
},
89+
"remote_server": {
90+
"message": "远程服务器"
91+
},
8992
"enable_remote_download": {
9093
"message": "启用远程下载"
9194
},

popup/index.tsx

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import {
22
Cancel,
33
CheckCircle,
4+
Dns as DnsIcon,
45
Info as InfoIcon,
56
NorthEast as NorthEastIcon,
67
Settings as SettingsIcon
@@ -55,6 +56,32 @@ function IndexPopup() {
5556
chrome.tabs.create({ url: optionsUrl })
5657
}
5758

59+
const handleRemoteServerClick = () => {
60+
setErrorMessage(null)
61+
const { servers, selectedServer } = settings.remote
62+
if (servers.length > 0) {
63+
// Check if the selected server exists in the server list
64+
const activeServer = servers.find(
65+
(s) => `${s.protocol}://${s.url}` === selectedServer
66+
)
67+
68+
let targetUrl = ""
69+
if (activeServer) {
70+
targetUrl = selectedServer
71+
} else {
72+
// Fallback to the first server if no server is selected or the selected server is not found
73+
const first = servers[0]
74+
targetUrl = `${first.protocol}://${first.url}`
75+
}
76+
77+
if (targetUrl) {
78+
chrome.tabs.create({ url: targetUrl })
79+
}
80+
} else {
81+
setErrorMessage(chrome.i18n.getMessage("no_server_error"))
82+
}
83+
}
84+
5885
const handleGitHubClick = () => {
5986
chrome.tabs.create({
6087
url: "https://github.com/GopeedLab/browser-extension"
@@ -140,6 +167,16 @@ function IndexPopup() {
140167
/>
141168
</ListItemButton>
142169
</ListItem>
170+
<ListItem disablePadding>
171+
<ListItemButton onClick={handleRemoteServerClick}>
172+
<ListItemIcon>
173+
<DnsIcon />
174+
</ListItemIcon>
175+
<ListItemText
176+
primary={chrome.i18n.getMessage("remote_server")}
177+
/>
178+
</ListItemButton>
179+
</ListItem>
143180
<ListItem disablePadding>
144181
<ListItemButton onClick={handleSettingsClick}>
145182
<ListItemIcon>

0 commit comments

Comments
 (0)