feat(pia): add PIA login-and-add WireGuard outbounds (#6272)

* feat(pia): add login-and-add WireGuard outbounds (#2)

* fix(pia): keep PIA outbounds identifiable after the editor strips hostname

The outbound editor drops piaHostname, so last-segment matching failed for hyphenated servers. Identify rows by the computed tag, re-encrypt stored tokens onto the active key, skip unusable catalog rows, and always release the catalog refresh latch.
This commit is contained in:
Masterain
2026-08-23 05:11:06 +08:00
committed by GitHub
parent a3e617215c
commit bd6a6aba43
73 changed files with 4095 additions and 31 deletions
+14
View File
@@ -1642,6 +1642,20 @@
"toastDeleted": "تم الحذف",
"toastDeleteFailed": "فشل الحذف"
},
"pia": {
"menu": "PIA",
"username": "اسم مستخدم PIA",
"password": "كلمة مرور PIA",
"account": "الحساب",
"region": "المنطقة",
"allRegions": "كل المناطق",
"noServers": "لا توجد خوادم للدولة المحددة",
"outboundAdded": "تمت إضافة مسار PIA الصادر",
"outboundUpdated": "تم تحديث مسار PIA الصادر",
"addedServers": "الخوادم المضافة",
"alreadyAdded": "هذا الخادم موجود بالفعل في قائمة الصادر. استخدم {reset} لتجديد المفتاح.",
"provisionFailed": "تعذر إنشاء مسار PIA الصادر. حاول مرة أخرى."
},
"tabBalancerSettings": "إعدادات الموازن",
"tabObservatory": "المرصد",
"observatory": {
+14
View File
@@ -1760,6 +1760,20 @@
"toastDeleted": "Deleted",
"toastDeleteFailed": "Delete failed"
},
"pia": {
"menu": "PIA",
"username": "PIA username",
"password": "PIA password",
"account": "Account",
"region": "Region",
"allRegions": "All regions",
"noServers": "No servers found for the selected country",
"outboundAdded": "PIA outbound added",
"outboundUpdated": "PIA outbound updated",
"addedServers": "Added servers",
"alreadyAdded": "This server is already in the outbound list. Use {reset} to renew its key.",
"provisionFailed": "Could not build the PIA outbound. Try again."
},
"tabBalancerSettings": "Balancer Settings",
"tabObservatory": "Observatory",
"observatory": {
+14
View File
@@ -1642,6 +1642,20 @@
"toastDeleted": "Eliminada",
"toastDeleteFailed": "Error al eliminar"
},
"pia": {
"menu": "PIA",
"username": "Usuario de PIA",
"password": "Contraseña de PIA",
"account": "Cuenta",
"region": "Región",
"allRegions": "Todas las regiones",
"noServers": "No hay servidores para el país seleccionado",
"outboundAdded": "Salida PIA añadida",
"outboundUpdated": "Salida PIA actualizada",
"addedServers": "Servidores añadidos",
"alreadyAdded": "Este servidor ya está en la lista de salidas. Usa {reset} para renovar la clave.",
"provisionFailed": "No se pudo crear la salida PIA. Inténtalo de nuevo."
},
"tabBalancerSettings": "Ajustes del balanceador",
"tabObservatory": "Observatorio",
"observatory": {
+14
View File
@@ -1642,6 +1642,20 @@
"toastDeleted": "حذف شد",
"toastDeleteFailed": "حذف ناموفق بود"
},
"pia": {
"menu": "PIA",
"username": "نام کاربری PIA",
"password": "رمز عبور PIA",
"account": "حساب",
"region": "منطقه",
"allRegions": "همه منطقه‌ها",
"noServers": "برای کشور انتخاب‌شده سروری پیدا نشد",
"outboundAdded": "خروجی PIA افزوده شد",
"outboundUpdated": "خروجی PIA به‌روز شد",
"addedServers": "سرورهای افزوده‌شده",
"alreadyAdded": "این سرور از قبل در فهرست خروجی است. برای تمدید کلید {reset} را بزنید.",
"provisionFailed": "ساخت خروجی PIA ممکن نشد. دوباره تلاش کنید."
},
"tabBalancerSettings": "تنظیمات بالانسر",
"tabObservatory": "رصدخانه",
"observatory": {
+14
View File
@@ -1642,6 +1642,20 @@
"toastDeleted": "Dihapus",
"toastDeleteFailed": "Gagal menghapus"
},
"pia": {
"menu": "PIA",
"username": "Nama pengguna PIA",
"password": "Kata sandi PIA",
"account": "Akun",
"region": "Wilayah",
"allRegions": "Semua wilayah",
"noServers": "Tidak ada server untuk negara yang dipilih",
"outboundAdded": "Outbound PIA ditambahkan",
"outboundUpdated": "Outbound PIA diperbarui",
"addedServers": "Server yang ditambahkan",
"alreadyAdded": "Server ini sudah ada di daftar outbound. Gunakan {reset} untuk memperbarui kuncinya.",
"provisionFailed": "Gagal membuat outbound PIA. Coba lagi."
},
"tabBalancerSettings": "Pengaturan Balancer",
"tabObservatory": "Observatory",
"observatory": {
+14
View File
@@ -1642,6 +1642,20 @@
"toastDeleted": "削除しました",
"toastDeleteFailed": "削除に失敗しました"
},
"pia": {
"menu": "PIA",
"username": "PIA ユーザー名",
"password": "PIA パスワード",
"account": "アカウント",
"region": "リージョン",
"allRegions": "すべてのリージョン",
"noServers": "選択した国にサーバーがありません",
"outboundAdded": "PIA アウトバウンドを追加しました",
"outboundUpdated": "PIA アウトバウンドを更新しました",
"addedServers": "追加済みサーバー",
"alreadyAdded": "このサーバーは既にアウトバウンド一覧にあります。鍵を更新するには {reset} を使ってください。",
"provisionFailed": "PIA アウトバウンドを作成できませんでした。もう一度お試しください。"
},
"tabBalancerSettings": "バランサー設定",
"tabObservatory": "オブザーバトリ",
"observatory": {
+14
View File
@@ -1642,6 +1642,20 @@
"toastDeleted": "Excluído",
"toastDeleteFailed": "Falha ao excluir"
},
"pia": {
"menu": "PIA",
"username": "Usuário PIA",
"password": "Senha PIA",
"account": "Conta",
"region": "Região",
"allRegions": "Todas as regiões",
"noServers": "Nenhum servidor para o país selecionado",
"outboundAdded": "Saída PIA adicionada",
"outboundUpdated": "Saída PIA atualizada",
"addedServers": "Servidores adicionados",
"alreadyAdded": "Este servidor já está na lista de saídas. Use {reset} para renovar a chave.",
"provisionFailed": "Não foi possível criar a saída PIA. Tente novamente."
},
"tabBalancerSettings": "Configurações do balanceador",
"tabObservatory": "Observatório",
"observatory": {
+14
View File
@@ -1642,6 +1642,20 @@
"toastDeleted": "Удалено",
"toastDeleteFailed": "Не удалось удалить"
},
"pia": {
"menu": "PIA",
"username": "Имя пользователя PIA",
"password": "Пароль PIA",
"account": "Аккаунт",
"region": "Регион",
"allRegions": "Все регионы",
"noServers": "Для выбранной страны серверы не найдены",
"outboundAdded": "Исходящее соединение PIA добавлено",
"outboundUpdated": "Исходящее соединение PIA обновлено",
"addedServers": "Добавленные серверы",
"alreadyAdded": "Этот сервер уже в списке исходящих. Чтобы обновить ключ, нажмите {reset}.",
"provisionFailed": "Не удалось создать исходящее PIA. Попробуйте ещё раз."
},
"tabBalancerSettings": "Настройки балансировщика",
"tabObservatory": "Обсерватория",
"observatory": {
+14
View File
@@ -1642,6 +1642,20 @@
"toastDeleted": "Silindi",
"toastDeleteFailed": "Silme işlemi başarısız"
},
"pia": {
"menu": "PIA",
"username": "PIA kullanıcı adı",
"password": "PIA parolası",
"account": "Hesap",
"region": "Bölge",
"allRegions": "Tüm bölgeler",
"noServers": "Seçilen ülke için sunucu bulunamadı",
"outboundAdded": "PIA çıkışı eklendi",
"outboundUpdated": "PIA çıkışı güncellendi",
"addedServers": "Eklenen sunucular",
"alreadyAdded": "Bu sunucu zaten çıkış listesinde. Anahtarı yenilemek için {reset} kullanın.",
"provisionFailed": "PIA çıkışı oluşturulamadı. Yeniden deneyin."
},
"tabBalancerSettings": "Dengeleyici Ayarları",
"tabObservatory": "Gözlemci",
"observatory": {
+14
View File
@@ -1642,6 +1642,20 @@
"toastDeleted": "Видалено",
"toastDeleteFailed": "Не вдалося видалити"
},
"pia": {
"menu": "PIA",
"username": "Ім’я користувача PIA",
"password": "Пароль PIA",
"account": "Обліковий запис",
"region": "Регіон",
"allRegions": "Усі регіони",
"noServers": "Для вибраної країни серверів немає",
"outboundAdded": "Вихідний PIA додано",
"outboundUpdated": "Вихідний PIA оновлено",
"addedServers": "Додані сервери",
"alreadyAdded": "Цей сервер уже в списку вихідних. Щоб оновити ключ, натисніть {reset}.",
"provisionFailed": "Не вдалося створити вихідний PIA. Спробуйте ще раз."
},
"tabBalancerSettings": "Налаштування балансувальника",
"tabObservatory": "Обсерваторія",
"observatory": {
+14
View File
@@ -1642,6 +1642,20 @@
"toastDeleted": "Đã xóa",
"toastDeleteFailed": "Xóa thất bại"
},
"pia": {
"menu": "PIA",
"username": "Tên người dùng PIA",
"password": "Mật khẩu PIA",
"account": "Tài khoản",
"region": "Khu vực",
"allRegions": "Tất cả khu vực",
"noServers": "Không có máy chủ cho quốc gia đã chọn",
"outboundAdded": "Đã thêm outbound PIA",
"outboundUpdated": "Đã cập nhật outbound PIA",
"addedServers": "Máy chủ đã thêm",
"alreadyAdded": "Máy chủ này đã có trong danh sách outbound. Dùng {reset} để gia hạn khóa.",
"provisionFailed": "Không tạo được outbound PIA. Hãy thử lại."
},
"tabBalancerSettings": "Cài đặt Balancer",
"tabObservatory": "Observatory",
"observatory": {
+14
View File
@@ -1642,6 +1642,20 @@
"toastDeleted": "已删除",
"toastDeleteFailed": "删除失败"
},
"pia": {
"menu": "PIA",
"username": "PIA 用户名",
"password": "PIA 密码",
"account": "账号",
"region": "区域",
"allRegions": "全部区域",
"noServers": "所选国家没有可用服务器",
"outboundAdded": "已添加 PIA 出站",
"outboundUpdated": "已更新 PIA 出站",
"addedServers": "已添加的服务器",
"alreadyAdded": "该服务器已在出站列表中。要用新密钥请点 {reset}。",
"provisionFailed": "无法生成 PIA 出站,请重试。"
},
"tabBalancerSettings": "负载均衡设置",
"tabObservatory": "观测器",
"observatory": {
+14
View File
@@ -1642,6 +1642,20 @@
"toastDeleted": "已刪除",
"toastDeleteFailed": "刪除失敗"
},
"pia": {
"menu": "PIA",
"username": "PIA 使用者名稱",
"password": "PIA 密碼",
"account": "帳號",
"region": "區域",
"allRegions": "全部區域",
"noServers": "所選國家沒有可用伺服器",
"outboundAdded": "已新增 PIA 出站",
"outboundUpdated": "已更新 PIA 出站",
"addedServers": "已新增的伺服器",
"alreadyAdded": "此伺服器已在出站清單中。若要換新金鑰請按 {reset}。",
"provisionFailed": "無法產生 PIA 出站,請重試。"
},
"tabBalancerSettings": "負載平衡設定",
"tabObservatory": "觀測器",
"observatory": {