Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro-arena-api
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-api
Commits
38d0a609
Commit
38d0a609
authored
Mar 02, 2017
by
ganjingcun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
a
parent
d889ab1c
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
158 additions
and
27 deletions
+158
-27
cardinfo.json
cardinfo.json
+118
-0
routes/api.js
routes/api.js
+27
-18
test_read_conf.js
test_read_conf.js
+13
-9
No files found.
cardinfo.json
0 → 100644
View file @
38d0a609
{
"cn"
:
{
"1010"
:
"地"
,
"1011"
:
"水"
,
"1012"
:
"炎"
,
"1013"
:
"风"
,
"1014"
:
"光"
,
"1015"
:
"暗"
,
"1016"
:
"神"
,
"1020"
:
"战士"
,
"1021"
:
"魔法师"
,
"1022"
:
"天使"
,
"1023"
:
"恶魔"
,
"1024"
:
"不死"
,
"1025"
:
"机械"
,
"1026"
:
"水"
,
"1027"
:
"炎"
,
"1028"
:
"岩石"
,
"1029"
:
"鸟兽"
,
"1030"
:
"植物"
,
"1031"
:
"昆虫"
,
"1032"
:
"雷"
,
"1033"
:
"龙"
,
"1034"
:
"兽"
,
"1035"
:
"兽战士"
,
"1036"
:
"恐龙"
,
"1037"
:
"鱼"
,
"1038"
:
"海龙"
,
"1039"
:
"爬虫"
,
"1040"
:
"念动力"
,
"1041"
:
"幻神兽"
,
"1042"
:
"创造神"
,
"1043"
:
"幻龙"
,
"1050"
:
"怪兽"
,
"1051"
:
"魔法"
,
"1052"
:
"陷阱"
,
"1053"
:
"???"
,
"1054"
:
"通常"
,
"1055"
:
"效果"
,
"1056"
:
"融合"
,
"1057"
:
"仪式"
,
"1058"
:
"陷阱怪兽"
,
"1059"
:
"灵魂"
,
"1060"
:
"同盟"
,
"1061"
:
"二重"
,
"1062"
:
"调整"
,
"1063"
:
"同调"
,
"1064"
:
"衍生物"
,
"1065"
:
"???"
,
"1066"
:
"速攻"
,
"1067"
:
"永续"
,
"1068"
:
"装备"
,
"1069"
:
"场地"
,
"1070"
:
"反击"
,
"1071"
:
"反转"
,
"1072"
:
"卡通"
,
"1073"
:
"超量"
,
"1074"
:
"灵摆"
},
"en"
:
{
"1010"
:
"EARTH"
,
"1011"
:
"WATER"
,
"1012"
:
"FIRE"
,
"1013"
:
"WIND"
,
"1014"
:
"LIGHT"
,
"1015"
:
"DARK"
,
"1016"
:
"DIVINE"
,
"1020"
:
"Warrior"
,
"1021"
:
"Spellcaster"
,
"1022"
:
"Fairy"
,
"1023"
:
"Fiend"
,
"1024"
:
"Zombie"
,
"1025"
:
"Machine"
,
"1026"
:
"Aqua"
,
"1027"
:
"Pyro"
,
"1028"
:
"Rock"
,
"1029"
:
"Winged Beast"
,
"1030"
:
"Plant"
,
"1031"
:
"Insect"
,
"1032"
:
"Thunder"
,
"1033"
:
"Dragon"
,
"1034"
:
"Beast"
,
"1035"
:
"Beast-Warrior"
,
"1036"
:
"Dinosaur"
,
"1037"
:
"Fish"
,
"1038"
:
"Sea Serpent"
,
"1039"
:
"Reptile"
,
"1040"
:
"Psychic"
,
"1041"
:
"Divine-Beast"
,
"1042"
:
"Creator God"
,
"1043"
:
"Wyrm"
,
"1050"
:
"Monster"
,
"1051"
:
"Spell"
,
"1052"
:
"Trap"
,
"1053"
:
"???"
,
"1054"
:
"Normal"
,
"1055"
:
"Effect"
,
"1056"
:
"Fusion"
,
"1057"
:
"Ritual"
,
"1058"
:
"Trap Monster"
,
"1059"
:
"Spirit"
,
"1060"
:
"Union"
,
"1061"
:
"Gemini"
,
"1062"
:
"Tuner"
,
"1063"
:
"Synchro"
,
"1064"
:
"Token"
,
"1065"
:
"???"
,
"1066"
:
"Quick-Play"
,
"1067"
:
"Continuous"
,
"1068"
:
"Equip"
,
"1069"
:
"Field"
,
"1070"
:
"Counter"
,
"1071"
:
"Flip"
,
"1072"
:
"Toon"
,
"1073"
:
"Xyz"
,
"1074"
:
"Pendulum"
}
}
\ No newline at end of file
routes/api.js
View file @
38d0a609
...
@@ -8,13 +8,12 @@ var eventproxy = require('eventproxy')
...
@@ -8,13 +8,12 @@ var eventproxy = require('eventproxy')
var
utils
=
require
(
'
../utils/utils
'
)
var
utils
=
require
(
'
../utils/utils
'
)
var
sqlite3
=
require
(
'
sqlite3
'
).
verbose
();
var
sqlite3
=
require
(
'
sqlite3
'
).
verbose
();
// create a config to configure both pooling behavior
// and client options
// note: all config is optional and the environment variables
// will be read if the config is not present
var
config
=
require
(
'
../db.config
'
)
var
config
=
require
(
'
../db.config
'
)
var
cardinfo
=
require
(
'
../cardinfo
'
)
var
attrOffset
=
1010
var
raceOffset
=
1020
var
typeOffset
=
1050
//this initializes a connection pool
//this initializes a connection pool
//it will keep idle connections open for a 30 seconds
//it will keep idle connections open for a 30 seconds
...
@@ -25,8 +24,6 @@ var pool = new pg.Pool(config)
...
@@ -25,8 +24,6 @@ var pool = new pg.Pool(config)
var
dbEn
=
new
sqlite3
.
Database
(
'
ygopro-database/locales/en-US/cards.cdb
'
);
var
dbEn
=
new
sqlite3
.
Database
(
'
ygopro-database/locales/en-US/cards.cdb
'
);
var
dbCn
=
new
sqlite3
.
Database
(
'
ygopro-database/locales/zh-CN/cards.cdb
'
);
var
dbCn
=
new
sqlite3
.
Database
(
'
ygopro-database/locales/zh-CN/cards.cdb
'
);
pool
.
on
(
'
error
'
,
function
(
err
,
client
)
{
pool
.
on
(
'
error
'
,
function
(
err
,
client
)
{
// if an error is encountered by a client while it sits idle in the pool
// if an error is encountered by a client while it sits idle in the pool
// the pool itself will emit an error event with both the error and
// the pool itself will emit an error event with both the error and
...
@@ -290,11 +287,10 @@ router.get('/cardinfo', function (req, res) {
...
@@ -290,11 +287,10 @@ router.get('/cardinfo', function (req, res) {
db
=
dbEn
db
=
dbEn
}
}
var
result
=
{}
;
var
result
=
{};
db
.
serialize
(
function
()
{
db
.
serialize
(
function
()
{
db
.
get
(
`SELECT name , desc, str1, str2, str3 FROM texts where id =
${
id
}
`
,
function
(
err
,
row
)
{
db
.
get
(
`SELECT name , desc, str1, str2, str3 FROM texts where id =
${
id
}
`
,
function
(
err
,
row
)
{
if
(
err
)
{
if
(
err
)
{
...
@@ -324,13 +320,15 @@ router.get('/cardinfo', function (req, res) {
...
@@ -324,13 +320,15 @@ router.get('/cardinfo', function (req, res) {
result
.
ot
=
row
.
ot
result
.
ot
=
row
.
ot
result
.
alias
=
row
.
alias
result
.
alias
=
row
.
alias
result
.
setcode
=
row
.
setcode
result
.
setcode
=
row
.
setcode
result
.
type
=
row
.
type
result
.
atk
=
row
.
atk
result
.
atk
=
row
.
atk
result
.
def
=
row
.
def
result
.
def
=
row
.
def
result
.
level
=
row
.
level
result
.
level
=
row
.
level
result
.
race
=
row
.
race
result
.
attribute
=
row
.
attribute
result
.
category
=
row
.
category
result
.
category
=
row
.
category
result
.
type
=
getStringValueByMysticalNumber
(
lang
,
typeOffset
,
row
.
type
)
result
.
race
=
getStringValueByMysticalNumber
(
lang
,
raceOffset
,
row
.
race
)
result
.
attribute
=
getStringValueByMysticalNumber
(
lang
,
attrOffset
,
row
.
attribute
)
res
.
json
(
result
);
res
.
json
(
result
);
});
});
...
@@ -536,4 +534,15 @@ createUser = function (username, ep, epEventName) {
...
@@ -536,4 +534,15 @@ createUser = function (username, ep, epEventName) {
})
})
}
}
var
getStringValueByMysticalNumber
=
function
(
lang
,
offset
,
number
)
{
for
(
var
i
=
0
;
i
<
32
;
i
++
)
{
if
(
number
&
(
1
<<
i
))
{
var
index
=
offset
+
i
var
key
=
index
.
toString
()
return
cardinfo
[
lang
][
key
]
}
}
return
""
}
module
.
exports
=
router
module
.
exports
=
router
test_read_conf.js
View file @
38d0a609
...
@@ -18,9 +18,8 @@ async.parallel([
...
@@ -18,9 +18,8 @@ async.parallel([
return
[
strs
[
1
],
strs
[
2
]
]
return
[
strs
[
1
],
strs
[
2
]
]
}).
filter
((
s
)
=>
{
}).
filter
((
s
)
=>
{
var
key
=
s
[
0
]
var
key
=
s
[
0
]
return
!
isNaN
(
key
)
&&
(
key
>
1019
&&
key
<
1080
)
return
!
isNaN
(
key
)
&&
(
key
>
=
1010
&&
key
<
1080
)
}).
map
(
s
=>
{
}).
map
(
s
=>
{
console
.
log
(
s
)
races
[
s
[
0
]]
=
s
[
1
]
races
[
s
[
0
]]
=
s
[
1
]
})
})
callback
(
null
,
races
)
callback
(
null
,
races
)
...
@@ -35,18 +34,23 @@ async.parallel([
...
@@ -35,18 +34,23 @@ async.parallel([
return
s
.
startsWith
(
"
!
"
)
return
s
.
startsWith
(
"
!
"
)
}).
map
(
s
=>
{
}).
map
(
s
=>
{
let
strs
=
s
.
split
(
"
"
)
let
strs
=
s
.
split
(
"
"
)
races
[
strs
[
1
]]
=
strs
[
2
]
return
[
strs
[
1
],
strs
[
2
]
]
return
{
[
strs
[
1
]]:
strs
[
2
]
}
}).
filter
((
s
)
=>
{
}).
filter
((
s
)
=>
{
var
key
=
Object
.
keys
(
s
)[
0
]
var
key
=
s
[
0
]
return
!
isNaN
(
key
)
&&
(
key
>
1019
&&
key
<
1080
)
return
!
isNaN
(
key
)
&&
(
key
>=
1010
&&
key
<
1080
)
}).
map
(
s
=>
{
races
[
s
[
0
]]
=
s
[
1
]
})
})
callback
(
null
,
races
)
callback
(
null
,
races
)
});
});
}],
}],
function
(
err
,
results
)
{
function
(
err
,
results
)
{
// console.log(err)
var
cardinfo_cache
=
{}
//console.log(JSON.stringify(results[0]))
cardinfo_cache
[
"
cn
"
]
=
results
[
0
]
cardinfo_cache
[
"
en
"
]
=
results
[
1
]
console
.
log
(
JSON
.
stringify
(
cardinfo_cache
))
});
});
...
@@ -54,7 +58,7 @@ async.parallel([
...
@@ -54,7 +58,7 @@ async.parallel([
// dist = {"1001":"手卡","1002":"怪兽区","1003":"魔法陷阱区","1004":"墓地","1005":"除外","1006":"额外","1007":"叠放","1008":"场地区","1009":"灵摆区","1010":"地","1011":"水","1012":"炎","1013":"风","1014":"光","1015":"暗","1016":"神","1020":"战士","1021":"魔法师","1022":"天使","1023":"恶魔","1024":"不死","1025":"机械","1026":"水","1027":"炎","1028":"岩石","1029":"鸟兽","1030":"植物","1031":"昆虫","1032":"雷","1033":"龙","1034":"兽","1035":"兽战士","1036":"恐龙","1037":"鱼","1038":"海龙","1039":"爬虫","1040":"念动力","1041":"幻神兽","1042":"创造神","1043":"幻龙"}
// dist = {"1001":"手卡","1002":"怪兽区","1003":"魔法陷阱区","1004":"墓地","1005":"除外","1006":"额外","1007":"叠放","1008":"场地区","1009":"灵摆区","1010":"地","1011":"水","1012":"炎","1013":"风","1014":"光","1015":"暗","1016":"神","1020":"战士","1021":"魔法师","1022":"天使","1023":"恶魔","1024":"不死","1025":"机械","1026":"水","1027":"炎","1028":"岩石","1029":"鸟兽","1030":"植物","1031":"昆虫","1032":"雷","1033":"龙","1034":"兽","1035":"兽战士","1036":"恐龙","1037":"鱼","1038":"海龙","1039":"爬虫","1040":"念动力","1041":"幻神兽","1042":"创造神","1043":"幻龙"}
// data = 32
// data = 32
// a
rrt
Offset = 1010
// a
ttr
Offset = 1010
// raceOffset = 1020
// raceOffset = 1020
// typeOffset = 1050
// typeOffset = 1050
// for i in range(32):
// for i in range(32):
...
...
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