alpha
Login
or
Join now
atpota.to
/
cred.blue
Star
0
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
This repository has no description
Star
0
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
Overview
Issues
Pulls
Pipelines
Merge branch 'master' into testing
author
damedotblog
date
1 year ago
(Feb 22, 2025, 1:01 PM -0500)
commit
547694de
547694de5ebde16266d9846a808a7dfa57460727
parent
98a6789e
98a6789eeca0075f8defb3005606cf5423fb1f0c
+31
-32
3 changed files
Expand all
Collapse all
Unified
Split
.github
FUNDING.yml
src
accountData.js
components
Leaderboard
Leaderboard.css
+4
.github/FUNDING.yml
Reviewed
···
1
1
+
# These are supported funding model platforms
2
2
+
3
3
+
patreon: dameis
4
4
+
ko_fi: dameis
+18
-26
src/accountData.js
Reviewed
···
434
434
altTextPercentage = 0,
435
435
postsPerDay = 0,
436
436
} = stats;
437
437
+
438
438
+
// Check for lurker first
437
439
if (postsPerDay < 0.1 && stats.totalBskyRecordsPerDay > 0.3) {
438
440
return "Lurker";
439
441
}
440
440
-
if (onlyPostsPerDay > 0.8 && replyOtherPercentage >= 0.3) {
441
441
-
if (textPercentage > linkPercentage && textPercentage > imagePercentage && textPercentage > videoPercentage) {
442
442
-
return "Engaged Text Poster";
443
443
-
}
444
444
-
if (imagePercentage > linkPercentage && imagePercentage > textPercentage && imagePercentage > videoPercentage) {
445
445
-
return altTextPercentage <= 0.3 ? "Engaged Image Poster who should use more alt text" : "Engaged Image Poster";
446
446
-
}
447
447
-
if (linkPercentage > imagePercentage && linkPercentage > textPercentage && linkPercentage > videoPercentage) {
448
448
-
return "Engaged Link Poster";
449
449
-
}
450
450
-
if (videoPercentage > imagePercentage && videoPercentage > textPercentage && videoPercentage > linkPercentage) {
451
451
-
return "Engaged Video Poster";
452
452
-
}
453
453
-
return "Engaged Poster";
454
454
-
} else if (onlyPostsPerDay > 0.8 && replyOtherPercentage < 0.3) {
442
442
+
443
443
+
// If posting regularly (removed engagement check)
444
444
+
if (onlyPostsPerDay > 0.8) {
455
445
if (textPercentage > linkPercentage && textPercentage > imagePercentage && textPercentage > videoPercentage) {
456
456
-
return "Unengaged Text Poster";
446
446
+
return "Text Poster";
457
447
}
458
448
if (imagePercentage > linkPercentage && imagePercentage > textPercentage && imagePercentage > videoPercentage) {
459
459
-
return altTextPercentage <= 0.3 ? "Unengaged Image Poster who is inconsistent with alt text" : "Unengaged Image Poster";
449
449
+
return altTextPercentage <= 0.3 ? "Image Poster whose working on using alt text" : "Image Poster";
460
450
}
461
451
if (linkPercentage > imagePercentage && linkPercentage > textPercentage && linkPercentage > videoPercentage) {
462
462
-
return "Unengaged Link Poster";
452
452
+
return "Link Poster";
463
453
}
464
454
if (videoPercentage > imagePercentage && videoPercentage > textPercentage && videoPercentage > linkPercentage) {
465
465
-
return "Unengaged Video Poster";
455
455
+
return "Video Poster";
466
456
}
467
467
-
return "Unengaged Poster";
457
457
+
return "Mixed Content Poster";
468
458
}
459
459
+
460
460
+
// Special interaction types
469
461
if (replyOtherPercentage >= 0.5) return "Reply Guy";
470
462
if (stats.quoteOtherPercentage >= 0.5) return "Quote Guy";
471
463
if (stats.repostOtherPercentage >= 0.5) return "Repost Guy";
464
464
+
472
465
return "Unknown";
473
473
-
474
466
}
475
467
476
468
// 1. First, add this new function to calculate engagement rate
···
526
518
527
519
// Add engagement qualifier for all status levels
528
520
if (engagementRate <= ENGAGEMENT_THRESHOLDS.low) {
529
529
-
return `Unengaging ${baseStatus}`;
521
521
+
return `${baseStatus}`;
530
522
} else if (engagementRate <= ENGAGEMENT_THRESHOLDS.moderate) {
531
531
-
return `Moderately Engaging ${baseStatus}`;
523
523
+
return `Engaging ${baseStatus}`;
532
524
} else if (engagementRate >= ENGAGEMENT_THRESHOLDS.high) {
533
525
return `Highly Engaging ${baseStatus}`;
534
526
}
···
1072
1064
if (engagementRate > 0.03) {
1073
1065
engagementPhrase = "with exceptionally high engagement";
1074
1066
} else if (engagementRate > 0.01) {
1075
1075
-
engagementPhrase = "with strong engagement";
1067
1067
+
engagementPhrase = "with very high engagement";
1076
1068
} else if (engagementRate > 0.005) {
1077
1077
-
engagementPhrase = "with moderate engagement";
1069
1069
+
engagementPhrase = "with high engagement";
1078
1070
} else {
1079
1079
-
engagementPhrase = "with relatively low engagement";
1071
1071
+
engagementPhrase = "with normal engagement";
1080
1072
}
1081
1073
1082
1074
const narrative3 =
+9
-6
src/components/Leaderboard/Leaderboard.css
Reviewed
···
7
7
8
8
.leaderboard-card {
9
9
background: var(--navbar-bg);
10
10
-
border-radius: 8px;
10
10
+
border-radius: 12px;
11
11
border: 5px solid var(--card-border);
12
12
-
padding: 1.5rem;
12
12
+
padding: 1.7rem;
13
13
transition: background-color 0.3s ease, border-color 0.3s ease;
14
14
}
15
15
···
37
37
38
38
.filter-button {
39
39
padding: 0.5rem 1rem;
40
40
-
border-radius: 9999px;
40
40
+
border-radius: 6px;
41
41
border: none;
42
42
cursor: pointer;
43
43
transition: all 0.2s ease;
···
74
74
75
75
.table-container {
76
76
overflow-x: auto;
77
77
-
padding-bottom: 20px; /* Space for the scrollbar */
78
77
}
79
78
80
79
/* Webkit scrollbar styles */
···
115
114
.leaderboard-table th,
116
115
.leaderboard-table td {
117
116
padding: 0.75rem 1rem;
118
118
-
text-align: left;
117
117
+
text-align: center;
119
118
color: var(--text);
120
119
transition: color 0.3s ease;
121
120
}
···
131
130
}
132
131
133
132
.leaderboard-table tr:hover {
134
134
-
background: var(--card-border);
133
133
+
background: #b6b6b6;
134
134
+
}
135
135
+
136
136
+
.dark-mode .leaderboard-table tr:hover {
137
137
+
background: #151515;
135
138
}
136
139
137
140
/* Runner-up styling */