Commit 38d0a609 authored by ganjingcun's avatar ganjingcun

a

parent d889ab1c
{
"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
......@@ -8,13 +8,12 @@ var eventproxy = require('eventproxy')
var utils = require('../utils/utils')
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 cardinfo = require('../cardinfo')
var attrOffset = 1010
var raceOffset = 1020
var typeOffset = 1050
//this initializes a connection pool
//it will keep idle connections open for a 30 seconds
......@@ -25,8 +24,6 @@ var pool = new pg.Pool(config)
var dbEn = new sqlite3.Database('ygopro-database/locales/en-US/cards.cdb');
var dbCn = new sqlite3.Database('ygopro-database/locales/zh-CN/cards.cdb');
pool.on('error', function (err, client) {
// 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
......@@ -290,11 +287,10 @@ router.get('/cardinfo', function (req, res) {
db = dbEn
}
var result = {} ;
var result = {};
db.serialize(function () {
db.get(`SELECT name , desc, str1, str2, str3 FROM texts where id = ${id}`, function (err, row) {
if (err) {
......@@ -324,13 +320,15 @@ router.get('/cardinfo', function (req, res) {
result.ot = row.ot
result.alias = row.alias
result.setcode = row.setcode
result.type = row.type
result.atk = row.atk
result.def = row.def
result.level = row.level
result.race = row.race
result.attribute = row.attribute
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);
});
......@@ -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
......@@ -18,9 +18,8 @@ async.parallel([
return [ strs[1], strs[2] ]
}).filter((s) => {
var key = s[0]
return !isNaN(key) && (key > 1019 && key < 1080)
return !isNaN(key) && (key >= 1010 && key < 1080)
}).map(s =>{
console.log(s)
races[s[0]] = s[1]
})
callback(null, races)
......@@ -35,18 +34,23 @@ async.parallel([
return s.startsWith("!")
}).map(s => {
let strs = s.split(" ")
races[strs[1]] = strs[2]
return { [strs[1]]: strs[2] }
return [ strs[1], strs[2] ]
}).filter((s) => {
var key = Object.keys(s)[0]
return !isNaN(key) && (key > 1019 && key < 1080)
var key = s[0]
return !isNaN(key) && (key >= 1010 && key < 1080)
}).map(s =>{
races[s[0]] = s[1]
})
callback(null, races)
});
}],
function (err, results) {
// console.log(err)
//console.log(JSON.stringify(results[0]))
var cardinfo_cache = {}
cardinfo_cache["cn"] = results[0]
cardinfo_cache["en"] = results[1]
console.log(JSON.stringify(cardinfo_cache))
});
......@@ -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":"幻龙"}
// data = 32
// arrtOffset = 1010
// attrOffset = 1010
// raceOffset = 1020
// typeOffset = 1050
// for i in range(32):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment