Skip to content

Commit 12c03ee

Browse files
authored
Feat: Support Proxy Authentication (#6)
* allow config proxy auth info * add i18n support * support providing auth info
1 parent d6c5b4e commit 12c03ee

19 files changed

+685
-53
lines changed

.github/workflows/build.yml

+33-8
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ env:
1818

1919
jobs:
2020
build:
21+
name: Build
2122
runs-on: ubuntu-latest
2223
steps:
2324
- name: Checkout
@@ -40,16 +41,28 @@ jobs:
4041
- name: Output version
4142
run: echo "Current version ${{ env.CRX_VER }}"
4243

44+
- name: Pull i18n files
45+
uses: transifex/cli-action@v2
46+
with:
47+
token: ${{ secrets.TX_TOKEN }}
48+
args: pull -a
49+
4350
- name: Rebuild the dist directory
4451
run: npm run build
4552

53+
- name: Pack artifacts
54+
run: |
55+
mkdir ./release/
56+
cd ./dist/ && zip -r ../release/crx.zip ./
57+
4658
- name: Upload artifact
4759
uses: actions/upload-artifact@v4
4860
with:
4961
name: Proxyverse
50-
path: ./dist/
62+
path: ./release/*
5163

52-
release:
64+
release-github:
65+
name: Publish on Github Release
5366
if: ${{ github.ref_type == 'tag' }}
5467
runs-on: ubuntu-latest
5568
needs:
@@ -60,21 +73,33 @@ jobs:
6073
uses: actions/download-artifact@v4
6174
with:
6275
name: Proxyverse
63-
path: ./dist/
64-
65-
- name: Pack artifact
66-
run: cd ./dist/ && zip -r ../Proxyverse.zip ./
76+
path: ./release/
6777

6878
- name: Upload to release page
6979
uses: softprops/action-gh-release@v2
7080
with:
71-
files: ./Proxyverse.zip
81+
files: ./release/*
82+
83+
84+
release-edge:
85+
name: Publish on Edge
86+
if: ${{ github.ref_type == 'tag' }}
87+
runs-on: ubuntu-latest
88+
needs:
89+
- build
90+
91+
steps:
92+
- name: Download artifact
93+
uses: actions/download-artifact@v4
94+
with:
95+
name: Proxyverse
96+
path: ./release/
7297

7398
- name: Upload to MS Edge
7499
uses: wdzeng/edge-addon@v1
75100
with:
76101
product-id: 6fa97660-6c21-41e4-87e6-06a88509753f
77-
zip-path: ./Proxyverse.zip
102+
zip-path: ./release/crx.zip
78103
client-id: ${{ secrets.EDGE_CLIENT_ID }}
79104
client-secret: ${{ secrets.EDGE_CLIENT_SECRET }}
80105
access-token-url: ${{ secrets.EDGE_ACCESS_TOKEN_URL }}

.tx/config

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
[main]
2+
host = https://app.transifex.com
3+
4+
[o:bytevet:p:proxyverse:r:messagesjson]
5+
file_filter = public/_locales/<lang>/messages.json
6+
source_file = public/_locales/en/messages.json
7+
type = CHROME
8+
minimum_perc = 0
9+
resource_name = messages.json
10+
replace_edited_strings = false
11+
keep_translations = false
12+

README.md

+7-3
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,25 @@
33
[![Build Extension](https://github.com/bytevet/proxyverse/actions/workflows/build.yml/badge.svg)](https://github.com/bytevet/proxyverse/actions/workflows/build.yml)
44
[![Test](https://github.com/bytevet/proxyverse/actions/workflows/test.yml/badge.svg)](https://github.com/bytevet/proxyverse/actions/workflows/test.yml)
55

6-
Proxyverse is a simple tool to help you switch between different proxy profiles.Proxyverse is an alternative extension to Proxy SwitchyOmega.
6+
Proxyverse is a simple tool to help you switch between different proxy profiles. Proxyverse is an alternative extension to Proxy SwitchyOmega.
77

88
Proxyverse is built with the latest dev stack that complies with the latest standard of Chrome web extension.
99

1010
It's still in the early development stage, and more features are still on the way, including but no limited to
1111

1212
- [x] Basic profile switch support
13-
- [ ] Support proxy authentication
13+
- [x] Support proxy authentication
1414
- [ ] Support auto switch rules
15-
- [ ] Support more languages
15+
- [x] Support more languages
1616
- [ ] Support customized preference
1717
- [ ] Support Safari
1818
- [ ] Support firefox
1919

2020

21+
# How to download?
22+
23+
- [Chrome](https://chromewebstore.google.com/detail/proxyverse/igknmaflmijecdmjpcgollghmipkfbho)
24+
2125

2226
# Making a Contribution
2327

manifest.json

+2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
"manifest_version": 3,
33
"name": "Proxyverse",
44
"version": "<IN_PACKAGE_JSON>",
5+
"version_name": "<IN_PACKAGE_JSON>",
56
"description": "__MSG_app_desc__",
67
"default_locale": "en",
78
"icons": {
@@ -22,6 +23,7 @@
2223
"permissions": [
2324
"storage",
2425
"proxy",
26+
"webRequest",
2527
"webRequestAuthProvider"
2628
]
2729
}

package-lock.json

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
"scripts": {
77
"dev": "vite",
88
"test": "jest",
9+
"i18n:sync": "tx pull -a",
910
"build:test": "vue-tsc && vite build",
1011
"build": "vue-tsc && vite build",
1112
"dist": "rm -f dist.zip && cd ./dist/ && zip -r ../dist.zip ./",

public/_locales/en/messages.json

+16
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,19 @@
6767
"config_section_proxy_server_ftp": {
6868
"message": "FTP"
6969
},
70+
"config_section_proxy_auth_tips": {
71+
"message": "Set username and password if your proxy requires authentication"
72+
},
73+
"config_section_proxy_auth_title": {
74+
"message": "Proxy Authentication"
75+
},
76+
"config_section_proxy_auth_username": {
77+
"message": "Username"
78+
},
79+
"config_section_proxy_auth_password": {
80+
"message": "Password"
81+
},
82+
7083
"config_section_bypass_list": {
7184
"message": "Bypass List"
7285
},
@@ -92,6 +105,9 @@
92105
"config_action_cancel": {
93106
"message": "Discard Change"
94107
},
108+
"config_action_clear": {
109+
"message": "Clear"
110+
},
95111

96112
"config_feedback_saved": {
97113
"message": "The profile had been saved"

public/_locales/pt_BR/messages.json

+130
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
{
2+
"app_desc": {
3+
"message": "Uma ferramenta para ajudar você a gerenciar e alternar seus perfis de proxy"
4+
},
5+
6+
7+
"nav_preference": {
8+
"message": "Preferência"
9+
},
10+
"nav_config": {
11+
"message": "Config"
12+
},
13+
"nav_custome_profiles": {
14+
"message": "Perfis Personalizados"
15+
},
16+
17+
18+
"theme_light_mode": {
19+
"message": "Modo claro"
20+
},
21+
"theme_dark_mode": {
22+
"message": "Modo escuro"
23+
},
24+
"theme_auto_mode": {
25+
"message": "Siga o sistema"
26+
},
27+
28+
29+
"mode_auto_switch": {
30+
"message": "Auto Switch"
31+
},
32+
"mode_direct": {
33+
"message": "Direto"
34+
},
35+
"mode_system": {
36+
"message": "Usar Proxy do Sistema"
37+
},
38+
"mode_profile_create": {
39+
"message": "Criar Novo Perfil"
40+
},
41+
42+
43+
"config_proxy_type": {
44+
"message": "Tipo de Proxy"
45+
},
46+
"config_proxy_type_proxy": {
47+
"message": "Proxy"
48+
},
49+
"config_proxy_type_pac": {
50+
"message": "Script PAC"
51+
},
52+
"config_proxy_type_default": {
53+
"message": "Mesmo como o Padrão"
54+
},
55+
"config_section_proxy_server": {
56+
"message": "Servidor Proxy"
57+
},
58+
"config_section_proxy_server_default": {
59+
"message": "Servidor Padrão"
60+
},
61+
"config_section_proxy_server_http": {
62+
"message": "HTTP"
63+
},
64+
"config_section_proxy_server_https": {
65+
"message": "HTTPS"
66+
},
67+
"config_section_proxy_server_ftp": {
68+
"message": "FTP"
69+
},
70+
"config_section_proxy_auth_tips": {
71+
"message": "Defina nome de usuário e senha se o seu proxy exigir autenticação"
72+
},
73+
"config_section_proxy_auth_title": {
74+
"message": "Autenticação de Proxy"
75+
},
76+
"config_section_proxy_auth_username": {
77+
"message": "Nome de usuário"
78+
},
79+
"config_section_proxy_auth_password": {
80+
"message": "Senha"
81+
},
82+
83+
"config_section_bypass_list": {
84+
"message": "Lista de Bypass"
85+
},
86+
"config_section_advance": {
87+
"message": "Configuração Avançada"
88+
},
89+
"config_reference_bypass_list": {
90+
"message": "Saiba mais sobre a lista de bypass."
91+
},
92+
93+
"config_action_edit": {
94+
"message": "Editar"
95+
},
96+
"config_action_delete": {
97+
"message": "Excluir Perfil"
98+
},
99+
"config_action_delete_double_confirm": {
100+
"message": "Você tem certeza de que deseja excluir o perfil atual"
101+
},
102+
"config_action_save": {
103+
"message": "Salvar"
104+
},
105+
"config_action_cancel": {
106+
"message": "Descartar alteração"
107+
},
108+
"config_action_clear": {
109+
"message": "Claro"
110+
},
111+
112+
"config_feedback_saved": {
113+
"message": "O perfil foi salvo"
114+
},
115+
"config_feedback_deleted": {
116+
"message": "O perfil foi deletado"
117+
},
118+
"config_feedback_error_occured": {
119+
"message": "Ocorreu um erro: $1"
120+
},
121+
122+
123+
"form_is_required": {
124+
"message": "$1 é necessário."
125+
},
126+
127+
"_": {
128+
"message": "<DUMMY>"
129+
}
130+
}

0 commit comments

Comments
 (0)