Commit a714002b authored by nanahira's avatar nanahira

move

parent 466402a2
...@@ -102,3 +102,5 @@ dist ...@@ -102,3 +102,5 @@ dist
# TernJS port file # TernJS port file
.tern-port .tern-port
/build
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const axios_1 = __importDefault(require("axios"));
const posthtml_parser_1 = __importDefault(require("posthtml-parser"));
const user_1 = require("./user");
class Tx3Fetcher {
async fetchRole(id) {
//try {
const content = (await axios_1.default.get(`http://bang.tx3.163.com/bang/role/${id}`, {
responseType: "document"
})).data;
const parsedContent = posthtml_parser_1.default(content);
return new user_1.User(content);
/*} catch(e) {
console.error(`Errored fetching role data from ${id}: ${e.toString()}`);
return null;
}*/
}
}
async function main() {
const fetcher = new Tx3Fetcher();
console.log(JSON.stringify(await fetcher.fetchRole("28_20588"), null, 2));
}
main();
//# sourceMappingURL=fetcher.js.map
\ No newline at end of file
{"version":3,"file":"fetcher.js","sourceRoot":"","sources":["../fetcher.ts"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAE1B,sEAAwC;AACxC,iCAA8B;AAE9B,MAAM,UAAU;IACf,KAAK,CAAC,SAAS,CAAC,EAAU;QACzB,QAAQ;QACP,MAAM,OAAO,GAAG,CAAC,MAAM,eAAK,CAAC,GAAG,CAAC,qCAAqC,EAAE,EAAE,EAAE;YAC3E,YAAY,EAAE,UAAU;SACxB,CAAC,CAAC,CAAC,IAAI,CAAC;QACT,MAAM,aAAa,GAAG,yBAAS,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO,IAAI,WAAI,CAAC,OAAO,CAAC,CAAC;QAC1B;;;WAGG;IACJ,CAAC;CACD;AAED,KAAK,UAAU,IAAI;IAClB,MAAM,OAAO,GAAG,IAAI,UAAU,EAAE,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3E,CAAC;AACD,IAAI,EAAE,CAAC"}
\ No newline at end of file
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.User = void 0;
const posthtml_parser_1 = __importDefault(require("posthtml-parser"));
const underscore_1 = __importDefault(require("underscore"));
function getDepthOfTree(tree, indexList) {
if (indexList.length) {
const _indexList = underscore_1.default.clone(indexList);
const index = _indexList.splice(0, 1)[0];
const node = tree[index];
if (typeof (node) === "string" || !node.content) {
return [node];
}
return getDepthOfTree(node.content, _indexList);
}
else {
return tree;
}
}
function findNodeIndex(baseTree, condition, offset) {
let queue = [offset];
while (queue.length) {
const indexList = queue.splice(0, 1)[0];
const tree = getDepthOfTree(baseTree, indexList);
for (let i = 0; i < tree.length; ++i) {
const node = tree[i];
const newList = indexList.concat([i]);
if (condition(node)) {
console.log(newList);
return newList;
}
else if (typeof (node) !== "string") {
queue.push(newList);
}
}
}
return null;
}
function findNodeIndexByContent(baseTree, label, offset) {
return findNodeIndex(baseTree, (node) => {
return node === label;
}, offset);
}
function findNodeIndexByAttribute(baseTree, key, value, offset) {
return findNodeIndex(baseTree, (node) => {
return typeof (node) !== "string" && node.attrs && node.attrs[key] === value;
}, offset);
}
function findNodeIndexByTag(baseTree, tag, offset) {
return findNodeIndex(baseTree, (node) => {
return typeof (node) !== "string" && node.tag === tag;
}, offset);
}
class User {
constructor(content) {
this.content = posthtml_parser_1.default(content);
this.parse();
this.content = null;
}
parseNameAndLevel() {
let namePos = findNodeIndexByAttribute(this.content, "class", "sTitle", []);
this.name = getDepthOfTree(this.content, namePos.concat([0]))[0];
}
parseBasicAttributes() {
let hpStringPos = findNodeIndexByContent(this.content, "", []);
hpStringPos[hpStringPos.length - 2] += 2;
const datas = [];
for (let i = 0; i < 8; ++i) {
const rawData = getDepthOfTree(this.content, hpStringPos)[0];
console.log(rawData);
datas.push(parseInt(rawData.trim()));
hpStringPos[hpStringPos.length - 2] += 4;
}
this.hp = datas[0];
this.mp = datas[1];
this.li = datas[2];
this.ti = datas[3];
this.min = datas[4];
this.ji = datas[5];
this.hun = datas[6];
this.nian = datas[7];
}
parse() {
this.parseBasicAttributes();
}
}
exports.User = User;
//# sourceMappingURL=user.js.map
\ No newline at end of file
{"version":3,"file":"user.js","sourceRoot":"","sources":["../user.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
import { User } from "../src/user";
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
"compileOnSave": true, "compileOnSave": true,
"allowJs": true, "allowJs": true,
"include": [ "include": [
"*.ts" "src/*.ts",
"tests/*.ts"
] ]
} }
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