Commit 7917bd23 authored by nanahira's avatar nanahira

Merge branch 'master' into tcg_random

parents 33aeaa62 d22d0195
......@@ -33,6 +33,6 @@
"tournament": "node ygopro-tournament.js",
"pre": "node ygopro-pre.js",
"updated": "node ygopro-update.js",
"webhook": "node ygopro-webhook.ks"
"webhook": "node ygopro-webhook.js"
}
}
......@@ -15,6 +15,7 @@ var exec = require('child_process').exec;
var execSync = require('child_process').execSync;
var spawn = require('child_process').spawn;
var url = require('url');
var util = require('util');
var moment = require('moment');
moment.locale('zh-cn');
var loadJSON = require('load-json-file').sync;
......@@ -291,9 +292,9 @@ var pushDatas = function(callback) {
local: (done) => {
uploadCDN(config.cdn.local, config.cdn.remote + "/" + dataver, done);
},
pics: (done) => {
pics: ["local", (results, done) => {
uploadCDN(config.db_path + "pics", config.cdn.pics_remote + "pics", done);
},
}],
push: ["local", "pics", (results, done) => {
sendResponse("CDN上传全部完成。");
pushHTMLs(done);
......@@ -435,10 +436,10 @@ var packDatas = function (callback) {
run7z(["a", "-x!*.zip", "-x!.git", "-x!LICENSE", "-x!README.md", "-x!mobile.cdb", "-x!cdb", "-x!picn", "-x!field", "-x!script", "-x!pics", "-x!expansions/pics/thumbnail", "-x!picture", "ygosrv233-pre.zip", "*"], done);
}],
run7zMobile: ["preCommands", (results, done) => {
run7z(["a", "-x!*.zip", "-x!.git", "-x!LICENSE", "-x!README.md", "-x!mobile.cdb", "-x!cdb", "-x!picn", "-x!field", "-x!script", "-x!pics", "-x!expansions/pics/thumbnail", "-x!picture", "ygosrv233-pre.zip", "*"], done);
run7z(["a", "-x!*.zip", "-x!.git", "-x!LICENSE", "-x!README.md", "-x!expansions/pics", "-x!expansions/script", "-x!cdb", "-x!picn", "-x!field", "-x!pics/thumbnail", "-x!picture", "ygosrv233-pre-mobile.zip", "*"], done);
}],
run7zPro2: ["preCommands", (results, done) => {
run7z(["a", "-x!*.zip", "-x!.git", "-x!LICENSE", "-x!README.md", "-x!mobile.cdb", "-x!cdb", "-x!picn", "-x!field", "-x!script", "-x!pics", "-x!expansions/pics/thumbnail", "-x!picture", "ygosrv233-pre.zip", "*"], done);
run7z(["a", "-x!*.zip", "-x!.git", "-x!LICENSE", "-x!README.md", "-x!expansions", "-x!pics", "-x!picn", "-x!field", "ygosrv233-pre-2.zip", "*"], done);
}],
commandsAfterPC: ["run7zPC", (results, done) => {
execCommands([
......
......@@ -453,6 +453,15 @@ if settings.modules.mycard.enabled
# log.info 'ARENA INIT POST OK', response.statusCode, response.statusMessage
return
class ResolveData
constructor: (@func) ->
resolved: false
resolve: (err, data) ->
if @resolved
return false
@func(err, data)
return true
if settings.modules.challonge.enabled
challonge_module_name = 'challonge'
if settings.modules.challonge.use_custom_module
......@@ -467,23 +476,16 @@ if settings.modules.challonge.enabled
if settings.modules.challonge.cache_ttl and !err and data
challonge_cache[challonge_type] = data
is_requesting[challonge_type] =null
resolve_data.resolved = true
resolve_data.func(err, data)
resolve_data.resolve(err, data)
while challonge_queue_callbacks[challonge_type].length
cur_resolve_data = challonge_queue_callbacks[challonge_type].splice(0, 1)[0]
if !cur_resolve_data.resolved
cur_resolve_data.resolved = true
cur_resolve_data.func(err, data)
cur_resolve_data.resolve(err, data)
return
)
challonge.participants._index = (_data) ->
resolve_data = {
func: _data.callback
resolved: false
}
resolve_data = new ResolveData(_data.callback)
if settings.modules.challonge.cache_ttl and challonge_cache[0]
resolve_data.resolved = true
_data.callback(null, challonge_cache[0])
resolve_data.resolve(null, challonge_cache[0])
else if is_requesting[0] and moment() - is_requesting[0] <= 5000
challonge_queue_callbacks[0].push(resolve_data)
else
......@@ -495,13 +497,9 @@ if settings.modules.challonge.enabled
_data.callback(err, null)
return
challonge.matches._index = (_data) ->
resolve_data = {
func: _data.callback
resolved: false
}
resolve_data = new ResolveData(_data.callback)
if settings.modules.challonge.cache_ttl and challonge_cache[1]
resolve_data.resolved = true
_data.callback(null, challonge_cache[1])
resolve_data.resolve(null, challonge_cache[1])
else if is_requesting[1] and moment() - is_requesting[1] <= 5000
challonge_queue_callbacks[1].push(resolve_data)
else
......@@ -768,7 +766,7 @@ ROOM_find_or_create_ai = global.ROOM_find_or_create_ai = (name)->
w.name == ainame or w.deck == ainame
if !windbot
return { "error": "${windbot_deck_not_found}" }
name = namea[0] + ',N#' + Math.floor(Math.random() * 100000)
name = namea[0].toUpperCase() + '#N' + Math.floor(Math.random() * 100000)
else
windbot = _.sample _.filter windbots, (w)->
!w.hidden
......
// Generated by CoffeeScript 2.5.1
(function() {
// 标准库
var CLIENT_check_vip, CLIENT_get_absolute_pos, CLIENT_get_authorize_key, CLIENT_get_kick_reconnect_target, CLIENT_get_partner, CLIENT_heartbeat_register, CLIENT_heartbeat_unregister, CLIENT_import_data, CLIENT_is_able_to_kick_reconnect, CLIENT_is_able_to_reconnect, CLIENT_is_banned_by_mc, CLIENT_is_player, CLIENT_kick, CLIENT_kick_reconnect, CLIENT_pre_reconnect, CLIENT_reconnect, CLIENT_reconnect_register, CLIENT_reconnect_unregister, CLIENT_send_pre_reconnect_info, CLIENT_send_reconnect_info, CLIENT_send_replays, CLIENT_send_vip_status, CLIENT_use_cdkey, Cloud_replay_ids, ROOM_all, ROOM_bad_ip, ROOM_ban_player, ROOM_clear_disconnect, ROOM_connected_ip, ROOM_find_by_name, ROOM_find_by_pid, ROOM_find_by_port, ROOM_find_by_title, ROOM_find_or_create_ai, ROOM_find_or_create_by_name, ROOM_find_or_create_random, ROOM_kick, ROOM_player_flee, ROOM_player_get_score, ROOM_player_lose, ROOM_player_win, ROOM_players_banned, ROOM_players_oppentlist, ROOM_players_scores, ROOM_unwelcome, ROOM_validate, Room, SERVER_clear_disconnect, SERVER_kick, SOCKET_flush_data, VIP_generate_cdkeys, _, _async, addCallback, auth, badwords, ban_user, bunyan, challonge, challonge_cache, challonge_module_name, challonge_queue_callbacks, chat_color, concat_name, config, cppversion, crypto, date, deck_name_match, default_config, default_data, dialogues, disconnect_list, dns, duel_log, e, exec, execFile, fs, geoip, get_callback, get_memory_usage, http, http_server, https, https_server, import_datas, imported, is_requesting, j, k, l, len, len1, len2, lflists, list, loadJSON, load_dialogues, load_dialogues_custom, load_tips, load_tips_zh, load_words, log, long_resolve_cards, m, memory_usage, merge, moment, net, oldbadwords, oldconfig, olddialogues, oldduellog, oldtips, oldwords, options, os, path, pgClient, pg_client, pg_query, plugin_filename, plugin_list, plugin_path, real_windbot_server_ip, redis, redisdb, ref, ref1, ref2, refresh_challonge_cache, release_disconnect, report_to_big_brother, request, requestListener, roomlist, setting_change, setting_save, settings, spawn, spawnSync, spawn_windbot, tips, url, users_cache, util, v, vip_info, wait_room_start, wait_room_start_arena, windbot_looplimit, windbot_process, windbots, words, ygopro, zlib;
var CLIENT_check_vip, CLIENT_get_absolute_pos, CLIENT_get_authorize_key, CLIENT_get_kick_reconnect_target, CLIENT_get_partner, CLIENT_heartbeat_register, CLIENT_heartbeat_unregister, CLIENT_import_data, CLIENT_is_able_to_kick_reconnect, CLIENT_is_able_to_reconnect, CLIENT_is_banned_by_mc, CLIENT_is_player, CLIENT_kick, CLIENT_kick_reconnect, CLIENT_pre_reconnect, CLIENT_reconnect, CLIENT_reconnect_register, CLIENT_reconnect_unregister, CLIENT_send_pre_reconnect_info, CLIENT_send_reconnect_info, CLIENT_send_replays, CLIENT_send_vip_status, CLIENT_use_cdkey, Cloud_replay_ids, ROOM_all, ROOM_bad_ip, ROOM_ban_player, ROOM_clear_disconnect, ROOM_connected_ip, ROOM_find_by_name, ROOM_find_by_pid, ROOM_find_by_port, ROOM_find_by_title, ROOM_find_or_create_ai, ROOM_find_or_create_by_name, ROOM_find_or_create_random, ROOM_kick, ROOM_player_flee, ROOM_player_get_score, ROOM_player_lose, ROOM_player_win, ROOM_players_banned, ROOM_players_oppentlist, ROOM_players_scores, ROOM_unwelcome, ROOM_validate, ResolveData, Room, SERVER_clear_disconnect, SERVER_kick, SOCKET_flush_data, VIP_generate_cdkeys, _, _async, addCallback, auth, badwords, ban_user, bunyan, challonge, challonge_cache, challonge_module_name, challonge_queue_callbacks, chat_color, concat_name, config, cppversion, crypto, date, deck_name_match, default_config, default_data, dialogues, disconnect_list, dns, duel_log, e, exec, execFile, fs, geoip, get_callback, get_memory_usage, http, http_server, https, https_server, import_datas, imported, is_requesting, j, k, l, len, len1, len2, lflists, list, loadJSON, load_dialogues, load_dialogues_custom, load_tips, load_tips_zh, load_words, log, long_resolve_cards, m, memory_usage, merge, moment, net, oldbadwords, oldconfig, olddialogues, oldduellog, oldtips, oldwords, options, os, path, pgClient, pg_client, pg_query, plugin_filename, plugin_list, plugin_path, real_windbot_server_ip, redis, redisdb, ref, ref1, ref2, refresh_challonge_cache, release_disconnect, report_to_big_brother, request, requestListener, roomlist, setting_change, setting_save, settings, spawn, spawnSync, spawn_windbot, tips, url, users_cache, util, v, vip_info, wait_room_start, wait_room_start_arena, windbot_looplimit, windbot_process, windbots, words, ygopro, zlib;
net = require('net');
......@@ -584,8 +584,30 @@
}
}
//else
// log.info 'ARENA INIT POST OK', response.statusCode, response.statusMessage
ResolveData = (function() {
//else
// log.info 'ARENA INIT POST OK', response.statusCode, response.statusMessage
class ResolveData {
constructor(func) {
this.func = func;
}
resolve(err, data) {
if (this.resolved) {
return false;
}
this.func(err, data);
return true;
}
};
ResolveData.prototype.resolved = false;
return ResolveData;
}).call(this);
if (settings.modules.challonge.enabled) {
challonge_module_name = 'challonge';
if (settings.modules.challonge.use_custom_module) {
......@@ -604,26 +626,18 @@
challonge_cache[challonge_type] = data;
}
is_requesting[challonge_type] = null;
resolve_data.resolved = true;
resolve_data.func(err, data);
resolve_data.resolve(err, data);
while (challonge_queue_callbacks[challonge_type].length) {
cur_resolve_data = challonge_queue_callbacks[challonge_type].splice(0, 1)[0];
if (!cur_resolve_data.resolved) {
cur_resolve_data.resolved = true;
cur_resolve_data.func(err, data);
}
cur_resolve_data.resolve(err, data);
}
});
};
challonge.participants._index = function(_data) {
var err, resolve_data;
resolve_data = {
func: _data.callback,
resolved: false
};
resolve_data = new ResolveData(_data.callback);
if (settings.modules.challonge.cache_ttl && challonge_cache[0]) {
resolve_data.resolved = true;
_data.callback(null, challonge_cache[0]);
resolve_data.resolve(null, challonge_cache[0]);
} else if (is_requesting[0] && moment() - is_requesting[0] <= 5000) {
challonge_queue_callbacks[0].push(resolve_data);
} else {
......@@ -639,13 +653,9 @@
};
challonge.matches._index = function(_data) {
var err, resolve_data;
resolve_data = {
func: _data.callback,
resolved: false
};
resolve_data = new ResolveData(_data.callback);
if (settings.modules.challonge.cache_ttl && challonge_cache[1]) {
resolve_data.resolved = true;
_data.callback(null, challonge_cache[1]);
resolve_data.resolve(null, challonge_cache[1]);
} else if (is_requesting[1] && moment() - is_requesting[1] <= 5000) {
challonge_queue_callbacks[1].push(resolve_data);
} else {
......@@ -1011,7 +1021,7 @@
"error": "${windbot_deck_not_found}"
};
}
name = namea[0] + ',N#' + Math.floor(Math.random() * 100000);
name = namea[0].toUpperCase() + '#N' + Math.floor(Math.random() * 100000);
} else {
windbot = _.sample(_.filter(windbots, function(w) {
return !w.hidden;
......
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