31 lines
863 B
TypeScript
31 lines
863 B
TypeScript
import fs from 'fs';
|
|
import path from 'path';
|
|
|
|
export interface ActivityEntry {
|
|
id: string;
|
|
timestamp: string;
|
|
type: 'post' | 'notebook' | 'infosec' | 'project' | 'link' | 'update' | 'system';
|
|
message: string;
|
|
link?: string;
|
|
}
|
|
|
|
const activityFile = path.join(process.cwd(), 'content', 'activity.json');
|
|
|
|
export function getActivity(): ActivityEntry[] {
|
|
if (!fs.existsSync(activityFile)) return [];
|
|
const raw = fs.readFileSync(activityFile, 'utf-8');
|
|
return JSON.parse(raw);
|
|
}
|
|
|
|
export function addActivity(entry: Omit<ActivityEntry, 'id' | 'timestamp'>) {
|
|
const entries = getActivity();
|
|
const newEntry: ActivityEntry = {
|
|
id: Date.now().toString(),
|
|
timestamp: new Date().toISOString(),
|
|
...entry,
|
|
};
|
|
entries.unshift(newEntry);
|
|
fs.writeFileSync(activityFile, JSON.stringify(entries.slice(0, 500), null, 2));
|
|
return newEntry;
|
|
}
|