12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- const html = require("node-html-parser");
- const axios = require("axios");
- const db = require("../../db.js");
- const updatePage = "http://com3d2.jp/update/";
- const changeLogPattern = /\[\s*([^\s\]]+)\s*\]\s*((・.*)\s+)+/gim;
- function getVersionNumber(verStr) {
- let verPart = verStr.replace(/[\.\s]/g, "");
- if(verPart.length < 4)
- verPart += "0";
- return +verPart;
- }
- async function aggregate() {
- let lastVersion = db.get("lastCOMJPVersion").value();
-
- try {
- let mainPageRes = await axios.get(updatePage);
-
- if(mainPageRes.status != 200)
- return [];
- let rootNode = html.parse(mainPageRes.data, {
- pre: true,
- script: false,
- style: false
- });
- let readme = rootNode.querySelector("div.readme");
- if(!readme) {
- console.log("[COM3D2 JP UPDATE] Failed to find listing!");
- }
- let latestVersionChangelog = changeLogPattern.exec(readme.text);
- if(!latestVersionChangelog)
- return [];
- let version = getVersionNumber(latestVersionChangelog[1]);
- let text = latestVersionChangelog[0];
- if(version <= lastVersion)
- return [];
-
- db.set("lastCOMJPVersion", version).write();
- return [{
- id: `com3d2-jp-updates-${version}`,
- link: updatePage,
- title: latestVersionChangelog[1],
- author: "COM3D2 UPDATE",
- contents: text,
- embedColor: 0xcccccc
- }];
- } catch(err) {
- return [];
- }
- }
- module.exports = {
- aggregate: aggregate
- };
|