Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
Ygopro Arena Web
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
MyCard
Ygopro Arena Web
Commits
d2b9e1c9
Commit
d2b9e1c9
authored
Jul 13, 2023
by
铃兰
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
profile页面增加了每月胜率,cards页面增加了期间使用率计算。
parent
24719f2c
Pipeline
#22662
passed with stages
in 2 minutes and 20 seconds
Changes
5
Pipelines
1
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
1144 additions
and
941 deletions
+1144
-941
src/api.js
src/api.js
+154
-149
src/components/Cards.vue
src/components/Cards.vue
+513
-434
src/components/Profile.vue
src/components/Profile.vue
+399
-290
src/components/lang.js
src/components/lang.js
+2
-0
src/components/tb_lang.js
src/components/tb_lang.js
+76
-68
No files found.
src/api.js
View file @
d2b9e1c9
...
...
@@ -10,154 +10,159 @@ const URL = "https://sapi.moecube.com:444/ygopro/arena"
export
default
class
Api
{
static
uploadUrl
=
`
${
URL
}
/upload`
static
implUrl
=
`
${
URL
}
/impltrack`
static
clkUrl
=
`
${
URL
}
/clktrack`
static
getMonthlyWinRate
()
{
let
monthlyWinRateUrl
=
'
https://sapi.moecube.com:444/ygopro/analytics/matchup/type?source=mycard-athletic
'
return
Vue
.
http
.
get
(
monthlyWinRateUrl
)
}
static
getDownloadUrl
(
url
)
{
url
=
url
.
slice
(
7
)
var
downloadUrl
=
`
${
URL
}
/download/
${
url
}
`
return
downloadUrl
}
static
getCount
(
opt
)
{
var
request
=
query
.
stringify
(
opt
);
const
url
=
`
${
config
.
COUNTER_URL
}
?
${
request
}
`
;
return
Vue
.
http
.
get
(
url
);
}
static
getUserInfo
(
opt
)
{
var
request
=
query
.
stringify
(
opt
);
const
url
=
`
${
URL
}
/user?
${
request
}
`
;
return
Vue
.
http
.
get
(
url
);
}
static
getUsers
(
opt
)
{
var
request
=
query
.
stringify
(
opt
);
const
url
=
`
${
URL
}
/users?
${
request
}
`
;
return
Vue
.
http
.
get
(
url
);
}
static
getUserDueHistory
(
opt
)
{
return
Vue
.
http
.
get
(
`
${
URL
}
/history`
,
{
'
params
'
:
opt
});
}
static
getDownloadUrls
()
{
return
Vue
.
http
.
get
(
'
https://api.github.com/repos/mycard/mycard/releases/latest
'
)
}
static
getAvatar
(
opt
)
{
return
Vue
.
http
.
get
(
`https://sapi.moecube.com:444/accounts/users/
${
opt
.
username
}
.avatar`
)
}
static
getCardInfo
(
opt
)
{
var
request
=
query
.
stringify
(
opt
);
const
url
=
`
${
URL
}
/cardinfo?
${
request
}
`
;
return
Vue
.
http
.
get
(
url
);
}
static
getDeckInfo
(
opt
)
{
return
Vue
.
http
.
get
(
`
${
URL
}
/deckinfo`
,
{
'
params
'
:
opt
});
}
static
saveDeck
(
opt
)
{
const
url
=
`
${
URL
}
/deckinfo`
return
Vue
.
http
.
post
(
url
,
opt
,
{
'
emulateJSON
'
:
true
});
}
static
saveDeckDemo
(
opt
)
{
const
url
=
`
${
URL
}
/deckdemo`
return
Vue
.
http
.
post
(
url
,
opt
,
{
'
emulateJSON
'
:
true
});
}
static
getReport
(
opt
)
{
return
Vue
.
http
.
get
(
`
${
URL
}
/report`
,
{
'
params
'
:
opt
});
}
static
getVoteList
(
opt
)
{
return
Vue
.
http
.
get
(
`
${
URL
}
/votes`
,
{
'
params
'
:
opt
});
}
static
saveVote
(
opt
)
{
const
url
=
`
${
URL
}
/votes`
return
Vue
.
http
.
post
(
url
,
opt
,
{
'
emulateJSON
'
:
true
});
}
static
voteStatus
(
opt
)
{
const
url
=
`
${
URL
}
/voteStatus`
return
Vue
.
http
.
post
(
url
,
opt
,
{
'
emulateJSON
'
:
true
});
}
static
getVote
(
opt
)
{
return
Vue
.
http
.
get
(
`
${
URL
}
/vote`
,
{
'
params
'
:
opt
});
}
static
submitVote
(
opt
)
{
const
url
=
`
${
URL
}
/submitVote`
return
Vue
.
http
.
post
(
url
,
opt
,
{
'
emulateJSON
'
:
true
});
}
static
saveAds
(
opt
)
{
const
url
=
`
${
URL
}
/ads`
return
Vue
.
http
.
post
(
url
,
opt
,
{
'
emulateJSON
'
:
true
});
}
static
getAdsList
(
opt
)
{
return
Vue
.
http
.
get
(
`
${
URL
}
/ads`
,
{
'
params
'
:
opt
});
}
static
adsStatus
(
opt
)
{
const
url
=
`
${
URL
}
/adsStatus`
return
Vue
.
http
.
post
(
url
,
opt
,
{
'
emulateJSON
'
:
true
});
}
static
getAd
(
opt
)
{
return
Vue
.
http
.
get
(
`
${
URL
}
/getAd`
,
{
'
params
'
:
opt
});
}
static
adClick
(
opt
)
{
const
url
=
`
${
URL
}
/adClick`
return
Vue
.
http
.
post
(
url
,
opt
,
{
'
emulateJSON
'
:
true
});
}
static
adImpl
(
opt
)
{
const
url
=
`
${
URL
}
/adImpl`
return
Vue
.
http
.
post
(
url
,
opt
,
{
'
emulateJSON
'
:
true
});
}
static
getFirstWin
(
opt
)
{
var
request
=
query
.
stringify
(
opt
);
const
url
=
`
${
URL
}
/firstwin?
${
request
}
`
;
return
Vue
.
http
.
get
(
url
);
}
static
adSwitchChange
(
opt
)
{
const
url
=
`
${
URL
}
/adSwitchChange`
return
Vue
.
http
.
post
(
url
,
opt
,
{
'
emulateJSON
'
:
true
});
}
static
saveActivity
(
opt
)
{
const
url
=
`
${
URL
}
/activity`
return
Vue
.
http
.
post
(
url
,
opt
,
{
'
emulateJSON
'
:
true
});
}
static
saveLabel
(
opt
)
{
const
url
=
`
${
URL
}
/label`
return
Vue
.
http
.
post
(
url
,
opt
,
{
'
emulateJSON
'
:
true
});
}
static
getLabel
(
opt
)
{
return
Vue
.
http
.
get
(
`
${
URL
}
/label`
,
{
'
params
'
:
{}
});
}
static
uploadUrl
=
`
${
URL
}
/upload`
static
implUrl
=
`
${
URL
}
/impltrack`
static
clkUrl
=
`
${
URL
}
/clktrack`
static
getMonthlyWinRate
()
{
let
monthlyWinRateUrl
=
'
https://sapi.moecube.com:444/ygopro/analytics/matchup/type?source=mycard-athletic
'
return
Vue
.
http
.
get
(
monthlyWinRateUrl
)
}
static
getDownloadUrl
(
url
)
{
url
=
url
.
slice
(
7
)
var
downloadUrl
=
`
${
URL
}
/download/
${
url
}
`
return
downloadUrl
}
static
getCount
(
opt
)
{
var
request
=
query
.
stringify
(
opt
);
const
url
=
`
${
config
.
COUNTER_URL
}
?
${
request
}
`
;
return
Vue
.
http
.
get
(
url
);
}
static
getUserInfo
(
opt
)
{
var
request
=
query
.
stringify
(
opt
);
const
url
=
`
${
URL
}
/user?
${
request
}
`
;
return
Vue
.
http
.
get
(
url
);
}
static
getUsers
(
opt
)
{
var
request
=
query
.
stringify
(
opt
);
const
url
=
`
${
URL
}
/users?
${
request
}
`
;
return
Vue
.
http
.
get
(
url
);
}
static
getUserDueHistory
(
opt
)
{
return
Vue
.
http
.
get
(
`
${
URL
}
/history`
,
{
'
params
'
:
opt
});
}
static
getDownloadUrls
()
{
return
Vue
.
http
.
get
(
'
https://api.github.com/repos/mycard/mycard/releases/latest
'
)
}
static
getAvatar
(
opt
)
{
return
Vue
.
http
.
get
(
`https://sapi.moecube.com:444/accounts/users/
${
opt
.
username
}
.avatar`
)
}
static
getCardInfo
(
opt
)
{
var
request
=
query
.
stringify
(
opt
);
const
url
=
`
${
URL
}
/cardinfo?
${
request
}
`
;
return
Vue
.
http
.
get
(
url
);
}
static
getDeckInfo
(
opt
)
{
return
Vue
.
http
.
get
(
`
${
URL
}
/deckinfo`
,
{
'
params
'
:
opt
});
}
static
saveDeck
(
opt
)
{
const
url
=
`
${
URL
}
/deckinfo`
return
Vue
.
http
.
post
(
url
,
opt
,
{
'
emulateJSON
'
:
true
});
}
static
saveDeckDemo
(
opt
)
{
const
url
=
`
${
URL
}
/deckdemo`
return
Vue
.
http
.
post
(
url
,
opt
,
{
'
emulateJSON
'
:
true
});
}
static
getReport
(
opt
)
{
return
Vue
.
http
.
get
(
`
${
URL
}
/report`
,
{
'
params
'
:
opt
});
}
static
getVoteList
(
opt
)
{
return
Vue
.
http
.
get
(
`
${
URL
}
/votes`
,
{
'
params
'
:
opt
});
}
static
saveVote
(
opt
)
{
const
url
=
`
${
URL
}
/votes`
return
Vue
.
http
.
post
(
url
,
opt
,
{
'
emulateJSON
'
:
true
});
}
static
voteStatus
(
opt
)
{
const
url
=
`
${
URL
}
/voteStatus`
return
Vue
.
http
.
post
(
url
,
opt
,
{
'
emulateJSON
'
:
true
});
}
static
getVote
(
opt
)
{
return
Vue
.
http
.
get
(
`
${
URL
}
/vote`
,
{
'
params
'
:
opt
});
}
static
submitVote
(
opt
)
{
const
url
=
`
${
URL
}
/submitVote`
return
Vue
.
http
.
post
(
url
,
opt
,
{
'
emulateJSON
'
:
true
});
}
static
saveAds
(
opt
)
{
const
url
=
`
${
URL
}
/ads`
return
Vue
.
http
.
post
(
url
,
opt
,
{
'
emulateJSON
'
:
true
});
}
static
getAdsList
(
opt
)
{
return
Vue
.
http
.
get
(
`
${
URL
}
/ads`
,
{
'
params
'
:
opt
});
}
static
adsStatus
(
opt
)
{
const
url
=
`
${
URL
}
/adsStatus`
return
Vue
.
http
.
post
(
url
,
opt
,
{
'
emulateJSON
'
:
true
});
}
static
getAd
(
opt
)
{
return
Vue
.
http
.
get
(
`
${
URL
}
/getAd`
,
{
'
params
'
:
opt
});
}
static
adClick
(
opt
)
{
const
url
=
`
${
URL
}
/adClick`
return
Vue
.
http
.
post
(
url
,
opt
,
{
'
emulateJSON
'
:
true
});
}
static
adImpl
(
opt
)
{
const
url
=
`
${
URL
}
/adImpl`
return
Vue
.
http
.
post
(
url
,
opt
,
{
'
emulateJSON
'
:
true
});
}
static
getFirstWin
(
opt
)
{
var
request
=
query
.
stringify
(
opt
);
const
url
=
`
${
URL
}
/firstwin?
${
request
}
`
;
return
Vue
.
http
.
get
(
url
);
}
static
adSwitchChange
(
opt
)
{
const
url
=
`
${
URL
}
/adSwitchChange`
return
Vue
.
http
.
post
(
url
,
opt
,
{
'
emulateJSON
'
:
true
});
}
static
saveActivity
(
opt
)
{
const
url
=
`
${
URL
}
/activity`
return
Vue
.
http
.
post
(
url
,
opt
,
{
'
emulateJSON
'
:
true
});
}
static
saveLabel
(
opt
)
{
const
url
=
`
${
URL
}
/label`
return
Vue
.
http
.
post
(
url
,
opt
,
{
'
emulateJSON
'
:
true
});
}
static
getLabel
(
opt
)
{
return
Vue
.
http
.
get
(
`
${
URL
}
/label`
,
{
'
params
'
:
{}});
}
static
getMonthlyHistory
(
opt
)
{
const
url
=
`https://sapi.moecube.com:444/ygopro/arena/historyScore`
;
return
Vue
.
http
.
get
(
url
,
{
params
:
opt
});
}
// https://sapi.moecube.com:444/ygopro/arena/historyScore?username=id&season=yyyy-mm
}
src/components/Cards.vue
View file @
d2b9e1c9
This diff is collapsed.
Click to expand it.
src/components/Profile.vue
View file @
d2b9e1c9
This diff is collapsed.
Click to expand it.
src/components/lang.js
View file @
d2b9e1c9
...
...
@@ -41,6 +41,7 @@ module.exports = {
dueHistory
:
'
最近决斗记录
'
,
athleticDueHistory
:
'
竞技场决斗记录
'
,
entertainDueHistory
:
'
娱乐场决斗记录
'
,
monthlyHistory
:
'
每月决斗记录
'
,
tagInfo
:
'
绿色表示获胜方,红色则表示掉线。
'
,
rates
:
'
卡组胜率
'
,
...
...
@@ -155,6 +156,7 @@ module.exports = {
side
:
'
Side
'
,
extra
:
'
Extra
'
,
dueHistory
:
'
Recent Due History
'
,
monthlyHistory
:
'
Monthly Rank Record
'
,
athleticDueHistory
:
'
Athletic Due History
'
,
entertainDueHistory
:
'
Entertain Due History
'
,
tagInfo
:
'
Green tag represents the winner.Red tag represents player lost connection.
'
,
...
...
src/components/tb_lang.js
View file @
d2b9e1c9
module
.
exports
=
{
cn
:
{
"
sProcessing
"
:
"
处理中...
"
,
"
sLengthMenu
"
:
"
显示 _MENU_ 项结果
"
,
"
sZeroRecords
"
:
"
没有匹配结果
"
,
"
sInfo
"
:
"
显示第 _START_ 至 _END_ 项结果,共 _TOTAL_ 项
"
,
"
sInfoEmpty
"
:
"
显示第 0 至 0 项结果,共 0 项
"
,
"
sInfoFiltered
"
:
"
(由 _MAX_ 项结果过滤)
"
,
"
sInfoPostFix
"
:
""
,
"
sSearch
"
:
"
搜索:
"
,
"
sUrl
"
:
""
,
"
sEmptyTable
"
:
"
表中数据为空
"
,
"
sLoadingRecords
"
:
"
载入中...
"
,
"
sInfoThousands
"
:
"
,
"
,
"
oPaginate
"
:
{
"
sFirst
"
:
"
首页
"
,
"
sPrevious
"
:
"
上页
"
,
"
sNext
"
:
"
下页
"
,
"
sLast
"
:
"
末页
"
},
"
oAria
"
:
{
"
sSortAscending
"
:
"
: 以升序排列此列
"
,
"
sSortDescending
"
:
"
: 以降序排列此列
"
},
rank
:
"
排名
"
,
name
:
"
用户名
"
,
exp
:
"
EXP
"
,
pt
:
"
D.P
"
,
win
:
"
胜局
"
,
lose
:
"
负局
"
,
wl
:
"
胜率
"
,
cardName
:
"
卡名
"
,
used
:
"
使用量
"
,
put1
:
"
投入1
"
,
put2
:
"
投入2
"
,
put3
:
"
投入3
"
,
cn
:
{
"
sProcessing
"
:
"
处理中...
"
,
"
sLengthMenu
"
:
"
显示 _MENU_ 项结果
"
,
"
sZeroRecords
"
:
"
没有匹配结果
"
,
"
sInfo
"
:
"
显示第 _START_ 至 _END_ 项结果,共 _TOTAL_ 项
"
,
"
sInfoEmpty
"
:
"
显示第 0 至 0 项结果,共 0 项
"
,
"
sInfoFiltered
"
:
"
(由 _MAX_ 项结果过滤)
"
,
"
sInfoPostFix
"
:
""
,
"
sSearch
"
:
"
搜索:
"
,
"
sUrl
"
:
""
,
"
sEmptyTable
"
:
"
表中数据为空
"
,
"
sLoadingRecords
"
:
"
载入中...
"
,
"
sInfoThousands
"
:
"
,
"
,
"
oPaginate
"
:
{
"
sFirst
"
:
"
首页
"
,
"
sPrevious
"
:
"
上页
"
,
"
sNext
"
:
"
下页
"
,
"
sLast
"
:
"
末页
"
},
"
oAria
"
:
{
"
sSortAscending
"
:
"
: 以升序排列此列
"
,
"
sSortDescending
"
:
"
: 以降序排列此列
"
},
rank
:
"
排名
"
,
name
:
"
用户名
"
,
exp
:
"
EXP
"
,
pt
:
"
D.P
"
,
win
:
"
胜局
"
,
lose
:
"
负局
"
,
wl
:
"
胜率
"
,
athleticWin
:
'
竞技场胜利
'
,
athleticLose
:
'
竞技场失败
'
,
season
:
'
时间
'
,
total
:
'
合计
'
,
cardName
:
"
卡名
"
,
used
:
"
使用量
"
,
put1
:
"
投入1
"
,
put2
:
"
投入2
"
,
put3
:
"
投入3
"
,
deck
:
"
卡组
"
,
count
:
"
使用数
"
,
topTags
:
"
热门标签
"
,
deck
:
"
卡组
"
,
count
:
"
使用数
"
,
PickRate
:
"
使用率
"
,
topTags
:
"
热门标签
"
,
playerA
:
'
玩家A
'
,
playerB
:
'
玩家B
'
,
startTime
:
'
开始时间
'
,
endTime
:
'
结束时间
'
,
playerA
:
'
玩家A
'
,
playerB
:
'
玩家B
'
,
startTime
:
'
开始时间
'
,
endTime
:
'
结束时间
'
,
},
en
:
{
"
oPaginate
"
:
{
"
sPrevious
"
:
"
Pre
"
,
},
en
:
{
"
oPaginate
"
:
{
"
sPrevious
"
:
"
Pre
"
,
},
rank
:
"
Rank
"
,
name
:
"
Name
"
,
exp
:
"
EXP
"
,
pt
:
"
D.P
"
,
win
:
"
Win
"
,
lose
:
"
Lose
"
,
wl
:
"
W/L
"
,
cardName
:
"
Card Name
"
,
used
:
"
Used
"
,
put1
:
"
Put one
"
,
put2
:
"
Put two
"
,
put3
:
"
Put three
"
,
rank
:
"
Rank
"
,
name
:
"
Name
"
,
exp
:
"
EXP
"
,
pt
:
"
D.P
"
,
win
:
"
Win
"
,
lose
:
"
Lose
"
,
wl
:
"
W/L
"
,
deck
:
"
Deck
"
,
count
:
"
Count
"
,
topTags
:
"
Top Tags
"
,
cardName
:
"
Card Name
"
,
used
:
"
Used
"
,
PickRate
:
"
Pick Rate
"
,
put1
:
"
Put one
"
,
put2
:
"
Put two
"
,
put3
:
"
Put three
"
,
athleticWin
:
'
Win
'
,
athleticLose
:
'
Lose
'
,
season
:
'
Time
'
,
total
:
'
Total
'
,
deck
:
"
Deck
"
,
count
:
"
Count
"
,
topTags
:
"
Top Tags
"
,
playerA
:
'
PlayerA
'
,
playerB
:
'
PlayerA
'
,
startTime
:
'
Start Time
'
,
endTime
:
'
End Time
'
,
}
playerA
:
'
PlayerA
'
,
playerB
:
'
PlayerA
'
,
startTime
:
'
Start Time
'
,
endTime
:
'
End Time
'
,
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment