Skip to content

Commit eab1c7c

Browse files
committed
fix(websocket): Add linesCount and charsCount to metadata extraction
1 parent bc575d9 commit eab1c7c

File tree

4 files changed

+28
-2
lines changed

4 files changed

+28
-2
lines changed

websocket/change.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ export type Change =
1111
| HelpFeelsChange
1212
| infoboxDefinitionChange
1313
| TitleChange
14+
| LinesCountChange
15+
| charsCountChange
1416
| PinChange;
1517
export interface InsertChange {
1618
_insert: string;
@@ -72,6 +74,13 @@ export interface infoboxDefinitionChange {
7274
*/
7375
infoboxDefinition: string[];
7476
}
77+
export interface LinesCountChange {
78+
linesCount: number;
79+
}
80+
export interface charsCountChange {
81+
charsCount: number;
82+
}
83+
7584
export interface PinChange {
7685
pin: number;
7786
}

websocket/getPageMetadataFromLines.test.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
import { getHelpfeels, getPageMetadataFromLines } from "./getPageMetadataFromLines.ts";
1+
import {
2+
getHelpfeels,
3+
getPageMetadataFromLines,
4+
} from "./getPageMetadataFromLines.ts";
25
import { assertEquals } from "@std/assert/equals";
36

47
// Test data for metadata extraction from a Scrapbox page
@@ -74,6 +77,8 @@ Deno.test("getPageMetadataFromLines()", () => {
7477
"Phone\tAdding # won't create a link",
7578
"Strengths\tList about 3 items",
7679
],
80+
26,
81+
659,
7782
]);
7883
});
7984

websocket/getPageMetadataFromLines.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ export const getPageMetadataFromLines = (
3030
files: string[],
3131
helpfeels: string[],
3232
infoboxDefinition: string[],
33+
linesCount: number,
34+
charsCount: number,
3335
] => {
3436
const blocks = parse(text, { hasTitle: true });
3537

@@ -190,6 +192,7 @@ export const getPageMetadataFromLines = (
190192
}
191193
}
192194

195+
const lines = text.split("\n");
193196
return [
194197
title,
195198
links,
@@ -200,6 +203,8 @@ export const getPageMetadataFromLines = (
200203
[...files],
201204
[...helpfeels],
202205
infoboxDefinition,
206+
lines.length,
207+
lines.reduce((acc, line) => acc + [...line].length, 0),
203208
];
204209
};
205210

websocket/makeChanges.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
import { diffToChanges } from "./diffToChanges.ts";
22
import type { Page } from "@cosense/types/rest";
33
import type { Change } from "./change.ts";
4-
import { getHelpfeels, getPageMetadataFromLines } from "./getPageMetadataFromLines.ts";
4+
import {
5+
getHelpfeels,
6+
getPageMetadataFromLines,
7+
} from "./getPageMetadataFromLines.ts";
58
import { isSameArray } from "./isSameArray.ts";
69
import { isString } from "@core/unknownutil/is/string";
710

@@ -41,6 +44,8 @@ export function* makeChanges(
4144
files,
4245
helpfeels,
4346
infoboxDefinition,
47+
linesCount,
48+
charsCount,
4449
] = getPageMetadataFromLines(after_.join("\n"));
4550
// Handle title changes
4651
// Note: We always include title change commits for new pages (`persistent === false`)
@@ -56,4 +61,6 @@ export function* makeChanges(
5661
if (!isSameArray(before.infoboxDefinition, infoboxDefinition)) {
5762
yield { infoboxDefinition };
5863
}
64+
yield { linesCount };
65+
yield { charsCount };
5966
}

0 commit comments

Comments
 (0)