From c19e656d4692bd234793d3b12a4ae7e733042ff4 Mon Sep 17 00:00:00 2001 From: ParticleG Date: Mon, 9 Jan 2023 17:34:35 +0800 Subject: [PATCH 01/12] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=AF=86=E7=A0=81?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E5=9C=BA=E6=99=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- parts/language/lang_en.lua | 9 -- parts/language/lang_es.lua | 9 -- parts/language/lang_fr.lua | 9 -- parts/language/lang_id.lua | 9 -- parts/language/lang_ja.lua | 9 -- parts/language/lang_pt.lua | 9 -- parts/language/lang_symbol.lua | 9 -- parts/language/lang_zh.lua | 9 -- parts/language/lang_zh_code.lua | 9 -- parts/language/lang_zh_trad.lua | 9 -- parts/net.lua | 104 +-------------------- parts/scenes/{login_mail.lua => login.lua} | 0 parts/scenes/login_pw.lua | 44 --------- 13 files changed, 1 insertion(+), 237 deletions(-) rename parts/scenes/{login_mail.lua => login.lua} (100%) delete mode 100644 parts/scenes/login_pw.lua diff --git a/parts/language/lang_en.lua b/parts/language/lang_en.lua index c9a94c9e..04978625 100644 --- a/parts/language/lang_en.lua +++ b/parts/language/lang_en.lua @@ -744,17 +744,8 @@ return { music="BGMs", label="label", }, - login_pw={ - title="Sign In", - login_mail="Login with E-mail/Sign Up", - email="Email Address", - password="Password", - showEmail="Show Email", - login="Log In", - }, login_mail={ title="Sign In/Sign Up", - login_pw="Password Sign In", email="Email Address", send="Send code", code="Verification Code", diff --git a/parts/language/lang_es.lua b/parts/language/lang_es.lua index cb6bde37..a96292e1 100644 --- a/parts/language/lang_es.lua +++ b/parts/language/lang_es.lua @@ -736,17 +736,8 @@ return { music="BGMs", label="Etiq.", }, - login_pw={ - title="Entrar", - login_mail="Registrarse/Pedir código", - email="Correo Elec.", - password="Contraseña", - showEmail="Mostrar Correo", - login="Entrar", - }, login_mail={ title="Entrar/Registrarse", - login_pw="Ingr. con Contraseña", email="Correo Elec.", send="Enviar código", code="Código de Verif.", diff --git a/parts/language/lang_fr.lua b/parts/language/lang_fr.lua index 43607328..0370a825 100644 --- a/parts/language/lang_fr.lua +++ b/parts/language/lang_fr.lua @@ -699,17 +699,8 @@ return { music="Musique", -- label="label", }, - login_pw={ - title="Connexion", - -- login_mail="Login with E-mail/Sign Up", - email="E-mail", - password="Mot de passe", - -- showEmail="Show Email", - login="Connexion", - }, login_mail={ title="Connexion/Enregistrement", - -- login_pw="Password Sign In", email="E-mail", -- send="Send code", -- code="Verification Code", diff --git a/parts/language/lang_id.lua b/parts/language/lang_id.lua index c9905217..015c63ad 100644 --- a/parts/language/lang_id.lua +++ b/parts/language/lang_id.lua @@ -745,17 +745,8 @@ return { music="Musik", label="label", }, - login_pw={ - title="Masuk", - -- login_mail="Login with E-mail/Sign Up", - email="Alamat Email", - password="Password", - showEmail="Tunjukkan Email", - login="Masuk", - }, login_mail={ title="Masuk/Daftar", - -- login_pw="Password Sign In", email="Alamat Email", -- send="Send code", -- code="Verification Code", diff --git a/parts/language/lang_ja.lua b/parts/language/lang_ja.lua index 00e3c1b7..4795be71 100644 --- a/parts/language/lang_ja.lua +++ b/parts/language/lang_ja.lua @@ -746,17 +746,8 @@ return { music="曲", label="ラベル", }, - login_pw={ - title="ログイン", - login_mail="アカウントを登録/パスワードを忘れた", - email="Eメールアドレス", - password="パスワード", - showEmail="Eメールアドレスを表示", - login="ログイン", - }, login_mail={ title="サインイン/サインアップ", - login_pw="パスワードでログイン", email="Eメールアドレス", send="認証コード送信", code="認証コード", diff --git a/parts/language/lang_pt.lua b/parts/language/lang_pt.lua index 2fa06381..30b24f7c 100644 --- a/parts/language/lang_pt.lua +++ b/parts/language/lang_pt.lua @@ -734,17 +734,8 @@ return { -- music="BGMs", -- label="label", }, - login_pw={ - title="Log in", - -- login_mail="Login with E-mail/Sign Up", - email="Endereço De Email", - password="Senha", - -- showEmail="Show Email", - login="Log in", - }, login_mail={ title="Log in/Registrar", - -- login_pw="Password Sign In", email="Endereço De Email", -- send="Send code", -- code="Verification Code", diff --git a/parts/language/lang_symbol.lua b/parts/language/lang_symbol.lua index 569b2e6d..1d2eac15 100644 --- a/parts/language/lang_symbol.lua +++ b/parts/language/lang_symbol.lua @@ -485,17 +485,8 @@ return { music="~~~", label="...", }, - login_pw={ - title="Log in", - -- login_mail="Login with E-mail/Sign Up", - email="@", - password="*", - showEmail="?", - login="→", - }, login_mail={ title="Log in/Sign up", - login_pw="*** →", email="@", send="→", code="←", diff --git a/parts/language/lang_zh.lua b/parts/language/lang_zh.lua index 2e3e11b0..b6f8c144 100644 --- a/parts/language/lang_zh.lua +++ b/parts/language/lang_zh.lua @@ -744,17 +744,8 @@ return { path="打开存储目录", save="用户档案管理", }, - login_pw={ - title="登录", - login_mail="邮箱登录/注册", - email="邮箱", - password="密码", - showEmail="显示邮箱", - login="登录", - }, login_mail={ title="登录/注册", - login_pw="密码登录", email="邮箱", send="发送验证码", code="验证码", diff --git a/parts/language/lang_zh_code.lua b/parts/language/lang_zh_code.lua index dd2195f6..6d3a178d 100644 --- a/parts/language/lang_zh_code.lua +++ b/parts/language/lang_zh_code.lua @@ -693,17 +693,8 @@ return { path="OpenPath();", save="DataManagement();", }, - login_pw={ - title="LogIn.UI", - login_mail="Login_mail_sign_up()", - email="Email=", - password="Password=", - showEmail="ShowEmail", - login="Login();", - }, login_mail={ title="LogIn_Register.UI", - login_pw="Login_pw();", email="Email=", send="Send();", code="V-code=", diff --git a/parts/language/lang_zh_trad.lua b/parts/language/lang_zh_trad.lua index 76c0b8af..2e2d0e91 100644 --- a/parts/language/lang_zh_trad.lua +++ b/parts/language/lang_zh_trad.lua @@ -744,17 +744,8 @@ return { path="打開存儲目錄", save="用戶資料管理", }, - login_pw={ - title="登錄", - login_mail="電郵登錄/注册", - email="電郵", - password="密碼", - showEmail="顯示郵箱", - login="登錄", - }, login_mail={ title="登錄/註冊", - login_pw="密碼登錄", email="電郵", send="發送驗證碼", code="驗證碼", diff --git a/parts/net.lua b/parts/net.lua index da989a5f..d5d29c4c 100644 --- a/parts/net.lua +++ b/parts/net.lua @@ -266,110 +266,8 @@ function NET.autoLogin() return end end - if USER.rToken then - local res=getMsg({ - pool='autoLogin', - path='/techmino/api/v1/auth/refresh', - headers={["x-refresh-token"]=USER.rToken}, - },6.26) - - if res then - if res.code==200 then - USER.rToken=res.data.refreshToken - USER.aToken=res.data.accessToken - saveUser() - NET.ws_connect() - SCN.go('net_menu') - WAIT.interrupt() - return - end - else - WAIT.interrupt() - return - end - end - if USER.password then - local res=getMsg({ - pool='pwLogin', - path='/techmino/api/v1/auth/login/email', - body={ - email=USER.email, - password=USER.password, - }, - },6.26) - if res then - if res.code==200 then - USER.rToken=res.data.refreshToken - USER.aToken=res.data.accessToken - saveUser() - NET.ws_connect() - SCN.go('net_menu') - WAIT.interrupt() - return - end - else - WAIT.interrupt() - end - end - - SCN.go('login_pw') - WAIT.interrupt() - end) -end -function NET.pwLogin(email,pw) - if not TASK.lock('pwLogin') then return end - TASK.new(function() - WAIT{ - quit=function() - TASK.unlock('pwLogin') - HTTP.deletePool('pwLogin') - end, - timeout=12.6, - } - TEST.yieldT(.26) - - local salt do - local res=getMsg({ - pool='pwLogin', - path='/techmino/api/v1/auth/seed/email', - body={ - email=email, - }, - },6.26) - - if res and res.code==200 then - salt=res.data - else - WAIT.interrupt() - return - end - end - - pw=HASH.pbkdf2(HASH.sha3_256,pw,salt,260) - - do - local res=getMsg({ - pool='pwLogin', - path='/techmino/api/v1/auth/login/email', - body={ - email=email, - password=pw, - }, - },6.26) - - if res then - if res.code==200 then - USER.email=email - USER.password=pw - USER.rToken=res.data.refreshToken - USER.aToken=res.data.accessToken - saveUser() - NET.ws_connect() - SCN.swapTo('net_menu') - end - end - end + SCN.go('login') WAIT.interrupt() end) end diff --git a/parts/scenes/login_mail.lua b/parts/scenes/login.lua similarity index 100% rename from parts/scenes/login_mail.lua rename to parts/scenes/login.lua diff --git a/parts/scenes/login_pw.lua b/parts/scenes/login_pw.lua deleted file mode 100644 index 228bdfa9..00000000 --- a/parts/scenes/login_pw.lua +++ /dev/null @@ -1,44 +0,0 @@ -local emailBox=WIDGET.newInputBox{name='email',x=380,y=200,w=500,h=60,limit=128} -local passwordBox=WIDGET.newInputBox{name='password',x=380,y=300,w=620,h=60,secret=true,regex="[ -~]",limit=64} - -local showEmail=true - -local function _login() - local email,password=emailBox:getText(),passwordBox:getText() - if not STRING.simpEmailCheck(email) then - MES.new('error',text.wrongEmail) return - elseif #password==0 then - MES.new('error',text.noPassword) return - end - NET.pwLogin(email,password) -end - -local scene={} - -function scene.enter() - showEmail=false - emailBox.secret=true - emailBox:setText(USER.email) - passwordBox:setText("") -end - -function scene.keyDown(key,rep) - if rep then return true end - if key=='return' then - _login() - else - return true - end -end - -scene.widgetList={ - WIDGET.newText{name='title', x=80, y=50,font=70,align='L'}, - WIDGET.newButton{name='login_mail',x=1080,y=100,w=260,h=80,color='lY',code=function() SCN.swapTo('login_mail','swipeL') end}, - emailBox, - passwordBox, - WIDGET.newSwitch{name='showEmail', x=550, y=420,disp=function() return showEmail end,code=function() showEmail=not showEmail emailBox.secret=not showEmail end}, - WIDGET.newKey{name='login', x=1140,y=540,w=170,h=80,font=40,code=pressKey'return'}, - WIDGET.newButton{name='back', x=1140,y=640,w=170,h=80,sound='back',font=60,fText=CHAR.icon.back,code=backScene}, -} - -return scene From d83779662aeaf2d99fb85f750fa535322485c980 Mon Sep 17 00:00:00 2001 From: ParticleG Date: Thu, 12 Jan 2023 16:31:17 +0800 Subject: [PATCH 02/12] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E7=95=8C=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.lua | 4 +-- parts/gameTables.lua | 4 +-- parts/language/lang_en.lua | 11 ++++----- parts/language/lang_es.lua | 11 ++++----- parts/language/lang_fr.lua | 11 ++++----- parts/language/lang_id.lua | 11 ++++----- parts/language/lang_ja.lua | 11 ++++----- parts/language/lang_pt.lua | 11 ++++----- parts/language/lang_symbol.lua | 11 ++++----- parts/language/lang_zh.lua | 11 ++++----- parts/language/lang_zh_code.lua | 11 ++++----- parts/language/lang_zh_trad.lua | 11 ++++----- parts/scenes/login.lua | 44 ++++++++++++++------------------- parts/scenes/net_menu.lua | 1 - 14 files changed, 71 insertions(+), 92 deletions(-) diff --git a/main.lua b/main.lua index 64d3b798..bd6e4eaa 100644 --- a/main.lua +++ b/main.lua @@ -601,8 +601,8 @@ for _,fileName in next,fs.getDirectoryItems('replay') do end table.sort(REPLAY,function(a,b) return a.fileName>b.fileName end) -WS.switchHost('cafuuchino1.3322.org','10026','/techmino/ws/v1') -HTTP.setHost("cafuuchino1.3322.org:10026") +WS.switchHost('cafuuchino1.3322.org','10027','/techmino/ws/v1') +HTTP.setHost("cafuuchino1.3322.org:10027") HTTP.setThreadCount(1) table.insert(_LOADTIMELIST_,("Load Resources: %.3fs"):format(TIME()-_LOADTIME_)) diff --git a/parts/gameTables.lua b/parts/gameTables.lua index 3035cc6f..f8000a95 100644 --- a/parts/gameTables.lua +++ b/parts/gameTables.lua @@ -587,10 +587,8 @@ do-- Userdata tables USER=setmetatable({-- User infomation __data={ uid=false, - email=false, - password=false, - rToken=false, aToken=false, + oToken=false, }, },{ __index=function(self,k) diff --git a/parts/language/lang_en.lua b/parts/language/lang_en.lua index 04978625..6a3b8c9b 100644 --- a/parts/language/lang_en.lua +++ b/parts/language/lang_en.lua @@ -744,12 +744,11 @@ return { music="BGMs", label="label", }, - login_mail={ - title="Sign In/Sign Up", - email="Email Address", - send="Send code", - code="Verification Code", - verify="Verify", + login={ + title="Sign In", + ticket="Auth Ticket", + authorize="Open Authorizing Page", + submit="Submit", }, reset_password={ title="Reset Password", diff --git a/parts/language/lang_es.lua b/parts/language/lang_es.lua index a96292e1..6388b179 100644 --- a/parts/language/lang_es.lua +++ b/parts/language/lang_es.lua @@ -736,12 +736,11 @@ return { music="BGMs", label="Etiq.", }, - login_mail={ - title="Entrar/Registrarse", - email="Correo Elec.", - send="Enviar código", - code="Código de Verif.", - verify="Verificar", + login={ + -- title="Sign In", + -- ticket="Auth Ticket", + -- authorize="Open Authorizing Page", + -- submit="Submit", }, reset_password={ title="Restablecer Contraseña", diff --git a/parts/language/lang_fr.lua b/parts/language/lang_fr.lua index 0370a825..4d739dfd 100644 --- a/parts/language/lang_fr.lua +++ b/parts/language/lang_fr.lua @@ -699,12 +699,11 @@ return { music="Musique", -- label="label", }, - login_mail={ - title="Connexion/Enregistrement", - email="E-mail", - -- send="Send code", - -- code="Verification Code", - -- verify="Verify", + login={ + -- title="Sign In", + -- ticket="Auth Ticket", + -- authorize="Open Authorizing Page", + -- submit="Submit", }, reset_password={ -- title="Reset Password", diff --git a/parts/language/lang_id.lua b/parts/language/lang_id.lua index 015c63ad..ffbc65e8 100644 --- a/parts/language/lang_id.lua +++ b/parts/language/lang_id.lua @@ -745,12 +745,11 @@ return { music="Musik", label="label", }, - login_mail={ - title="Masuk/Daftar", - email="Alamat Email", - -- send="Send code", - -- code="Verification Code", - -- verify="Verify", + login={ + -- title="Sign In", + -- ticket="Auth Ticket", + -- authorize="Open Authorizing Page", + -- submit="Submit", }, reset_password={ -- title="Reset Password", diff --git a/parts/language/lang_ja.lua b/parts/language/lang_ja.lua index 4795be71..249e71b8 100644 --- a/parts/language/lang_ja.lua +++ b/parts/language/lang_ja.lua @@ -746,12 +746,11 @@ return { music="曲", label="ラベル", }, - login_mail={ - title="サインイン/サインアップ", - email="Eメールアドレス", - send="認証コード送信", - code="認証コード", - verify="認証", + logi={ + -- title="Sign In", + -- ticket="Auth Ticket", + -- authorize="Open Authorizing Page", + -- submit="Submit", }, reset_password={ title="パスワード再設定", diff --git a/parts/language/lang_pt.lua b/parts/language/lang_pt.lua index 30b24f7c..9cb5e457 100644 --- a/parts/language/lang_pt.lua +++ b/parts/language/lang_pt.lua @@ -734,12 +734,11 @@ return { -- music="BGMs", -- label="label", }, - login_mail={ - title="Log in/Registrar", - email="Endereço De Email", - -- send="Send code", - -- code="Verification Code", - -- verify="Verify", + login={ + -- title="Sign In", + -- ticket="Auth Ticket", + -- authorize="Open Authorizing Page", + -- submit="Submit", }, reset_password={ -- title="Reset Password", diff --git a/parts/language/lang_symbol.lua b/parts/language/lang_symbol.lua index 1d2eac15..20b2695f 100644 --- a/parts/language/lang_symbol.lua +++ b/parts/language/lang_symbol.lua @@ -485,12 +485,11 @@ return { music="~~~", label="...", }, - login_mail={ - title="Log in/Sign up", - email="@", - send="→", - code="←", - verify="!", + login={ + title="Sign In", + -- ticket="Auth Ticket", + -- authorize="Open Authorizing Page", + -- submit="Submit", }, reset_password={ title="R ***", diff --git a/parts/language/lang_zh.lua b/parts/language/lang_zh.lua index b6f8c144..8c83fc4f 100644 --- a/parts/language/lang_zh.lua +++ b/parts/language/lang_zh.lua @@ -744,12 +744,11 @@ return { path="打开存储目录", save="用户档案管理", }, - login_mail={ - title="登录/注册", - email="邮箱", - send="发送验证码", - code="验证码", - verify="验证邮箱", + login={ + title="登录", + ticket="授权令牌", + authorize="打开授权页面", + submit="提交", }, reset_password={ title="重置密码", diff --git a/parts/language/lang_zh_code.lua b/parts/language/lang_zh_code.lua index 6d3a178d..54ac698b 100644 --- a/parts/language/lang_zh_code.lua +++ b/parts/language/lang_zh_code.lua @@ -693,12 +693,11 @@ return { path="OpenPath();", save="DataManagement();", }, - login_mail={ - title="LogIn_Register.UI", - email="Email=", - send="Send();", - code="V-code=", - verify="Verify();", + login={ + title="SignIn.UI", + ticket="Ticket=", + authorize="Authorize()", + submit="Submit()", }, reset_password={ title="Reset_Password.UI", diff --git a/parts/language/lang_zh_trad.lua b/parts/language/lang_zh_trad.lua index 2e2d0e91..d1bcc31b 100644 --- a/parts/language/lang_zh_trad.lua +++ b/parts/language/lang_zh_trad.lua @@ -744,12 +744,11 @@ return { path="打開存儲目錄", save="用戶資料管理", }, - login_mail={ - title="登錄/註冊", - email="電郵", - send="發送驗證碼", - code="驗證碼", - verify="驗證郵箱", + login={ + title="登錄", + -- ticket="Auth Ticket", + -- authorize="Open Authorizing Page", + -- submit="Submit", }, reset_password={ title="重設密碼", diff --git a/parts/scenes/login.lua b/parts/scenes/login.lua index c882566c..ce8e8cb6 100644 --- a/parts/scenes/login.lua +++ b/parts/scenes/login.lua @@ -1,47 +1,41 @@ local scene={} -local function _getCode() - local email=scene.widgetList.email:getText() - if not STRING.simpEmailCheck(email) then - MES.new('error',text.wrongEmail) - else - USER.email=email - NET.getCode(email) - end +local function _authorize() + love.system.openURL("https://dev.studio26f.org/oauth?product=techmino") end -local function _codeLogin() - local code=scene.widgetList.code:getText():upper() - if #code~=8 then +local function _submit() + local tickets=scene.widgetList.ticket:getText():upper() + if #tickets~=128 then MES.new('error',text.wrongCode) else - NET.codeLogin(USER.email,code) + USER.aToken=tickets:sub(1,64) + USER.oToken=tickets:sub(65) end end local function _paste() local t=love.system.getClipboardText() if t then t=STRING.trim(t) - if #t==8 and t:match("[0-9]+") then - scene.widgetList.code:setText(t) + if #t==128 and t:match("[0-9A-Z]+") then + scene.widgetList.ticket:setText(t) return end end - MES.new('warn',text.wrongCode) + MES.new('error',text.wrongCode) end function scene.enter() - scene.widgetList.email:setText(USER.email or "") - scene.widgetList.code:clear() + scene.widgetList.ticket:clear() end function scene.keyDown(key,rep) if key=='escape' and not rep then SCN.back() elseif key=='return' or key=='kpenter' then - if #scene.widgetList.code:getText():upper()==0 then - _getCode() + if #scene.widgetList.ticket:getText()==0 then + _authorize() else - _codeLogin() + _submit() end elseif key=='v' and love.keyboard.isDown('lctrl','rctrl') then _paste() @@ -52,14 +46,12 @@ end scene.widgetList={ WIDGET.newText{name='title', x=80, y=50,font=70,align='L'}, - WIDGET.newButton{name='login_pw', x=1080,y=100,w=260,h=80,color='lY',code=function() SCN.swapTo('login_pw','swipeR') end}, - WIDGET.newInputBox{name='email', x=380, y=200,w=626,h=60,limit=128}, - WIDGET.newKey{name='send', x=640, y=330,w=300,h=80,font=40,code=_getCode}, + WIDGET.newInputBox{name='ticket', x=280, y=200,w=730,h=320,font=30,regex="[0-9A-Z]",limit=128}, - WIDGET.newInputBox{name='code', x=380, y=400,w=626,h=60,regex="[0-9a-zA-Z]",limit=8}, - WIDGET.newKey{name='verify', x=640, y=530,w=300,h=80,font=40,code=_codeLogin}, - WIDGET.newKey{name='paste', x=850, y=530,w=80,font=40,fText=CHAR.icon.import,code=_paste}, + WIDGET.newKey{name='authorize', x=430, y=640,w=300,h=80,font=40,code=_authorize}, + WIDGET.newKey{name='submit', x=755, y=640,w=300,h=80,font=40,code=_submit}, + WIDGET.newKey{name='paste', x=970, y=640,w=80,font=40,fText=CHAR.icon.import,code=_paste}, WIDGET.newButton{name='back', x=1140,y=640,w=170,h=80,sound='back',font=60,fText=CHAR.icon.back,code=pressKey'escape'}, } diff --git a/parts/scenes/net_menu.lua b/parts/scenes/net_menu.lua index 666645eb..54937f1f 100644 --- a/parts/scenes/net_menu.lua +++ b/parts/scenes/net_menu.lua @@ -18,7 +18,6 @@ scene.widgetList={ WIDGET.newButton{name='league',x=640, y=180,w=350,h=120,font=40,color='D',code=goScene'net_league'}, WIDGET.newButton{name='ffa', x=640, y=360,w=350,h=120,font=40,color='D',code=function() MES.new('warn',text.notFinished)--[[NET.enterRoom({name='ffa'})]] end}, WIDGET.newButton{name='rooms', x=640, y=540,w=350,h=120,font=40,code=goScene'net_rooms'}, - WIDGET.newButton{name='resetPW',x=680,y=40,w=180,h=60,color='dG',code=goScene'reset_password'}, WIDGET.newButton{name='logout',x=880, y=40,w=180, h=60,color='dR', code=function() if tryBack() then From 8aac152ee628ed037a8876a3f5fd2ae8e15d0b14 Mon Sep 17 00:00:00 2001 From: ParticleG Date: Thu, 12 Jan 2023 18:07:24 +0800 Subject: [PATCH 03/12] =?UTF-8?q?=E4=BD=BF=E7=94=A8=E6=96=B0=E7=9A=84?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E5=92=8C=E9=89=B4=E6=9D=83API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- parts/net.lua | 152 ++++++-------------------------------- parts/scenes/login.lua | 1 + parts/scenes/net_menu.lua | 5 +- 3 files changed, 26 insertions(+), 132 deletions(-) diff --git a/parts/net.lua b/parts/net.lua index d5d29c4c..05e4aa46 100644 --- a/parts/net.lua +++ b/parts/net.lua @@ -119,121 +119,7 @@ local function getMsg(request,timeout) end end end -function NET.getCode(email) - if not TASK.lock('getCode') then return end - TASK.new(function() - WAIT{ - quit=function() - TASK.unlock('getCode') - HTTP.deletePool('getCode') - end, - timeout=12.6, - } - local res=getMsg({ - pool='getCode', - path='/techmino/api/v1/auth/verify/email', - body={email=email}, - },12.6) - - if res and res.code==200 then - MES.new('info',text.checkEmail,5) - end - - WAIT.interrupt() - end) -end -function NET.codeLogin(email,code) - if not TASK.lock('codeLogin') then return end - TASK.new(function() - WAIT{ - quit=function() - TASK.unlock('codeLogin') - HTTP.deletePool('codeLogin') - end, - timeout=6.26, - } - - local res=getMsg({ - pool='codeLogin', - path='/techmino/api/v1/auth/login/email', - body={ - email=email, - code=code, - }, - },6.26) - - if res then - if res.code==200 then - USER.rToken=res.data.refreshToken - USER.aToken=res.data.accessToken - saveUser() - NET.ws_connect() - SCN.swapTo('net_menu') - elseif res.code==201 then - USER.rToken=res.data.refreshToken - USER.aToken=res.data.accessToken - saveUser() - SCN.pop()SCN.push('net_menu') - SCN.go('reset_password',nil,code) - end - end - - WAIT.interrupt() - end) -end -function NET.setPW(code,pw) - if not TASK.lock('setPW') then return end - TASK.new(function() - WAIT{ - quit=function() - TASK.unlock('setPW') - HTTP.deletePool('setPW') - end, - timeout=6.26, - } - - local salt do - local res=getMsg({ - pool='pwLogin', - path='/techmino/api/v1/auth/seed/email', - body={ - email=USER.email, - }, - },6.26) - - if res and res.code==200 then - salt=res.data - else - WAIT.interrupt() - return - end - end - - pw=HASH.pbkdf2(HASH.sha3_256,pw,salt,260) - - local res=getMsg({ - pool='setPW', - method='PUT', - path='/techmino/api/v1/auth/reset/email', - body={ - email=USER.email, - code=code, - newPassword=pw, - }, - },6.26) - - if res then - if res.code==200 then - USER.password=pw - saveUser() - SCN.back() - end - end - - WAIT.interrupt() - end) -end function NET.autoLogin() if not TASK.lock('autoLogin') then return end TASK.new(function() @@ -248,19 +134,21 @@ function NET.autoLogin() if USER.aToken then local res=getMsg({ pool='autoLogin', - path='/techmino/api/v1/auth/check', + url='cafuuchino1.3322.org:8081', + path='/studio26f/api/v1/auth/check', headers={["x-access-token"]=USER.aToken}, },6.26) - if res then - if res.code==200 then - USER.uid=res.data - saveUser() - NET.ws_connect() - SCN.go('net_menu') - WAIT.interrupt() - return + if res and math.floor(res.code/100)==2 then + USER.uid=res.data.playerId + if res.data.accessToken then + USER.aToken=res.data.accessToken end + saveUser() + NET.ws_connect() + SCN.go('net_menu') + WAIT.interrupt() + return else WAIT.interrupt() return @@ -275,7 +163,8 @@ function NET.getUserInfo(uid) TASK.new(function() local res=getMsg({ pool='getInfo', - path='/techmino/api/v1/player/info?playerId='..uid, + url='cafuuchino1.3322.org:8081', + path='/studio26f/api/v1/player/info?playerId='..uid, },6.26) if res and res.code==200 and type(res.data)=='table' then @@ -287,7 +176,8 @@ function NET.getAvatar(uid) TASK.new(function() local res=getMsg({ pool='getInfo', - path='/techmino/api/v1/player/avatar?playerId='..uid, + url='cafuuchino1.3322.org:8081', + path='/studio26f/api/v1/player/avatar?playerId='..uid, },6.26) if res and res.code==200 and type(res.data)=='string' then @@ -657,7 +547,7 @@ end function NET.ws_connect() if WS.status('game')=='dead' then - WS.connect('game','',{['x-access-token']=USER.aToken},6) + WS.connect('game','',{['x-access-token']=USER.oToken},6) TASK.removeTask_code(NET.ws_update) TASK.new(NET.ws_update) end @@ -683,11 +573,15 @@ function NET.ws_update() local res=getMsg({ pool='getUID', path='/techmino/api/v1/auth/check', - headers={["x-access-token"]=USER.aToken}, + headers={["x-access-token"]=USER.oToken}, },6.26) - if res and res.code==200 then - USER.uid=res.data + if res and math.floor(res.code/100)==2 then + USER.uid=res.data.playerId + if res.data.accessToken then + USER.oToken=res.data.accessToken + end + saveUser() else TEST.yieldUntilNextScene() GAME.playing=false diff --git a/parts/scenes/login.lua b/parts/scenes/login.lua index ce8e8cb6..5005ce87 100644 --- a/parts/scenes/login.lua +++ b/parts/scenes/login.lua @@ -10,6 +10,7 @@ local function _submit() else USER.aToken=tickets:sub(1,64) USER.oToken=tickets:sub(65) + NET.autoLogin() end end local function _paste() diff --git a/parts/scenes/net_menu.lua b/parts/scenes/net_menu.lua index 54937f1f..ce29d6c3 100644 --- a/parts/scenes/net_menu.lua +++ b/parts/scenes/net_menu.lua @@ -21,11 +21,10 @@ scene.widgetList={ WIDGET.newButton{name='logout',x=880, y=40,w=180, h=60,color='dR', code=function() if tryBack() then + print('logout') USER.__data.uid=false - USER.__data.email=false - USER.__data.password=false - USER.__data.rToken=false USER.__data.aToken=false + USER.__data.oToken=false love.filesystem.remove('conf/user') SCN.back() end From 88d05c23547f814c9de82a41308c07bd3210837c Mon Sep 17 00:00:00 2001 From: MrZ_26 <1046101471@qq.com> Date: Sun, 15 Jan 2023 00:47:24 +0800 Subject: [PATCH 04/12] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E6=96=B0=E7=99=BB=E5=BD=95=E7=95=8C=E9=9D=A2=E5=B0=8F=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- parts/language/lang_symbol.lua | 6 +++--- parts/language/lang_zh.lua | 6 +++--- parts/language/lang_zh_trad.lua | 6 +++--- parts/net.lua | 16 ++++++++-------- parts/scenes/login.lua | 8 ++++---- parts/scenes/main.lua | 2 +- 6 files changed, 22 insertions(+), 22 deletions(-) diff --git a/parts/language/lang_symbol.lua b/parts/language/lang_symbol.lua index 20b2695f..4597fae6 100644 --- a/parts/language/lang_symbol.lua +++ b/parts/language/lang_symbol.lua @@ -487,9 +487,9 @@ return { }, login={ title="Sign In", - -- ticket="Auth Ticket", - -- authorize="Open Authorizing Page", - -- submit="Submit", + ticket="***", + authorize="**?", + submit="", }, reset_password={ title="R ***", diff --git a/parts/language/lang_zh.lua b/parts/language/lang_zh.lua index 8c83fc4f..23c6af44 100644 --- a/parts/language/lang_zh.lua +++ b/parts/language/lang_zh.lua @@ -746,9 +746,9 @@ return { }, login={ title="登录", - ticket="授权令牌", - authorize="打开授权页面", - submit="提交", + ticket="登录口令", + authorize="去官网获取口令", + submit="登录", }, reset_password={ title="重置密码", diff --git a/parts/language/lang_zh_trad.lua b/parts/language/lang_zh_trad.lua index d1bcc31b..c567c01e 100644 --- a/parts/language/lang_zh_trad.lua +++ b/parts/language/lang_zh_trad.lua @@ -746,9 +746,9 @@ return { }, login={ title="登錄", - -- ticket="Auth Ticket", - -- authorize="Open Authorizing Page", - -- submit="Submit", + ticket="登錄口令", + authorize="去官網獲取口令", + submit="登錄", }, reset_password={ title="重設密碼", diff --git a/parts/net.lua b/parts/net.lua index 05e4aa46..a2c17f5e 100644 --- a/parts/net.lua +++ b/parts/net.lua @@ -120,20 +120,20 @@ local function getMsg(request,timeout) end end -function NET.autoLogin() - if not TASK.lock('autoLogin') then return end +function NET.login(auto) + if not TASK.lock('login') then return end TASK.new(function() WAIT{ quit=function() - TASK.unlock('autoLogin') - HTTP.deletePool('autoLogin') + TASK.unlock('login') + HTTP.deletePool('login') end, timeout=12.6, } if USER.aToken then local res=getMsg({ - pool='autoLogin', + pool='login', url='cafuuchino1.3322.org:8081', path='/studio26f/api/v1/auth/check', headers={["x-access-token"]=USER.aToken}, @@ -146,12 +146,12 @@ function NET.autoLogin() end saveUser() NET.ws_connect() + if not auto then-- Quit login menu + SCN.pop() + end SCN.go('net_menu') WAIT.interrupt() return - else - WAIT.interrupt() - return end end diff --git a/parts/scenes/login.lua b/parts/scenes/login.lua index 5005ce87..d7c0db8f 100644 --- a/parts/scenes/login.lua +++ b/parts/scenes/login.lua @@ -10,7 +10,7 @@ local function _submit() else USER.aToken=tickets:sub(1,64) USER.oToken=tickets:sub(65) - NET.autoLogin() + NET.login() end end local function _paste() @@ -50,9 +50,9 @@ scene.widgetList={ WIDGET.newInputBox{name='ticket', x=280, y=200,w=730,h=320,font=30,regex="[0-9A-Z]",limit=128}, - WIDGET.newKey{name='authorize', x=430, y=640,w=300,h=80,font=40,code=_authorize}, - WIDGET.newKey{name='submit', x=755, y=640,w=300,h=80,font=40,code=_submit}, - WIDGET.newKey{name='paste', x=970, y=640,w=80,font=40,fText=CHAR.icon.import,code=_paste}, + WIDGET.newKey{name='authorize', x=430, y=600,w=300,h=80,font=40,code=_authorize}, + WIDGET.newKey{name='submit', x=755, y=600,w=300,h=80,font=40,code=_submit}, + WIDGET.newKey{name='paste', x=970, y=600,w=80,font=40,fText=CHAR.icon.import,code=_paste}, WIDGET.newButton{name='back', x=1140,y=640,w=170,h=80,sound='back',font=60,fText=CHAR.icon.back,code=pressKey'escape'}, } diff --git a/parts/scenes/main.lua b/parts/scenes/main.lua index 454abc43..17c4784e 100644 --- a/parts/scenes/main.lua +++ b/parts/scenes/main.lua @@ -76,7 +76,7 @@ function scene.keyDown(key,isRep) end elseif key=='a' then if _testButton(3) then - NET.autoLogin() + NET.login(true) end elseif key=='z' then if _testButton(4) then From 96762ffa5cf5fa761a012e26b85a155d0e297a80 Mon Sep 17 00:00:00 2001 From: ParticleG Date: Sun, 15 Jan 2023 01:06:39 +0800 Subject: [PATCH 05/12] =?UTF-8?q?=E6=9B=B4=E6=96=B0Windows=E5=AE=89?= =?UTF-8?q?=E8=A3=85=E5=8C=85CI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/main.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 727bea45..285c1e68 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -691,7 +691,9 @@ jobs: extra-assets-x86: ./ColdClear/x86/CCloader.dll ./ColdClear/x86/cold_clear.dll extra-assets-x64: ./ColdClear/x64/CCloader.dll ./ColdClear/x64/cold_clear.dll product-name: ${{ steps.process-app-name.outputs.product-name }} - version-string: ${{ needs.get-info.outputs.version-string }} + app-id: ${{ secrets.WINDOWS_APP_ID }} + project-website: https://www.studio26f.org/ + installer-languages: ChineseSimplified.isl English.isl Japanese.isl French.isl output-folder: ${{ env.OUTPUT_FOLDER }} - name: Upload 32-bit artifact uses: actions/upload-artifact@v3 From 483de501691d156d7b911b7212d4a6ce71a6b73e Mon Sep 17 00:00:00 2001 From: scdhh <51957264+shoucandanghehe@users.noreply.github.com> Date: Sun, 15 Jan 2023 01:13:41 +0800 Subject: [PATCH 06/12] Update main.yml --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 285c1e68..8ba1f069 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -683,7 +683,7 @@ jobs: dir: ./ColdClear - name: Build Windows packages id: build-packages - uses: love-actions/love-actions-windows@v1 + uses: love-actions/love-actions-windows@add-build-installer with: icon-path: ./.github/build/windows/${{ env.BUILD_TYPE }}/icon.ico rc-path: ./.github/build/windows/${{ env.BUILD_TYPE }}/template.rc From b3dfa7d7ce613d38e4efc050dd1fde078306a62b Mon Sep 17 00:00:00 2001 From: ParticleG Date: Sun, 15 Jan 2023 11:00:24 +0800 Subject: [PATCH 07/12] =?UTF-8?q?=E4=B8=8A=E4=BC=A0Windows=E5=AE=89?= =?UTF-8?q?=E8=A3=85=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/main.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 8ba1f069..71dba168 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -705,6 +705,11 @@ jobs: with: name: ${{ needs.get-info.outputs.base-name }}_Windows_x64 path: ${{ env.OUTPUT_FOLDER }}/${{ steps.process-app-name.outputs.product-name }}_x64.zip + - name: Upload installer artifact + uses: actions/upload-artifact@v3 + with: + name: ${{ needs.get-info.outputs.base-name }}_Windows_installer + path: ${{ env.OUTPUT_FOLDER }}/${{ steps.process-app-name.outputs.product-name }}_installer.exe - name: Prepare for release if: ${{ startsWith(github.ref, 'refs/tags/pre') || startsWith(github.ref, 'refs/tags/v') }} shell: bash @@ -712,6 +717,7 @@ jobs: mkdir -p ${{ env.RELEASE_FOLDER }} cp ${{ env.OUTPUT_FOLDER }}/${{ steps.process-app-name.outputs.product-name }}_x86.zip ${{ env.RELEASE_FOLDER }}/${{ steps.process-app-name.outputs.product-name }}_Windows_x86.zip cp ${{ env.OUTPUT_FOLDER }}/${{ steps.process-app-name.outputs.product-name }}_x64.zip ${{ env.RELEASE_FOLDER }}/${{ steps.process-app-name.outputs.product-name }}_Windows_x64.zip + cp ${{ env.OUTPUT_FOLDER }}/${{ steps.process-app-name.outputs.product-name }}_installer.exe ${{ env.RELEASE_FOLDER }}/${{ steps.process-app-name.outputs.product-name }}_Windows_installer.exe - name: Upload release if: ${{ startsWith(github.ref, 'refs/tags/pre') || startsWith(github.ref, 'refs/tags/v') }} uses: ncipollo/release-action@v1 @@ -720,6 +726,7 @@ jobs: artifacts: | ${{ env.RELEASE_FOLDER }}/${{ steps.process-app-name.outputs.product-name }}_Windows_x86.zip ${{ env.RELEASE_FOLDER }}/${{ steps.process-app-name.outputs.product-name }}_Windows_x64.zip + ${{ env.RELEASE_FOLDER }}/${{ steps.process-app-name.outputs.product-name }}_Windows_installer.exe body: ${{ needs.get-info.outputs.update-note }} name: ${{ needs.get-info.outputs.update-title }} prerelease: ${{ startsWith(github.ref, 'refs/tags/pre') }} From 969aa87a103bbf1dc421b6a98e25e55da9de7796 Mon Sep 17 00:00:00 2001 From: ParticleG Date: Sun, 15 Jan 2023 12:37:17 +0800 Subject: [PATCH 08/12] =?UTF-8?q?=E8=B0=83=E7=94=A8WIndows=20Action?= =?UTF-8?q?=E5=89=8D=E6=9B=B4=E6=96=B0Tenplate?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/main.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 71dba168..ce03c45b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -681,6 +681,19 @@ jobs: with: platform: Windows dir: ./ColdClear + - name: Update Windows template + shell: python3 {0} + run: | + version_string = "${{ needs.get-info.outputs.version-string }}" + file_version = (f"{version_string.replace('.', ',')},0") + with open("./.github/build/windows/${{ env.BUILD_TYPE }}/template.rc", "r+", encoding="utf8") as file: + data = file.read() + data = data\ + .replace("@Version", version_string)\ + .replace("@FileVersion", file_version) + file.seek(0) + file.truncate() + file.write(data) - name: Build Windows packages id: build-packages uses: love-actions/love-actions-windows@add-build-installer From 1699a2b68a85ad3ba31f316f7b01f4f452c11b98 Mon Sep 17 00:00:00 2001 From: ParticleG Date: Thu, 19 Jan 2023 01:02:38 +0800 Subject: [PATCH 09/12] - Update workflow --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index ce03c45b..84dd0294 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -696,7 +696,7 @@ jobs: file.write(data) - name: Build Windows packages id: build-packages - uses: love-actions/love-actions-windows@add-build-installer + uses: love-actions/love-actions-windows@main with: icon-path: ./.github/build/windows/${{ env.BUILD_TYPE }}/icon.ico rc-path: ./.github/build/windows/${{ env.BUILD_TYPE }}/template.rc From 8b61bd7d8abd73c88436d93bb2f170731d8beaf0 Mon Sep 17 00:00:00 2001 From: ParticleG Date: Thu, 19 Jan 2023 14:33:46 +0800 Subject: [PATCH 10/12] - Update workflow --- .github/workflows/main.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 84dd0294..f9061075 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -193,7 +193,7 @@ jobs: dir: ./libAndroid - name: Build Android packages id: build-packages - uses: love-actions/love-actions-android@v1 + uses: love-actions/love-actions-android@main with: app-name: ${{ needs.get-info.outputs.app-name }} bundle-id: ${{ steps.process-app-name.outputs.bundle-id }} @@ -205,6 +205,7 @@ jobs: love-package: ${{ env.CORE_LOVE_PACKAGE_PATH }} resource-path: ./.github/build/android/${{ env.BUILD_TYPE }}/res extra-assets: ./libAndroid/ + custom-scheme: studio26f://oauth product-name: ${{ steps.process-app-name.outputs.product-name }} version-string: ${{ needs.get-info.outputs.version-string }} version-code: ${{ needs.get-info.outputs.version-code }} From 97472e9a17c31425e3777d0bdc5f2878d3b6a190 Mon Sep 17 00:00:00 2001 From: ParticleG Date: Mon, 23 Jan 2023 00:48:20 +0800 Subject: [PATCH 11/12] =?UTF-8?q?=E6=9B=B4=E6=96=B0API=E7=AB=AF=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/main.lua b/main.lua index bd6e4eaa..64d3b798 100644 --- a/main.lua +++ b/main.lua @@ -601,8 +601,8 @@ for _,fileName in next,fs.getDirectoryItems('replay') do end table.sort(REPLAY,function(a,b) return a.fileName>b.fileName end) -WS.switchHost('cafuuchino1.3322.org','10027','/techmino/ws/v1') -HTTP.setHost("cafuuchino1.3322.org:10027") +WS.switchHost('cafuuchino1.3322.org','10026','/techmino/ws/v1') +HTTP.setHost("cafuuchino1.3322.org:10026") HTTP.setThreadCount(1) table.insert(_LOADTIMELIST_,("Load Resources: %.3fs"):format(TIME()-_LOADTIME_)) From b914cb26beb0830de20d57327b9e4d3b8bfff061 Mon Sep 17 00:00:00 2001 From: ParticleG Date: Mon, 23 Jan 2023 00:59:56 +0800 Subject: [PATCH 12/12] =?UTF-8?q?=E4=BD=BF=E7=94=A8v1=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E7=9A=84Windows=20CI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f9061075..f01f2050 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -697,7 +697,7 @@ jobs: file.write(data) - name: Build Windows packages id: build-packages - uses: love-actions/love-actions-windows@main + uses: love-actions/love-actions-windows@v1 with: icon-path: ./.github/build/windows/${{ env.BUILD_TYPE }}/icon.ico rc-path: ./.github/build/windows/${{ env.BUILD_TYPE }}/template.rc