diff --git a/html/src/app.js b/html/src/app.js
index 6cdeae60..f85bb8e6 100644
--- a/html/src/app.js
+++ b/html/src/app.js
@@ -6181,7 +6181,7 @@ speechSynthesis.getVoices();
if (configRepository.getBool(`friendLogInit_${args.json.id}`)) {
$app.getFriendLog();
} else {
- $app.initFriendLog();
+ $app.initFriendLog(args.json.id);
}
//remove old data from json file and migrate to SQLite
if (VRCXStorage.Get(`${args.json.id}_friendLogUpdatedAt`)) {
@@ -7161,14 +7161,7 @@ speechSynthesis.getVoices();
$app.data.friendLogInitStatus = false;
- $app.methods.initFriendLog = async function () {
- if (this.friendLogInitStatus) {
- return;
- }
- if (configRepository.getBool(`friendLogInit_${API.currentUser.id}`)) {
- this.friendLogInitStatus = true;
- return;
- }
+ $app.methods.initFriendLog = async function (userId) {
var sqlValues = [];
var friends = await API.refreshFriends();
for (var friend of friends) {
@@ -7182,32 +7175,17 @@ speechSynthesis.getVoices();
sqlValues.unshift(row);
}
database.setFriendLogCurrentArray(sqlValues);
- configRepository.setBool(`friendLogInit_${API.currentUser.id}`, true);
+ configRepository.setBool(`friendLogInit_${userId}`, true);
this.friendLogInitStatus = true;
};
$app.methods.migrateFriendLog = function (userId) {
VRCXStorage.Remove(`${userId}_friendLogUpdatedAt`);
- this.friendLog = new Map();
- var oldFriendLog = VRCXStorage.GetObject(`${userId}_friendLog`);
- var friendLogCurrentValues = [];
- for (var i in oldFriendLog) {
- var friend = oldFriendLog[i];
- var row = {
- userId: friend.id,
- displayName: friend.displayName,
- trustLevel: friend.trustLevel
- };
- this.friendLog.set(friend.id, row);
- friendLogCurrentValues.unshift(row);
- }
- database.setFriendLogCurrentArray(friendLogCurrentValues);
VRCXStorage.Remove(`${userId}_friendLog`);
this.friendLogTable.data = VRCXStorage.GetArray(`${userId}_friendLogTable`);
database.addFriendLogHistoryArray(this.friendLogTable.data);
VRCXStorage.Remove(`${userId}_friendLogTable`);
- configRepository.setBool(`friendLogInit_${API.currentUser.id}`, true);
- this.friendLogInitStatus = true;
+ configRepository.setBool(`friendLogInit_${userId}`, true);
};
$app.methods.getFriendLog = async function () {
diff --git a/html/src/repository/database.js b/html/src/repository/database.js
index 7ccbd0e8..059e30a8 100644
--- a/html/src/repository/database.js
+++ b/html/src/repository/database.js
@@ -168,12 +168,15 @@ class Database {
}
setFriendLogCurrentArray(inputData) {
+ if (inputData.length === 0) {
+ return;
+ }
var sqlValues = '';
var items = ['userId', 'displayName', 'trustLevel'];
for (var line of inputData) {
+ var field = {};
for (var item of items) {
- var field = {};
- if (typeof line[item] !== 'undefined') {
+ if (typeof line[item] === 'string') {
field[item] = line[item].replace(/'/g, "\''");
} else {
field[item] = '';
@@ -233,6 +236,9 @@ class Database {
}
addFriendLogHistoryArray(inputData) {
+ if (inputData.length === 0) {
+ return;
+ }
var sqlValues = '';
var items = ['created_at', 'type', 'userId', 'displayName', 'previousDisplayName', 'trustLevel', 'previousTrustLevel'];
for (var i = 0; i < inputData.length; ++i) {
@@ -241,7 +247,7 @@ class Database {
for (var k = 0; k < items.length; ++k) {
var item = items[k];
var field = '';
- if (typeof line[item] !== 'undefined') {
+ if (typeof line[item] === 'string') {
field = `'${line[item].replace(/'/g, "\''")}'`;
} else {
field = null;