Skip to content

Commit

Permalink
Merge pull request #34 from kamakiri01/fix-import-dir
Browse files Browse the repository at this point in the history
fix import func
  • Loading branch information
kamakiri01 authored Jan 22, 2024
2 parents 45edf73 + 8d56ed1 commit 1f085be
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 12 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
# ChangeLog

## 7.1.1
- `--import` オプション指定時にDB更新が二重に実行されていた問題を修正

## 7.1.0
- Release - 31 July 2023 - Build 1319 のログからnonceが消えた変更への対応
- グループの権限をパースできるよう変更
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "vrchat-activity-viewer",
"version": "7.1.0",
"version": "7.1.1",
"description": "VRChat log viewer",
"main": "lib/index.js",
"scripts": {
Expand Down
29 changes: 18 additions & 11 deletions src/app/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,18 +13,19 @@ export function app(param: ViewerAppParameterObject): void {
completeParameterObject(param);
if (!existDatabaseFile(DB_PATH)) initDatabase(DB_PATH);

if (param.watch) {
if (param.importDir) {
importDir(param);
} else if (param.watch) {
watch(param);
} else {
const db = loadDatabase(DB_PATH);
updateDatabase(db, DEFAULT_VRCHAT_FULL_PATH, param);
updateDatabase(db, DEFAULT_VRCHAT_FULL_PATH, !!param.debug);
showActivityLog(param, db.log);
}
}

function completeParameterObject(param: ViewerAppParameterObject) {
param.range = param.range ? parseRange(param.range) : 1000 * 60 * 60 * 24; // default 24h
param.importDir = param.importDir ? path.join(process.cwd(), param.importDir) : DEFAULT_VRCHAT_FULL_PATH;
}

function parseRange(range: string | number): number {
Expand Down Expand Up @@ -57,22 +58,22 @@ function parseRange(range: string | number): number {
return rangeTime;
}

function updateDatabase(db: Database, vrchatLogDirPath: string, param: ViewerAppParameterObject): void {
if (param.debug) console.log("searching vrchat log files...")
function updateDatabase(db: Database, vrchatLogDirPath: string, debug: boolean): void {
if (debug) console.log("searching vrchat log files...")
const filePaths = findVRChatLogFileNames(vrchatLogDirPath);
if (param.debug) console.log("find " + filePaths.length + " log file(s): " + filePaths.map(filePath => path.basename(filePath)).join(", "));
if (debug) console.log("find " + filePaths.length + " log file(s): " + filePaths.map(filePath => path.basename(filePath)).join(", "));
const parseResults = filePaths.map((filePath) => {
return parseVRChatLog(
fs.readFileSync(path.resolve(path.join(vrchatLogDirPath, filePath)), "utf8"),
!!param.debug
!!debug
);
});

updateDBActivityLog(db, parseResults, !!param.debug);
updateDBActivityLog(db, parseResults, !!debug);
updateDBUserDataTable(db, parseResults);

writeDatabase(DB_PATH, JSON.stringify(db, null, 2));
if (param.debug) console.log("update DB done");
if (debug) console.log("update DB done");
}

function updateDBActivityLog(db: Database, parseResults: ParseVRChatLogResult[], isDebug: boolean): void {
Expand Down Expand Up @@ -120,14 +121,20 @@ function formatDBActivityLog(log: ActivityLog[]): ActivityLog[] {
})
}

function watch(param: ViewerAppParameterObject){
function importDir(param: ViewerAppParameterObject) {
console.log("importing...");
const db = loadDatabase(DB_PATH);
updateDatabase(db, param.importDir!, !!param.debug);
}

function watch(param: ViewerAppParameterObject) {
console.log("watching...");
let shownDate = 0;
const interval = parseInt(param.watch!, 10);

function loop() {
const db = loadDatabase(DB_PATH);
updateDatabase(db, DEFAULT_VRCHAT_FULL_PATH, param);
updateDatabase(db, DEFAULT_VRCHAT_FULL_PATH, !!param.debug);
const currentDate = db.log[db.log.length - 1].date;
const newLog = db.log.filter(e => e.date > shownDate);
shownDate = currentDate;
Expand Down

0 comments on commit 1f085be

Please sign in to comment.