poi-plugin-senka-calc
Version:
Ranking point calculator for poi
64 lines (47 loc) • 1.41 kB
JavaScript
;
exports.__esModule = true;
exports.reducer = void 0;
var _momentTimezone = _interopRequireDefault(require("moment-timezone"));
var _magic = require("../lib/magic");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const reducer = (state = -1, payload) => {
const {
type
} = payload;
switch (type) {
case '@@poi-plugin-senka-calc/initialize':
{
const {
archive
} = payload;
return archive.currentRank;
}
case '@@Response/kcsapi/api_req_ranking/mxltvkpyuklh':
{
const startOfRecord = _momentTimezone.default.tz('Asia/Tokyo').startOf('month').add(3, 'hours');
const now = _momentTimezone.default.tz('Asia/Tokyo'); // the ranking api still returns data of former month, skip recording
if (now.isBefore(startOfRecord)) {
return state;
}
const {
body
} = payload;
const userList = body.api_list;
_magic.magicManager.updateMagicNum(userList);
const {
nickname
} = _magic.magicManager;
for (const user of userList) {
if (user.api_mtjmdcwtvhdr === nickname) {
return user.api_mxltvkpyuklh;
}
}
return state;
}
default:
{
return state;
}
}
};
exports.reducer = reducer;