From 78ffa69e8fa7f2ed8cbbc058ad2e40310925703e Mon Sep 17 00:00:00 2001 From: yefan Date: Mon, 11 May 2026 21:58:50 +0800 Subject: [PATCH 1/4] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8Dcurl=E5=9C=A8orign?= =?UTF-8?q?al=E6=83=85=E5=86=B5=E4=B8=8B=E9=80=9A=E4=BF=A1=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5=EF=BC=88key=E8=A6=81=E6=9C=89=E6=8F=92=E4=BB=B6?= =?UTF-8?q?=E5=89=8D=E7=BC=80=EF=BC=89=20&&=20=E7=A7=BB=E9=99=A4curl?= =?UTF-8?q?=E7=9A=84bridge=E6=A8=A1=E5=9E=8B=EF=BC=8C=E4=B8=8D=E5=86=8D?= =?UTF-8?q?=E8=AF=BB=E5=86=99=E6=9C=AC=E5=9C=B0=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MY_!Base/src/lib/Curl.lua | 45 ++++++--------------------------------- 1 file changed, 7 insertions(+), 38 deletions(-) diff --git a/MY_!Base/src/lib/Curl.lua b/MY_!Base/src/lib/Curl.lua index 4ff3a5d11..7b95492b4 100644 --- a/MY_!Base/src/lib/Curl.lua +++ b/MY_!Base/src/lib/Curl.lua @@ -29,8 +29,6 @@ local RRWP_FREE = {} local RRWC_FREE = {} local CALL_AJAX = {} local AJAX_TAG = X.NSFormatString('{$NS}_AJAX#') -local AJAX_BRIDGE_WAIT = 10000 -local AJAX_BRIDGE_PATH = X.PACKET_INFO.DATA_ROOT .. '#cache/curl/' local function CreateWebPageFrame() local szRequestID, hFrame @@ -226,8 +224,6 @@ function X.Ajax(settings) X.DEBUG_LEVEL.LOG ) --[[#DEBUG END]] - local bridgewait = GetTime() + AJAX_BRIDGE_WAIT - local bridgewaitkey = X.NSFormatString('{$NS}_AJAX_') .. id local fulfilled = false settings.callback = function(html, status) if fulfilled then @@ -262,42 +258,13 @@ function X.Ajax(settings) else X.SafeCallWithThis(settings.config, onerror, html, status) end - X.XpCall(settings.closebridge) - end - if connected then - resolve() - else - X.DelayCall(bridgewaitkey, bridgewait - GetTime(), resolve) end + resolve() end ------------------------------- -- each driver handlers ------------------------------- - -- bridge - local bridgekey = X.NSFormatString('{$NS}RRDF_TO_') .. id - local bridgein = AJAX_BRIDGE_PATH .. id .. '.' .. X.ENVIRONMENT.GAME_LANG .. '.jx3dat' - local bridgeout = AJAX_BRIDGE_PATH .. id .. '.result.' .. X.ENVIRONMENT.GAME_LANG .. '.jx3dat' - local bridgetimeout = GetTime() + config.timeout - settings.closebridge = function() - CPath.DelFile(bridgein) - CPath.DelFile(bridgeout) - X.DelayCall(bridgewaitkey, false) - X.BreatheCall(bridgekey, false) - X.DelayCall(bridgekey, false) - X.RegisterExit(bridgekey, false) - end - X.SaveLUAData(bridgein, config, { encoder = 'luatext', passphrase = false }) - X.BreatheCall(bridgekey, 200, function() - local data = X.LoadLUAData(bridgeout, { passphrase = false }) - if X.IsTable(data) then - settings.callback(data.content, data.status) - elseif GetTime() > bridgetimeout then - settings.callback() - end - end) - X.DelayCall(bridgekey, config.timeout, settings.closebridge) - X.RegisterExit(bridgekey, settings.closebridge) local canajax, errmsg = X.CanAjax(driver, method) if not canajax then @@ -463,6 +430,7 @@ function X.Ajax(settings) szKey = szKey + 1 end szKey = AJAX_TAG .. szKey + local szRequestKey = '__addon_' .. szKey local ssl = xurl:sub(1, 6) == 'https:' if method == 'post' then local data = xdata @@ -474,9 +442,9 @@ function X.Ajax(settings) data[X.DecodeURIComponent(k)] = X.DecodeURIComponent(v) end end - CURL_HttpPost(szKey, xurl, data or '', ssl, config.timeout) + CURL_HttpPost(szRequestKey, xurl, data or '', ssl, config.timeout) else - CURL_HttpRqst(szKey, xurl, ssl, config.timeout) + CURL_HttpRqst(szRequestKey, xurl, ssl, config.timeout) end local info = { settings = settings, @@ -543,7 +511,8 @@ function X.DownloadFile(szURL, szPath) if CURL_DownloadFile then info.resolve = resolve info.reject = reject - CURL_DownloadFile(szKey, szURL, szPath, szURL:lower():find('^https://') and true or false, 5) + local szDownloadKey = '__addon_' .. szKey + CURL_DownloadFile(szDownloadKey, szURL, szPath, szURL:lower():find('^https://') and true or false, 5) else for _, k in ipairs(info.keys) do PENDING[k] = nil @@ -636,7 +605,7 @@ end function X.EnsureAjax(options) local key = GetStringCRC(X.EncodeLUAData({options.url, options.data})) local configs, i, dc = {{'curl', 'post'}, {'origin', 'post'}, {'origin', 'get'}, {'webcef', 'get'}}, 1, nil - -- 移除无法访问的调用方式,但至少保留一个用于尝试桥接通信 + -- 移除无法访问的调用方式,但至少保留一种驱动用于依次重试 for i, config in X.ipairs_r(configs) do if i >= 1 and not X.CanAjax(config[1], config[2]) then table.remove(configs, i) From 3f4ebebc444e4f10cc1245a0ae5fe25c13645ffd Mon Sep 17 00:00:00 2001 From: yefan Date: Tue, 12 May 2026 14:09:50 +0800 Subject: [PATCH 2/4] =?UTF-8?q?fix:=20=E5=9B=9E=E6=BB=9Acurl=E7=9A=84key?= =?UTF-8?q?=E5=89=8D=E7=BC=80=E6=94=B9=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MY_!Base/src/lib/Curl.lua | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/MY_!Base/src/lib/Curl.lua b/MY_!Base/src/lib/Curl.lua index 7b95492b4..ce32c6870 100644 --- a/MY_!Base/src/lib/Curl.lua +++ b/MY_!Base/src/lib/Curl.lua @@ -430,7 +430,6 @@ function X.Ajax(settings) szKey = szKey + 1 end szKey = AJAX_TAG .. szKey - local szRequestKey = '__addon_' .. szKey local ssl = xurl:sub(1, 6) == 'https:' if method == 'post' then local data = xdata @@ -442,9 +441,9 @@ function X.Ajax(settings) data[X.DecodeURIComponent(k)] = X.DecodeURIComponent(v) end end - CURL_HttpPost(szRequestKey, xurl, data or '', ssl, config.timeout) + CURL_HttpPost(szKey, xurl, data or '', ssl, config.timeout) else - CURL_HttpRqst(szRequestKey, xurl, ssl, config.timeout) + CURL_HttpRqst(szKey, xurl, ssl, config.timeout) end local info = { settings = settings, @@ -511,8 +510,7 @@ function X.DownloadFile(szURL, szPath) if CURL_DownloadFile then info.resolve = resolve info.reject = reject - local szDownloadKey = '__addon_' .. szKey - CURL_DownloadFile(szDownloadKey, szURL, szPath, szURL:lower():find('^https://') and true or false, 5) + CURL_DownloadFile(szKey, szURL, szPath, szURL:lower():find('^https://') and true or false, 5) else for _, k in ipairs(info.keys) do PENDING[k] = nil From 01312dd9dd55c4762dcedffd3218e17d57ab8627 Mon Sep 17 00:00:00 2001 From: yefansky Date: Tue, 12 May 2026 14:14:42 +0800 Subject: [PATCH 3/4] =?UTF-8?q?fix:=20=E7=A7=BB=E9=99=A4curl=E7=9A=84bridg?= =?UTF-8?q?e=E6=A8=A1=E5=9E=8B=EF=BC=8C=E4=B8=8D=E5=86=8D=E8=AF=BB?= =?UTF-8?q?=E5=86=99=E6=9C=AC=E5=9C=B0=E6=96=87=E4=BB=B6=20(#102)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: 淇curl鍦╫rignal鎯呭喌涓嬮氫俊澶辫触锛坘ey瑕佹湁鎻掍欢鍓嶇紑锛 && 绉婚櫎curl鐨刡ridge妯″瀷锛屼笉鍐嶈鍐欐湰鍦版枃浠 * fix: 鍥炴粴curl鐨刱ey鍓嶇紑鏀瑰姩 --- MY_!Base/src/lib/Curl.lua | 37 ++----------------------------------- 1 file changed, 2 insertions(+), 35 deletions(-) diff --git a/MY_!Base/src/lib/Curl.lua b/MY_!Base/src/lib/Curl.lua index 4ff3a5d11..ce32c6870 100644 --- a/MY_!Base/src/lib/Curl.lua +++ b/MY_!Base/src/lib/Curl.lua @@ -29,8 +29,6 @@ local RRWP_FREE = {} local RRWC_FREE = {} local CALL_AJAX = {} local AJAX_TAG = X.NSFormatString('{$NS}_AJAX#') -local AJAX_BRIDGE_WAIT = 10000 -local AJAX_BRIDGE_PATH = X.PACKET_INFO.DATA_ROOT .. '#cache/curl/' local function CreateWebPageFrame() local szRequestID, hFrame @@ -226,8 +224,6 @@ function X.Ajax(settings) X.DEBUG_LEVEL.LOG ) --[[#DEBUG END]] - local bridgewait = GetTime() + AJAX_BRIDGE_WAIT - local bridgewaitkey = X.NSFormatString('{$NS}_AJAX_') .. id local fulfilled = false settings.callback = function(html, status) if fulfilled then @@ -262,42 +258,13 @@ function X.Ajax(settings) else X.SafeCallWithThis(settings.config, onerror, html, status) end - X.XpCall(settings.closebridge) - end - if connected then - resolve() - else - X.DelayCall(bridgewaitkey, bridgewait - GetTime(), resolve) end + resolve() end ------------------------------- -- each driver handlers ------------------------------- - -- bridge - local bridgekey = X.NSFormatString('{$NS}RRDF_TO_') .. id - local bridgein = AJAX_BRIDGE_PATH .. id .. '.' .. X.ENVIRONMENT.GAME_LANG .. '.jx3dat' - local bridgeout = AJAX_BRIDGE_PATH .. id .. '.result.' .. X.ENVIRONMENT.GAME_LANG .. '.jx3dat' - local bridgetimeout = GetTime() + config.timeout - settings.closebridge = function() - CPath.DelFile(bridgein) - CPath.DelFile(bridgeout) - X.DelayCall(bridgewaitkey, false) - X.BreatheCall(bridgekey, false) - X.DelayCall(bridgekey, false) - X.RegisterExit(bridgekey, false) - end - X.SaveLUAData(bridgein, config, { encoder = 'luatext', passphrase = false }) - X.BreatheCall(bridgekey, 200, function() - local data = X.LoadLUAData(bridgeout, { passphrase = false }) - if X.IsTable(data) then - settings.callback(data.content, data.status) - elseif GetTime() > bridgetimeout then - settings.callback() - end - end) - X.DelayCall(bridgekey, config.timeout, settings.closebridge) - X.RegisterExit(bridgekey, settings.closebridge) local canajax, errmsg = X.CanAjax(driver, method) if not canajax then @@ -636,7 +603,7 @@ end function X.EnsureAjax(options) local key = GetStringCRC(X.EncodeLUAData({options.url, options.data})) local configs, i, dc = {{'curl', 'post'}, {'origin', 'post'}, {'origin', 'get'}, {'webcef', 'get'}}, 1, nil - -- 移除无法访问的调用方式,但至少保留一个用于尝试桥接通信 + -- 移除无法访问的调用方式,但至少保留一种驱动用于依次重试 for i, config in X.ipairs_r(configs) do if i >= 1 and not X.CanAjax(config[1], config[2]) then table.remove(configs, i) From 59de6ec28e913213e430e7036ef2bb5c045daaff Mon Sep 17 00:00:00 2001 From: yefan Date: Thu, 14 May 2026 17:08:14 +0800 Subject: [PATCH 4/4] =?UTF-8?q?fix:=20=E6=94=AF=E6=8C=81=E5=86=85=E7=BD=91?= =?UTF-8?q?BVT=E5=86=85=E7=BD=91=E7=89=88=E6=9C=AC=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E8=AE=A2=E9=98=85=E5=8A=9F=E8=83=BD=EF=BC=8C=E6=96=B9=E4=BE=BF?= =?UTF-8?q?=E8=B0=83=E8=AF=95=EF=BC=88=E4=BF=AE=E6=94=B9=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E6=A0=87=E8=AF=86=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MY_!Base/src/lib/Base.lua | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/MY_!Base/src/lib/Base.lua b/MY_!Base/src/lib/Base.lua index 971d94d94..6b21f93df 100644 --- a/MY_!Base/src/lib/Base.lua +++ b/MY_!Base/src/lib/Base.lua @@ -20,6 +20,11 @@ elseif _GAME_BRANCH_ == 'zhtw' then end -- 游戏发行版编码 local _GAME_EDITION_ = string.lower(szVersionLineName .. '_' .. szVersionEx) +-- BVT内网开发版自动转正式服,获取社区订阅数据 +if szVersionEx == 'bvt' and szVersionLineName == 'classic' then + _GAME_EDITION_ = string.lower(szVersionLineName .. '_yq') +end + -- 游戏版本号 local _GAME_VERSION_ = string.lower(szVersion) -- 游戏运行方式,本地、云端