mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-05-13 09:36:05 +00:00
chore: fix remarks shadowrocket subscription (#4247)
This commit is contained in:
parent
e20d73ba7e
commit
9f06bffbea
3 changed files with 54 additions and 41 deletions
|
|
@ -37,6 +37,8 @@ const lastOnlineMs = Number(subData.lastOnline || 0);
|
|||
const subUrl = subData.subUrl || '';
|
||||
const subJsonUrl = subData.subJsonUrl || '';
|
||||
const subClashUrl = subData.subClashUrl || '';
|
||||
const subTitle = subData.subTitle || '';
|
||||
const subSupportUrl = subData.subSupportUrl || '';
|
||||
const links = Array.isArray(subData.links) ? subData.links : [];
|
||||
// Panel's "Calendar Type" setting; controls whether expiry / lastOnline
|
||||
// render in Gregorian or Jalali on this standalone subscription page.
|
||||
|
|
@ -102,7 +104,14 @@ function linkName(link, idx) {
|
|||
|
||||
// iOS deep links — taken verbatim from the legacy subpage. Each
|
||||
// client expects the sub URL in a slightly different param name.
|
||||
const shadowrocketUrl = computed(() => `sub://${btoa(subUrl)}`);
|
||||
const shadowrocketUrl = computed(() => {
|
||||
if (!subUrl) return '';
|
||||
const separator = subUrl.includes('?') ? '&' : '?';
|
||||
const rawUrl = subUrl + separator + 'flag=shadowrocket';
|
||||
const base64Url = encodeURIComponent(btoa(rawUrl));
|
||||
const remark = encodeURIComponent(subTitle || sId || 'Subscription');
|
||||
return `shadowrocket://add/sub/${base64Url}?remark=${remark}`;
|
||||
});
|
||||
const v2boxUrl = computed(() => `v2box://install-sub?url=${encodeURIComponent(subUrl)}&name=${encodeURIComponent(sId)}`);
|
||||
const streisandUrl = computed(() => `streisand://import/${encodeURIComponent(subUrl)}`);
|
||||
const v2raytunUrl = computed(() => subUrl);
|
||||
|
|
|
|||
|
|
@ -128,7 +128,7 @@ func (a *SUBController) subs(c *gin.Context) {
|
|||
basePath = "/"
|
||||
}
|
||||
basePathStr := basePath.(string)
|
||||
page := a.subService.BuildPageData(subId, hostHeader, traffic, lastOnline, subs, subURL, subJsonURL, subClashURL, basePathStr)
|
||||
page := a.subService.BuildPageData(subId, hostHeader, traffic, lastOnline, subs, subURL, subJsonURL, subClashURL, basePathStr, a.subTitle, a.subSupportUrl)
|
||||
a.serveSubPage(c, basePathStr, page)
|
||||
return
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1431,6 +1431,8 @@ type PageData struct {
|
|||
SubUrl string
|
||||
SubJsonUrl string
|
||||
SubClashUrl string
|
||||
SubTitle string
|
||||
SubSupportUrl string
|
||||
Result []string
|
||||
}
|
||||
|
||||
|
|
@ -1545,7 +1547,7 @@ func (s *SubService) joinPathWithID(basePath, subId string) string {
|
|||
|
||||
// BuildPageData parses header and prepares the template view model.
|
||||
// BuildPageData constructs page data for rendering the subscription information page.
|
||||
func (s *SubService) BuildPageData(subId string, hostHeader string, traffic xray.ClientTraffic, lastOnline int64, subs []string, subURL, subJsonURL, subClashURL string, basePath string) PageData {
|
||||
func (s *SubService) BuildPageData(subId string, hostHeader string, traffic xray.ClientTraffic, lastOnline int64, subs []string, subURL, subJsonURL, subClashURL string, basePath string, subTitle string, subSupportUrl string) PageData {
|
||||
download := common.FormatTraffic(traffic.Down)
|
||||
upload := common.FormatTraffic(traffic.Up)
|
||||
total := "∞"
|
||||
|
|
@ -1581,6 +1583,8 @@ func (s *SubService) BuildPageData(subId string, hostHeader string, traffic xray
|
|||
SubUrl: subURL,
|
||||
SubJsonUrl: subJsonURL,
|
||||
SubClashUrl: subClashURL,
|
||||
SubTitle: subTitle,
|
||||
SubSupportUrl: subSupportUrl,
|
||||
Result: subs,
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue