Skip to content

Commit 4c0b807

Browse files
Merge pull request #3 from ThePhoenixAgency/claude/add-logo-eJWZa
Claude/add logo and features
2 parents e3e888a + 7d31fc5 commit 4c0b807

File tree

5 files changed

+37
-33
lines changed

5 files changed

+37
-33
lines changed

README.md

Lines changed: 2 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,7 @@
1-
🚀 Starting AI-Pulse aggregation...
2-
3-
4-
📡 Aggregating ai feeds...
5-
✓ Fetching: Medium AI
6-
✓ Fetching: Towards Data Science
7-
8-
📡 Aggregating cybersecurity feeds...
9-
✓ Fetching: The Hacker News
10-
✓ Fetching: Bleeping Computer
11-
✓ Fetching: Krebs on Security
12-
```
13-
▄████████ ▄█ ▄███████▄ ███ █▄ ▄█ ▄████████ ▄████████
14-
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███
15-
███ ███ ███▌ ███ ███ ███ ███ ███ ███ █▀ ███ █▀
16-
███ ███ ███▌ ███ ███ ███ ███ ███ ███ ▄███▄▄▄
17-
▀███████████ ███▌ ▀█████████▀ ███ ███ ███ ███ ▀▀███▀▀▀
18-
███ ███ ███ ███ ███ ███ ███ ███ █▄ ███ █▄
19-
███ ███ ███ ███ ███ ███ ███▌ ▄ ███ ███ ███ ███
20-
███ █▀ █▀ ▄████▀ ████████▀ █████▄▄██ ████████▀ ██████████
21-
22-
```
23-
241
<div align="center">
252

3+
<img src="./favicon.svg" alt="AI-PULSE Logo" width="120" height="120">
4+
265
# 🚀 AI-PULSE
276

287
### 🤖 Your Real-Time AI & Cybersecurity News Aggregator
@@ -222,6 +201,3 @@ Non-human employees are becoming the future of cybersecurity, and enterprises ne
222201

223202
</div>
224203

225-
⚠️ LinkedIn token not configured, skipping auto-post
226-
227-
✅ Aggregation complete!

portfolio.html

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -314,6 +314,15 @@
314314
}
315315
}
316316
</style>
317+
318+
<!-- Google tag (gtag.js) -->
319+
<script async src="https://www.googletagmanager.com/gtag/js?id=G-LWN1RSPQMJ"></script>
320+
<script>
321+
window.dataLayer = window.dataLayer || [];
322+
function gtag(){dataLayer.push(arguments);}
323+
gtag('js', new Date());
324+
gtag('config', 'G-LWN1RSPQMJ');
325+
</script>
317326
</head>
318327
<body>
319328
<!-- Hero Section -->

reader.html

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -340,6 +340,15 @@
340340
padding-bottom: 50px;
341341
}
342342
</style>
343+
344+
<!-- Google tag (gtag.js) -->
345+
<script async src="https://www.googletagmanager.com/gtag/js?id=G-LWN1RSPQMJ"></script>
346+
<script>
347+
window.dataLayer = window.dataLayer || [];
348+
function gtag(){dataLayer.push(arguments);}
349+
gtag('js', new Date());
350+
gtag('config', 'G-LWN1RSPQMJ');
351+
</script>
343352
</head>
344353
<body>
345354
<!-- Header -->

src/aggregator.js

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,10 @@ const FEED_CATEGORIES = {
2121
]
2222
};
2323

24-
// UTM parameters for analytics tracking
25-
function addUTMParams(url, source, medium = 'rss', campaign = 'ai-pulse') {
26-
const utmParams = `utm_source=${source}&utm_medium=${medium}&utm_campaign=${campaign}&utm_content=aggregator`;
24+
// UTM parameters for AI-Pulse traffic tracking
25+
// Tracks clicks sent FROM AI-Pulse TO external sites
26+
function addUTMParams(url, category = 'general') {
27+
const utmParams = `utm_source=ai-pulse&utm_medium=reader&utm_campaign=article&utm_content=${category}`;
2728
return url.includes('?') ? `${url}&${utmParams}` : `${url}?${utmParams}`;
2829
}
2930

@@ -75,12 +76,12 @@ function smartTruncate(text, maxLength = 500) {
7576
}
7677

7778
// Sanitize and process articles
78-
function sanitizeArticle(article, sourceName, tags) {
79+
function sanitizeArticle(article, sourceName, tags, category) {
7980
const rawSummary = article.contentSnippet?.replace(/<[^>]*>/g, '') || '';
8081

8182
return {
8283
title: article.title?.replace(/<[^>]*>/g, '').slice(0, 200) || 'Untitled',
83-
link: addUTMParams(article.link, sourceName.toLowerCase().replace(/\s/g, '-')),
84+
link: addUTMParams(article.link, category), // UTM tracks traffic FROM AI-Pulse
8485
pubDate: new Date(article.pubDate || Date.now()),
8586
source: sourceName,
8687
tags: tags,
@@ -98,8 +99,8 @@ async function aggregateCategory(categoryName, feeds) {
9899
try {
99100
console.log(` ✓ Fetching: ${feed.name}`);
100101
const feedData = await parser.parseURL(feed.url);
101-
const items = feedData.items.slice(0, 10).map(item =>
102-
sanitizeArticle(item, feed.name, feed.tags)
102+
const items = feedData.items.slice(0, 10).map(item =>
103+
sanitizeArticle(item, feed.name, feed.tags, categoryName)
103104
);
104105
articles.push(...items);
105106
} catch (error) {

stats.html

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,15 @@
258258
}
259259
}
260260
</style>
261+
262+
<!-- Google tag (gtag.js) -->
263+
<script async src="https://www.googletagmanager.com/gtag/js?id=G-LWN1RSPQMJ"></script>
264+
<script>
265+
window.dataLayer = window.dataLayer || [];
266+
function gtag(){dataLayer.push(arguments);}
267+
gtag('js', new Date());
268+
gtag('config', 'G-LWN1RSPQMJ');
269+
</script>
261270
</head>
262271
<body>
263272
<div class="container">

0 commit comments

Comments
 (0)