feat: 订阅支持每月重置天数

This commit is contained in:
xream 2024-03-10 23:08:56 +08:00
parent 078bf228de
commit 518de2e919
No known key found for this signature in database
GPG Key ID: 1D2C5225471789F9
4 changed files with 32 additions and 4 deletions

View File

@ -1,6 +1,6 @@
{
"name": "sub-store",
"version": "2.14.245",
"version": "2.14.246",
"description": "Advanced Subscription Manager for QX, Loon, Surge, Stash and ShadowRocket.",
"main": "src/main.js",
"scripts": {

View File

@ -16,6 +16,7 @@ import {
parseFlowHeaders,
validCheck,
flowTransfer,
getRmainingDays,
} from '@/utils/flow';
/**
@ -863,6 +864,7 @@ function createDynamicFunction(name, script, $arguments) {
parseFlowHeaders,
flowTransfer,
validCheck,
getRmainingDays,
};
if ($.env.isLoon) {
return new Function(

View File

@ -6,7 +6,11 @@ import {
} from './errors';
import { deleteByName, findByName, updateByName } from '@/utils/database';
import { SUBS_KEY, COLLECTIONS_KEY, ARTIFACTS_KEY } from '@/constants';
import { getFlowHeaders, parseFlowHeaders } from '@/utils/flow';
import {
getFlowHeaders,
parseFlowHeaders,
getRmainingDays,
} from '@/utils/flow';
import { success, failed } from './response';
import $ from '@/core/app';
@ -105,8 +109,10 @@ async function getFlowInfo(req, res) {
);
return;
}
success(res, parseFlowHeaders(flowHeaders));
success(res, {
...parseFlowHeaders(flowHeaders),
remainingDays: getRmainingDays($arguments.resetDay),
});
} catch (err) {
failed(
res,

View File

@ -143,3 +143,23 @@ export function validCheck(flow) {
}
}
}
export function getRmainingDays(_resetDay) {
if (!_resetDay) return;
const resetDay = parseInt(_resetDay);
if (isNaN(resetDay) || resetDay <= 0 || resetDay > 31) return;
let now = new Date();
let today = now.getDate();
let month = now.getMonth();
let year = now.getFullYear();
let daysInMonth;
if (resetDay > today) {
daysInMonth = 0;
} else {
daysInMonth = new Date(year, month + 1, 0).getDate();
}
return daysInMonth - today + resetDay;
}