nothumanallowed 13.2.63 → 13.2.64
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nothumanallowed",
|
|
3
|
-
"version": "13.2.
|
|
3
|
+
"version": "13.2.64",
|
|
4
4
|
"description": "NotHumanAllowed — 38 AI agents, 80 tools, Studio (visual agentic workflows). Email, calendar, browser automation, screen capture, canvas, cron/heartbeat, Alexandria E2E messaging, GitHub, Notion, Slack, voice chat, free AI (Liara), 28 languages. Zero-dependency CLI.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
package/src/constants.mjs
CHANGED
|
@@ -5,7 +5,7 @@ import { fileURLToPath } from 'url';
|
|
|
5
5
|
const __filename = fileURLToPath(import.meta.url);
|
|
6
6
|
const __dirname = path.dirname(__filename);
|
|
7
7
|
|
|
8
|
-
export const VERSION = '13.2.
|
|
8
|
+
export const VERSION = '13.2.64';
|
|
9
9
|
export const BASE_URL = 'https://nothumanallowed.com/cli';
|
|
10
10
|
export const API_BASE = 'https://nothumanallowed.com/api/v1';
|
|
11
11
|
|
|
@@ -110,9 +110,15 @@ export async function getTodayEvents(config) {
|
|
|
110
110
|
} catch { /* skip failed calendars */ }
|
|
111
111
|
}
|
|
112
112
|
|
|
113
|
-
// Sort by start time
|
|
113
|
+
// Sort by start time, then deduplicate same-day same-title events (holiday feeds)
|
|
114
114
|
allEvents.sort((a, b) => new Date(a.start).getTime() - new Date(b.start).getTime());
|
|
115
|
-
|
|
115
|
+
const seen = new Set();
|
|
116
|
+
return allEvents.filter(e => {
|
|
117
|
+
const key = (e.start || '').slice(0, 10) + '|' + (e.summary || '').toLowerCase().trim();
|
|
118
|
+
if (seen.has(key)) return false;
|
|
119
|
+
seen.add(key);
|
|
120
|
+
return true;
|
|
121
|
+
});
|
|
116
122
|
}
|
|
117
123
|
|
|
118
124
|
/**
|
|
@@ -139,7 +145,15 @@ export async function getEventsForDate(config, date) {
|
|
|
139
145
|
} catch { /* skip */ }
|
|
140
146
|
}
|
|
141
147
|
allEvents.sort((a, b) => new Date(a.start).getTime() - new Date(b.start).getTime());
|
|
142
|
-
|
|
148
|
+
|
|
149
|
+
// Deduplicate: same start date + same normalized title = same event (e.g. IT + EN holiday feeds)
|
|
150
|
+
const seen = new Set();
|
|
151
|
+
const deduped = [];
|
|
152
|
+
for (const e of allEvents) {
|
|
153
|
+
const key = (e.start || '').slice(0, 10) + '|' + (e.summary || '').toLowerCase().trim();
|
|
154
|
+
if (!seen.has(key)) { seen.add(key); deduped.push(e); }
|
|
155
|
+
}
|
|
156
|
+
return deduped;
|
|
143
157
|
}
|
|
144
158
|
|
|
145
159
|
/**
|