This commit is contained in:
2024-03-17 23:13:10 +08:00
parent 77521e43cd
commit e29087500b

View File

@@ -16,7 +16,7 @@ const users = {};
fs.mkdir("./logs", {recursive: true}, (err) => { fs.mkdir("./logs", {recursive: true}, (err) => {
if (err) { if (err) {
logger.error("An error occurred while creating the logs directory: " + err); logger.error("an error occurred while creating the logs directory: " + err);
} }
}); });
@@ -49,23 +49,6 @@ try {
} }
steamUser.on('loggedOn', () => { steamUser.on('loggedOn', () => {
logger.info(`login to Steam as ${steamUser.steamID}`); logger.info(`login to Steam as ${steamUser.steamID}`);
steamUser.chat.getFriendMessageHistory(
"76561198453448510",
{
maxCount: 10,
},
(err, messages) => {
console.log(typeof messages)
for (let message of messages.messages) {
console.log(typeof message.server_timestamp);
console.log(Object.keys(message.server_timestamp));
}
logger.info("chat history", {
messages: messages,
err: err,
});
});
}); });
/** /**
@@ -81,9 +64,12 @@ async function getUserInfo(steamID) {
users[steamID.getSteamID64()] = personasResult.personas[steamID.getSteamID64()]; users[steamID.getSteamID64()] = personasResult.personas[steamID.getSteamID64()];
sender = users[steamID.getSteamID64()]; sender = users[steamID.getSteamID64()];
logger.info("User data received: " + JSON.stringify(sender)); importChatHistory(steamID);
// noinspection ES6MissingAwait
logger.info("user data received: " + JSON.stringify(sender));
} catch (err) { } catch (err) {
logger.error("An error occurred while getting user data: ", err); logger.error("an error occurred while getting user data: ", err);
sender = { sender = {
player_name: "Unknown", player_name: "Unknown",
}; };
@@ -97,9 +83,13 @@ async function getUserInfo(steamID) {
* @param {SteamID} steamID * @param {SteamID} steamID
* @param {string} message * @param {string} message
* @param {boolean} echo * @param {boolean} echo
* @param {number} ordinal
* @returns {Promise<void>} * @returns {Promise<void>}
*/ */
async function logMessage(date, steamID, message, echo, ordinal) { async function logMessage(date, steamID, message, echo, ordinal) {
// try to get chat history
await getUserInfo(steamID);
let sender = await getUserInfo(echo ? steamUser.steamID : steamID); let sender = await getUserInfo(echo ? steamUser.steamID : steamID);
logger.info("log steam chat message", { logger.info("log steam chat message", {
echo: echo, echo: echo,
@@ -117,23 +107,19 @@ async function logMessage(date, steamID, message, echo, ordinal) {
ordinal: ordinal, ordinal: ordinal,
}) + "\n", (e) => { }) + "\n", (e) => {
if (e) { if (e) {
logger.error("An error occurred while writing FullLogs jsonl file: " + e); logger.error("an error occurred while writing chat log file: " + e);
} }
}); });
} }
steamUser.chat.on("friendMessage", (message) => { steamUser.chat.on("friendMessage", (message) => {
logger.info("friend message", message);
// noinspection JSIgnoredPromiseFromCall // noinspection JSIgnoredPromiseFromCall
logMessage(dateToString(message.server_timestamp), message.steamid_friend, message.message, false); logMessage(dateToString(message.server_timestamp), message.steamid_friend, message.message, false, message.ordinal);
}); });
steamUser.chat.on("friendMessageEcho", (message) => { steamUser.chat.on("friendMessageEcho", (message) => {
logger.info("friend message echo", message);
// noinspection JSIgnoredPromiseFromCall // noinspection JSIgnoredPromiseFromCall
logMessage(dateToString(message.server_timestamp), message.steamid_friend, message.message, true); logMessage(dateToString(message.server_timestamp), message.steamid_friend, message.message, true, message.ordinal);
}); });
/** /**
@@ -145,3 +131,31 @@ function dateToString(date) {
return `${date.toLocaleString()}.${milliseconds}` return `${date.toLocaleString()}.${milliseconds}`
} }
function importChatHistory(steamID) {
if (steamID === steamUser.steamID) {
return;
}
steamUser.chat.getFriendMessageHistory(steamID.getSteamID64(), (err, messages) => {
if (err) {
logger.error("an error occurred while getting chat history: ", err);
return
}
for (let message of messages.messages) {
logger.info("get chat history", message);
logMessage(
dateToString(message.server_timestamp),
steamID, message.message,
message.sender === steamUser.steamID,
message.ordinal,
);
}
});
}
module.exports = {
steamUser: steamUser,
getUserInfo: getUserInfo,
}