返回提交历史
Modified
src/models/inboxModel.ts
+6
-4
Modified
src/services/missionInventoryUpdateService.ts
+2
-2
XFEstudio/XFESpaceNinjaServer
feat: automatically delete death mark messages after 24 hours (#1535)
Possibly unfaithful but more faithful than never deleting it at all. Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/1535 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
d3620c00
代码差异
2 个文件
+8
-6
@@ -5,7 +5,7 @@ import { IMongoDate, IOid } from "@/src/types/commonTypes";
5
5
import { ITypeCount } from "@/src/types/inventoryTypes/inventoryTypes";
6
6
7
7
export interface IMessageClient
8
extends Omit<IMessageDatabase, "_id" | "date" | "startDate" | "endDate" | "ownerId" | "attVisualOnly"> {
8
extends Omit<IMessageDatabase, "_id" | "date" | "startDate" | "endDate" | "ownerId" | "attVisualOnly" | "expiry"> {
9
9
_id?: IOid;
10
10
date: IMongoDate;
11
11
startDate?: IMongoDate;
@@ -16,6 +16,8 @@ export interface IMessageClient
16
16
export interface IMessageDatabase extends IMessage {
17
17
ownerId: Types.ObjectId;
18
18
date: Date; //created at
19
attVisualOnly?: boolean;
20
expiry?: Date;
19
21
_id: Types.ObjectId;
20
22
}
21
23
@@ -30,7 +32,6 @@ export interface IMessage {
30
32
endDate?: Date;
31
33
att?: string[];
32
34
countedAtt?: ITypeCount[];
33
attVisualOnly?: boolean;
34
35
transmission?: string;
35
36
arg?: Arg[];
36
37
gifts?: IGift[];
@@ -137,14 +138,14 @@ messageSchema.virtual("messageId").get(function (this: IMessageDatabase) {
137
138
messageSchema.set("toJSON", {
138
139
virtuals: true,
139
140
transform(_document, returnedObject) {
140
delete returnedObject.ownerId;
141
142
141
const messageDatabase = returnedObject as IMessageDatabase;
143
142
const messageClient = returnedObject as IMessageClient;
144
143
145
144
delete returnedObject._id;
146
145
delete returnedObject.__v;
146
delete returnedObject.ownerId;
147
147
delete returnedObject.attVisualOnly;
148
delete returnedObject.expiry;
148
149
149
150
messageClient.date = toMongoDate(messageDatabase.date);
150
151
@@ -157,5 +158,6 @@ messageSchema.set("toJSON", {
157
158
});
158
159
159
160
messageSchema.index({ ownerId: 1 });
161
messageSchema.index({ expiry: 1 }, { expireAfterSeconds: 0 });
160
162
161
163
export const Inbox = model<IMessageDatabase>("Inbox", messageSchema, "inbox");
@@ -394,10 +394,10 @@ export const addMissionInventoryUpdates = async (
394
394
sndr: "/Lotus/Language/G1Quests/DeathMarkSender",
395
395
msg: "/Lotus/Language/G1Quests/DeathMarkMessage",
396
396
icon: "/Lotus/Interface/Icons/Npcs/Stalker_d.png",
397
highPriority: true
397
highPriority: true,
398
expiry: new Date(Date.now() + 86400_000) // TOVERIFY: This type of inbox message seems to automatically delete itself. We'll just delete it after 24 hours, but it's clear if this is correct.
398
399
}
399
400
]);
400
// TODO: This type of inbox message seems to automatically delete itself. Figure out under which conditions.
401
401
}
402
402
}
403
403
inventory.DeathMarks = value;