mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-04-18 22:33:50 +02:00
improve sweeping logic
This commit is contained in:
@@ -22,7 +22,7 @@ const feed = {
|
|||||||
groupName: dbRow[8]
|
groupName: dbRow[8]
|
||||||
};
|
};
|
||||||
feedDatabase.push(row);
|
feedDatabase.push(row);
|
||||||
}, `SELECT * FROM ${dbVars.userPrefix}_feed_gps WHERE created_at >= date('${dateOffset}') ORDER BY id DESC`);
|
}, `SELECT * FROM ${dbVars.userPrefix}_feed_gps WHERE created_at >= date('${dateOffset}') ORDER BY id DESC LIMIT ${dbVars.maxTableSize}`);
|
||||||
await sqliteService.execute((dbRow) => {
|
await sqliteService.execute((dbRow) => {
|
||||||
var row = {
|
var row = {
|
||||||
rowId: dbRow[0],
|
rowId: dbRow[0],
|
||||||
@@ -36,7 +36,7 @@ const feed = {
|
|||||||
previousStatusDescription: dbRow[7]
|
previousStatusDescription: dbRow[7]
|
||||||
};
|
};
|
||||||
feedDatabase.push(row);
|
feedDatabase.push(row);
|
||||||
}, `SELECT * FROM ${dbVars.userPrefix}_feed_status WHERE created_at >= date('${dateOffset}') ORDER BY id DESC`);
|
}, `SELECT * FROM ${dbVars.userPrefix}_feed_status WHERE created_at >= date('${dateOffset}') ORDER BY id DESC LIMIT ${dbVars.maxTableSize}`);
|
||||||
await sqliteService.execute((dbRow) => {
|
await sqliteService.execute((dbRow) => {
|
||||||
var row = {
|
var row = {
|
||||||
rowId: dbRow[0],
|
rowId: dbRow[0],
|
||||||
@@ -48,7 +48,7 @@ const feed = {
|
|||||||
previousBio: dbRow[5]
|
previousBio: dbRow[5]
|
||||||
};
|
};
|
||||||
feedDatabase.push(row);
|
feedDatabase.push(row);
|
||||||
}, `SELECT * FROM ${dbVars.userPrefix}_feed_bio WHERE created_at >= date('${dateOffset}') ORDER BY id DESC`);
|
}, `SELECT * FROM ${dbVars.userPrefix}_feed_bio WHERE created_at >= date('${dateOffset}') ORDER BY id DESC LIMIT ${dbVars.maxTableSize}`);
|
||||||
await sqliteService.execute((dbRow) => {
|
await sqliteService.execute((dbRow) => {
|
||||||
var row = {
|
var row = {
|
||||||
rowId: dbRow[0],
|
rowId: dbRow[0],
|
||||||
@@ -64,7 +64,7 @@ const feed = {
|
|||||||
previousCurrentAvatarThumbnailImageUrl: dbRow[9]
|
previousCurrentAvatarThumbnailImageUrl: dbRow[9]
|
||||||
};
|
};
|
||||||
feedDatabase.push(row);
|
feedDatabase.push(row);
|
||||||
}, `SELECT * FROM ${dbVars.userPrefix}_feed_avatar WHERE created_at >= date('${dateOffset}') ORDER BY id DESC`);
|
}, `SELECT * FROM ${dbVars.userPrefix}_feed_avatar WHERE created_at >= date('${dateOffset}') ORDER BY id DESC LIMIT ${dbVars.maxTableSize}`);
|
||||||
await sqliteService.execute((dbRow) => {
|
await sqliteService.execute((dbRow) => {
|
||||||
var row = {
|
var row = {
|
||||||
rowId: dbRow[0],
|
rowId: dbRow[0],
|
||||||
@@ -78,7 +78,7 @@ const feed = {
|
|||||||
groupName: dbRow[8]
|
groupName: dbRow[8]
|
||||||
};
|
};
|
||||||
feedDatabase.push(row);
|
feedDatabase.push(row);
|
||||||
}, `SELECT * FROM ${dbVars.userPrefix}_feed_online_offline WHERE created_at >= date('${dateOffset}') ORDER BY id DESC`);
|
}, `SELECT * FROM ${dbVars.userPrefix}_feed_online_offline WHERE created_at >= date('${dateOffset}') ORDER BY id DESC LIMIT ${dbVars.maxTableSize}`);
|
||||||
var compareByCreatedAt = function (a, b) {
|
var compareByCreatedAt = function (a, b) {
|
||||||
var A = a.created_at;
|
var A = a.created_at;
|
||||||
var B = b.created_at;
|
var B = b.created_at;
|
||||||
@@ -91,6 +91,9 @@ const feed = {
|
|||||||
return 0;
|
return 0;
|
||||||
};
|
};
|
||||||
feedDatabase.sort(compareByCreatedAt);
|
feedDatabase.sort(compareByCreatedAt);
|
||||||
|
if (feedDatabase.length > dbVars.maxTableSize) {
|
||||||
|
feedDatabase.splice(0, feedDatabase.length - dbVars.maxTableSize);
|
||||||
|
}
|
||||||
return feedDatabase;
|
return feedDatabase;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -103,6 +103,12 @@ const gameLog = {
|
|||||||
return 0;
|
return 0;
|
||||||
};
|
};
|
||||||
gamelogDatabase.sort(compareByCreatedAt);
|
gamelogDatabase.sort(compareByCreatedAt);
|
||||||
|
if (gamelogDatabase.length > dbVars.maxTableSize) {
|
||||||
|
gamelogDatabase.splice(
|
||||||
|
0,
|
||||||
|
gamelogDatabase.length - dbVars.maxTableSize
|
||||||
|
);
|
||||||
|
}
|
||||||
return gamelogDatabase;
|
return gamelogDatabase;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -173,9 +173,7 @@ export const useFeedStore = defineStore('Feed', () => {
|
|||||||
function addFeed(feed) {
|
function addFeed(feed) {
|
||||||
notificationStore.queueFeedNoty(feed);
|
notificationStore.queueFeedNoty(feed);
|
||||||
feedSessionTable.value.push(feed);
|
feedSessionTable.value.push(feed);
|
||||||
if (feedSessionTable.value.length > vrcxStore.maxTableSize + 50) {
|
sweepFeedSessionTable();
|
||||||
feedSessionTable.value.splice(0, 50);
|
|
||||||
}
|
|
||||||
sharedFeedStore.updateSharedFeed(false);
|
sharedFeedStore.updateSharedFeed(false);
|
||||||
if (
|
if (
|
||||||
feedTable.value.filter.length > 0 &&
|
feedTable.value.filter.length > 0 &&
|
||||||
@@ -197,29 +195,48 @@ export const useFeedStore = defineStore('Feed', () => {
|
|||||||
UiStore.notifyMenu('feed');
|
UiStore.notifyMenu('feed');
|
||||||
}
|
}
|
||||||
|
|
||||||
function sweepFeed() {
|
function sweepFeedSessionTable() {
|
||||||
let limit;
|
const data = feedSessionTable.value;
|
||||||
const { data } = feedTable.value;
|
const k = data.length;
|
||||||
const j = data.length;
|
if (!k) {
|
||||||
if (j > vrcxStore.maxTableSize) {
|
return;
|
||||||
data.splice(0, j - vrcxStore.maxTableSize);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 24 hour limit
|
||||||
const date = new Date();
|
const date = new Date();
|
||||||
date.setDate(date.getDate() - 1); // 24 hour limit
|
date.setDate(date.getDate() - 1);
|
||||||
limit = date.toJSON();
|
const limit = date.toJSON();
|
||||||
let i = 0;
|
|
||||||
const k = feedSessionTable.value.length;
|
if (data[0].created_at < limit) {
|
||||||
while (i < k && feedSessionTable.value[i].created_at < limit) {
|
let i = 0;
|
||||||
++i;
|
while (i < k && data[i].created_at < limit) {
|
||||||
|
++i;
|
||||||
|
}
|
||||||
|
if (i === k) {
|
||||||
|
feedSessionTable.value = [];
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (i) {
|
||||||
|
data.splice(0, i);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (i === k) {
|
|
||||||
feedSessionTable.value = [];
|
const maxLen = Math.floor(vrcxStore.maxTableSize * 1.5);
|
||||||
} else if (i) {
|
if (maxLen > 0 && data.length > maxLen + 100) {
|
||||||
feedSessionTable.value.splice(0, i);
|
data.splice(0, 100);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function sweepFeed() {
|
||||||
|
const { data } = feedTable.value;
|
||||||
|
const j = data.length;
|
||||||
|
if (j > vrcxStore.maxTableSize + 50) {
|
||||||
|
data.splice(0, 50);
|
||||||
|
}
|
||||||
|
|
||||||
|
sweepFeedSessionTable();
|
||||||
|
}
|
||||||
|
|
||||||
async function initFeedTable() {
|
async function initFeedTable() {
|
||||||
feedTable.value.loading = true;
|
feedTable.value.loading = true;
|
||||||
|
|
||||||
|
|||||||
@@ -430,7 +430,7 @@ export const useGameLogStore = defineStore('GameLog', () => {
|
|||||||
|
|
||||||
const maxLen = Math.floor(vrcxStore.maxTableSize * 1.5);
|
const maxLen = Math.floor(vrcxStore.maxTableSize * 1.5);
|
||||||
if (maxLen > 0 && data.length > maxLen + 100) {
|
if (maxLen > 0 && data.length > maxLen + 100) {
|
||||||
data.splice(0, data.length - maxLen);
|
data.splice(0, 100);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1369,6 +1369,7 @@ export const useGameLogStore = defineStore('GameLog', () => {
|
|||||||
async function getGameLogTable() {
|
async function getGameLogTable() {
|
||||||
await database.initTables();
|
await database.initTables();
|
||||||
gameLogSessionTable.value = await database.getGamelogDatabase();
|
gameLogSessionTable.value = await database.getGamelogDatabase();
|
||||||
|
sweepGameLogSessionTable();
|
||||||
const dateTill = await database.getLastDateGameLogDatabase();
|
const dateTill = await database.getLastDateGameLogDatabase();
|
||||||
updateGameLog(dateTill);
|
updateGameLog(dateTill);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user