Commit 0129e335 authored by nanahira's avatar nanahira

fix config type thing & srvpro http URL api

parent 88310c2e
# 标准库
net = require 'net'
http = require 'http'
url = require 'url'
path = require 'path'
fs = require 'fs'
os = require 'os'
......@@ -3847,7 +3846,11 @@ if true
httpRequestListener = (request, response)->
parseQueryString = true
u = url.parse(request.url, parseQueryString)
base = "http://#{request.headers.host or 'localhost'}"
urlObj = new URL(request.url, base)
u =
pathname: urlObj.pathname
query: Object.fromEntries(urlObj.searchParams)
#pass_validated = u.query.pass == settings.modules.http.password
# Allow all CORS + PNA (Private Network Access) requests.
......
// Generated by CoffeeScript 2.7.0
(function() {
// 标准库
var Aragami, 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_replays_and_kick, CLIENT_set_ip, PQueue, Q, 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_oppentlist, ROOM_unwelcome, ROOM_validate, ReplayParser, ResolveData, Room, SERVER_clear_disconnect, SERVER_kick, SOCKET_flush_data, YGOProDeck, _, _async, addCallback, aragami, aragami_classes, athleticChecker, auth, axios, badwordR, badwords, ban_user, bunyan, call_match_api, challonge, checkFileExists, createDirectoryIfNotExists, crypto, dataManager, deck_name_match, dialogues, disconnect_list, exec, execFile, extra_mode_list, fs, geoip, getDuelLogQueryFromQs, getRealIp, get_memory_usage, http, httpRequestListener, importOldConfig, import_datas, init, ip6addr, isTrustedProxy, lflists, loadJSON, loadJSONAsync, loadLFList, loadRemoteData, load_dialogues, load_tips, log, long_resolve_cards, memory_usage, merge, moment, moment_long_ago_string, moment_now, moment_now_string, msg_polyfill, neosRequestListener, net, netRequestHandler, os, osu, path, qs, real_windbot_server_ip, release_disconnect, report_to_big_brother, request, roomlist, rooms_count, setting_change, setting_get, setting_save, settings, spawn, spawnSync, spawn_windbot, tips, toIpv4, toIpv6, url, util, utility, wait_room_start, wait_room_start_arena, windbot_looplimit, windbot_process, windbots, ygopro, zlib;
var Aragami, 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_replays_and_kick, CLIENT_set_ip, PQueue, Q, 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_oppentlist, ROOM_unwelcome, ROOM_validate, ReplayParser, ResolveData, Room, SERVER_clear_disconnect, SERVER_kick, SOCKET_flush_data, YGOProDeck, _, _async, addCallback, aragami, aragami_classes, athleticChecker, auth, axios, badwordR, badwords, ban_user, bunyan, call_match_api, challonge, checkFileExists, createDirectoryIfNotExists, crypto, dataManager, deck_name_match, dialogues, disconnect_list, exec, execFile, extra_mode_list, fs, geoip, getDuelLogQueryFromQs, getRealIp, get_memory_usage, http, httpRequestListener, importOldConfig, import_datas, init, ip6addr, isTrustedProxy, lflists, loadJSON, loadJSONAsync, loadLFList, loadRemoteData, load_dialogues, load_tips, log, long_resolve_cards, memory_usage, merge, moment, moment_long_ago_string, moment_now, moment_now_string, msg_polyfill, neosRequestListener, net, netRequestHandler, os, osu, path, qs, real_windbot_server_ip, release_disconnect, report_to_big_brother, request, roomlist, rooms_count, setting_change, setting_get, setting_save, settings, spawn, spawnSync, spawn_windbot, tips, toIpv4, toIpv6, util, utility, wait_room_start, wait_room_start_arena, windbot_looplimit, windbot_process, windbots, ygopro, zlib;
net = require('net');
http = require('http');
url = require('url');
path = require('path');
fs = require('fs');
......@@ -5164,9 +5162,14 @@
return callback + "( " + text + " );";
};
httpRequestListener = async function(request, response) {
var allowHeaders, archiveStream, buffer, death_room_found, duellog, e, err, error, filename, getpath, parseQueryString, pass_validated, requestHeaders, roomsjson, success, u;
var allowHeaders, archiveStream, base, buffer, death_room_found, duellog, e, err, error, filename, getpath, parseQueryString, pass_validated, requestHeaders, roomsjson, success, u, urlObj;
parseQueryString = true;
u = url.parse(request.url, parseQueryString);
base = `http://${request.headers.host || 'localhost'}`;
urlObj = new URL(request.url, base);
u = {
pathname: urlObj.pathname,
query: Object.fromEntries(urlObj.searchParams)
};
//pass_validated = u.query.pass == settings.modules.http.password
// Allow all CORS + PNA (Private Network Access) requests.
......
......@@ -63,7 +63,7 @@ const challonge = new challonge_1.Challonge(challonge_config);
const ssl_config = settings.modules.http.ssl;
//http长连接
let responder;
config.wallpapers = [""];
let wallpapers = [{ url: "", desc: "" }];
axios_1.default
.get("http://www.bing.com/HPImageArchive.aspx", {
params: {
......@@ -82,14 +82,14 @@ axios_1.default
console.log("wallpapers error", null, response);
}
else {
config.wallpapers = [];
wallpapers = [];
for (const i in body.images) {
const wallpaper = body.images[i];
const img = {
url: "http://s.cn.bing.net" + wallpaper.urlbase + "_768x1366.jpg",
desc: wallpaper.copyright,
};
config.wallpapers.push(img);
wallpapers.push(img);
}
}
})
......@@ -301,10 +301,7 @@ async function requestListener(req, res) {
return;
}
res.writeHead(200);
res.end(u.query.callback +
"(" +
JSON.stringify(config.wallpapers[Math.floor(Math.random() * config.wallpapers.length)]) +
");");
res.end(u.query.callback + "(" + JSON.stringify(wallpapers[Math.floor(Math.random() * wallpapers.length)]) + ");");
}
else if (u.pathname === "/api/get_decks") {
if (!(await auth.auth(u.query.username, u.query.password, "deck_dashboard_read", "get_decks"))) {
......
......@@ -13,22 +13,24 @@ import * as url from "url";
import axios from "axios";
import * as formidable from "formidable";
import { sync as loadJSON } from "load-json-file";
import defaultConfig from "./data/default_config.json";
import { Challonge } from "./challonge";
import * as asyncLib from "async";
import YGOProDeckEncode from "ygopro-deck-encode";
import * as auth from "./ygopro-auth";
import _ from "underscore";
const settings = loadJSON("./config/config.json") as any;
const config = settings.modules.tournament_mode as any;
const challonge_config = settings.modules.challonge as any;
type Settings = typeof defaultConfig;
const settings = loadJSON("./config/config.json") as Settings;
const config = settings.modules.tournament_mode;
const challonge_config = settings.modules.challonge;
const challonge = new Challonge(challonge_config);
const ssl_config = settings.modules.http.ssl as any;
const ssl_config = settings.modules.http.ssl;
//http长连接
let responder: http.ServerResponse | null;
config.wallpapers = [""];
let wallpapers: Array<{ url: string; desc: string }> = [{ url: "", desc: "" }];
axios
.get("http://www.bing.com/HPImageArchive.aspx", {
params: {
......@@ -45,14 +47,14 @@ axios
} else if (!body) {
console.log("wallpapers error", null, response);
} else {
config.wallpapers = [];
wallpapers = [];
for (const i in body.images) {
const wallpaper = body.images[i];
const img = {
url: "http://s.cn.bing.net" + wallpaper.urlbase + "_768x1366.jpg",
desc: wallpaper.copyright,
};
config.wallpapers.push(img);
wallpapers.push(img);
}
}
})
......@@ -295,10 +297,7 @@ async function requestListener(req: http.IncomingMessage, res: http.ServerRespon
}
res.writeHead(200);
res.end(
u.query.callback +
"(" +
JSON.stringify(config.wallpapers[Math.floor(Math.random() * config.wallpapers.length)]) +
");"
u.query.callback + "(" + JSON.stringify(wallpapers[Math.floor(Math.random() * wallpapers.length)]) + ");"
);
} else if (u.pathname === "/api/get_decks") {
if (!(await auth.auth(u.query.username as string, u.query.password as string, "deck_dashboard_read", "get_decks"))) {
......
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