Compare commits

..
1 Commits
Author SHA1 Message Date
jaandrle f33b0fa3c2 ⚡ 🎉 2024-06-28 13:46:26 +02:00
5 changed files with 539 additions and 723 deletions

No files matched your search

+3 -3
View File
@@ -1,8 +1,8 @@
name: Collect month data
name: Update RSS
on:
workflow_dispatch:
schedule:
- cron: '0 12 1 * *' # At 12:00 Prague on the first day of the month
- cron: '39 19 * * *' # daily at 19:39 Prague
jobs:
update-rss:
@@ -14,4 +14,4 @@ jobs:
node-version: lts/*
cache: 'npm'
- run: npm ci
- run: npx nodejsscript mastodonCzStats.js --git
- run: npx nodejsscript cli.mjs pull --git
+5 -19
View File
@@ -9,7 +9,7 @@ $.api("", true)
.version(version)
.describe(description)
.option("--git", "Commit changes to git")
.action(async function main({ git: is_git }){
.action(async function main(){
let stats= [];
for(const instance of instances_cz_pre){
echo.use("-R", "Shromažďuji instance: " + instance);
@@ -28,30 +28,16 @@ $.api("", true)
instances_cz: stats.sort((a, b)=> b.registrations-a.registrations),
sum: stats.reduce((acc, stats) => sumStats([acc, stats]), { statuses: 0, logins: 0, registrations: 0, mau: 0, user_count: 0 })
};
if(is_git) s.run`git pull --rebase`;
echo(JSON.stringify(out, null, " ")).to(store);
if(is_git) gitCommit([ store ], "cron");
echo(JSON.stringify(out, null, " ")).to("./mastodonCzStats.json");
$.exit(0);
})
.parse();
function gitCommit(files, des= "not specified"){
if(!files.length || !s.run`git diff --numstat`.trim())
return echo("Nothig todo");
echo("Diff to save");
s.run`git config user.name "Bot"`;
s.run`git config user.email "${"zc.murtnec@naj.elrdna".split("").reverse().join("")}"`;
s.run`git add ${files}`;
s.run`git commit -m "Updated by bot – ${des}"`;
s.run`git push`;
s.run`git config --remove-section user`;
}
async function* collectStats(instances, weeks = 1) {
for(const instance of instances){
const { stats, mau, user_count }= await fetchInstanceStats(instance).catch(_=> ({}));
if(!stats || !Array.isArray(stats) || !stats.length) continue;
yield { instance, mau, user_count, ...sumStats(stats.slice(0, Math.min(stats.length, weeks + 1))) };
const { stats, mau, user_count }= await fetchInstanceStats(instance).catch(e=> ({}));
if(!stats || !Array.isArray(stats)) continue;
yield { instance, mau, user_count, ...sumStats(stats.slice(0, weeks + 1)) };
}
}
function sumStats(arr) {
+307 -199
View File
@@ -1,271 +1,388 @@
{
"instances_cz": [
{
"instance": "cztwitter.cz",
"mau": 195,
"user_count": 779,
"week": 8948189560,
"statuses": 1360,
"logins": 296,
"registrations": 42
},
{
"instance": "f.cz",
"mau": 104,
"user_count": 219,
"week": 8948049390,
"statuses": 1963,
"logins": 257,
"registrations": 35
"instance": "mastodonczech.cz",
"mau": 741,
"user_count": 5300,
"week": 8579960795,
"statuses": 10560,
"logins": 2059,
"registrations": 12
},
{
"instance": "witter.cz",
"mau": 228,
"user_count": 1799,
"week": 8947809015,
"statuses": 1589,
"logins": 677,
"registrations": 4
"mau": 260,
"user_count": 1482,
"week": 8579976030,
"statuses": 2624,
"logins": 705,
"registrations": 10
},
{
"instance": "mamutovo.cz",
"mau": 121,
"user_count": 160,
"week": 8947905105,
"statuses": 6444,
"logins": 458,
"instance": "f.cz",
"mau": 46,
"user_count": 119,
"week": 8579983760,
"statuses": 894,
"logins": 142,
"registrations": 3
},
{
"instance": "mastodonczech.cz",
"mau": 553,
"user_count": 5658,
"week": 8948121505,
"statuses": 9179,
"logins": 1596,
"registrations": 1
"instance": "mastodon.arch-linux.cz",
"mau": 178,
"user_count": 2987,
"week": 8579851790,
"statuses": 6207,
"logins": 498,
"registrations": 2
},
{
"instance": "hippy.cz",
"mau": 4,
"user_count": 4,
"week": 8947849085,
"statuses": 2734,
"logins": 16,
"instance": "mastodon.pirati.cz",
"mau": 36,
"user_count": 379,
"week": 8580233190,
"statuses": 97,
"logins": 103,
"registrations": 1
},
{
"instance": "toot.whatever.cz",
"mau": 10,
"user_count": 67,
"week": 8947913405,
"statuses": 201,
"logins": 25,
"registrations": 0
},
{
"instance": "mastodon.frel.cz",
"mau": 1,
"user_count": 1,
"week": 8947953080,
"statuses": 0,
"logins": 2,
"registrations": 0
},
{
"instance": "mastodon.pirati.cz",
"mau": 22,
"user_count": 397,
"week": 8948024540,
"statuses": 22,
"logins": 51,
"registrations": 0
},
{
"instance": "boskovice.social",
"mau": 8,
"user_count": 32,
"week": 8947864050,
"statuses": 237,
"logins": 34,
"registrations": 0
},
{
"instance": "vaclavpasek.cz",
"mau": 1,
"user_count": 1,
"week": 8948037655,
"statuses": 126,
"logins": 4,
"registrations": 0
},
{
"instance": "space.robozor.cz",
"mau": 1,
"user_count": 1,
"week": 8947932415,
"statuses": 89,
"logins": 4,
"registrations": 0
"mau": 5,
"user_count": 55,
"week": 8580260155,
"statuses": 33,
"logins": 16,
"registrations": 1
},
{
"instance": "kompost.cz",
"mau": 9,
"user_count": 34,
"week": 8947996270,
"statuses": 186,
"logins": 44,
"mau": 11,
"user_count": 33,
"week": 8580261425,
"statuses": 214,
"logins": 43,
"registrations": 1
},
{
"instance": "mamutovo.cz",
"mau": 7,
"user_count": 10,
"week": 8579983910,
"statuses": 422,
"logins": 21,
"registrations": 1
},
{
"instance": "nasface.cz",
"mau": 12,
"user_count": 1387,
"week": 8579868095,
"statuses": 0,
"logins": 17,
"registrations": 0
},
{
"instance": "mutant.cz",
"mau": 1,
"user_count": 3,
"week": 8947913335,
"statuses": 9,
"logins": 5,
"instance": "cztwitter.cz",
"mau": 131,
"user_count": 766,
"week": 8580176805,
"statuses": 1578,
"logins": 368,
"registrations": 0
},
{
"instance": "spondr.cz",
"mau": 3,
"user_count": 4,
"week": 8947876520,
"statuses": 99,
"logins": 13,
"instance": "gomastodon.cz",
"mau": 2,
"user_count": 240,
"week": 8580124535,
"statuses": 0,
"logins": 1,
"registrations": 0
},
{
"instance": "mastodon.macsnet.cz",
"mau": 2,
"user_count": 51,
"week": 8947954245,
"statuses": 156,
"logins": 9,
"mau": 3,
"user_count": 52,
"week": 8580040610,
"statuses": 136,
"logins": 12,
"registrations": 0
},
{
"instance": "lgbtcz.social",
"mau": 6,
"user_count": 44,
"week": 8579846185,
"statuses": 4,
"logins": 19,
"registrations": 0
},
{
"instance": "boskovice.social",
"mau": 9,
"user_count": 26,
"week": 8580066670,
"statuses": 129,
"logins": 36,
"registrations": 0
},
{
"instance": "mastodon.1984.cz",
"mau": 3,
"user_count": 20,
"week": 8579954685,
"statuses": 0,
"logins": 11,
"registrations": 0
},
{
"instance": "mastodon.rozhlas.cz",
"mau": 5,
"user_count": 18,
"week": 8580242605,
"statuses": 269,
"logins": 18,
"registrations": 0
},
{
"instance": "fediverse.cz",
"mau": 2,
"user_count": 18,
"week": 8947977030,
"statuses": 631,
"logins": 6,
"week": 8579869890,
"statuses": 0,
"logins": 5,
"registrations": 0
},
{
"instance": "mastodon.urbancloud.cz",
"mau": 11,
"user_count": 16,
"week": 8579982050,
"statuses": 14,
"logins": 32,
"registrations": 0
},
{
"instance": "kocour.club",
"mau": 8,
"user_count": 15,
"week": 8948028100,
"statuses": 51,
"logins": 28,
"mau": 9,
"user_count": 14,
"week": 8579926635,
"statuses": 27,
"logins": 39,
"registrations": 0
},
{
"instance": "ajtaci.club",
"mau": 1,
"user_count": 9,
"week": 8947926300,
"statuses": 2,
"week": 8579844105,
"statuses": 4,
"logins": 5,
"registrations": 0
},
{
"instance": "mastodon.darksheep.social",
"mau": 0,
"user_count": 11,
"week": 8580159440,
"statuses": 0,
"logins": 0,
"registrations": 0
},
{
"instance": "social.filik.eu",
"mau": 4,
"user_count": 7,
"week": 8580201360,
"statuses": 12,
"logins": 13,
"registrations": 0
},
{
"instance": "social.meyer.cz",
"mau": 4,
"user_count": 13,
"week": 8947912800,
"statuses": 1,
"logins": 13,
"user_count": 9,
"week": 8579926085,
"statuses": 125,
"logins": 16,
"registrations": 0
},
{
"instance": "mastodon.starnet.cz",
"mau": 2,
"user_count": 9,
"week": 8948124230,
"statuses": 0,
"user_count": 7,
"week": 8579859190,
"statuses": 10,
"logins": 6,
"registrations": 0
},
{
"instance": "blogator.com",
"mau": 0,
"user_count": 5,
"week": 8579917765,
"statuses": 0,
"logins": 0,
"registrations": 0
},
{
"instance": "hatedon.1984.cz",
"mau": 1,
"user_count": 6,
"week": 8498617695,
"statuses": 11,
"logins": 4,
"registrations": 0
},
{
"instance": "mastodon.loutaci.cz",
"mau": 0,
"user_count": 7,
"week": 8580272895,
"statuses": 0,
"logins": 1,
"registrations": 0
},
{
"instance": "mastodon.skorpil.cz",
"mau": 3,
"user_count": 3,
"week": 8947858425,
"statuses": 42,
"logins": 14,
"week": 8579901010,
"statuses": 22,
"logins": 12,
"registrations": 0
},
{
"instance": "mastodon.hinata.cz",
"mau": 1,
"user_count": 3,
"week": 8947851370,
"week": 8580250055,
"statuses": 0,
"logins": 5,
"logins": 4,
"registrations": 0
},
{
"instance": "social.toxwat.cz",
"mau": 2,
"user_count": 4,
"week": 8580186065,
"statuses": 0,
"logins": 2,
"registrations": 0
},
{
"instance": "spondr.cz",
"mau": 3,
"user_count": 3,
"week": 8579861675,
"statuses": 217,
"logins": 15,
"registrations": 0
},
{
"instance": "hlidacstatu.social",
"mau": 1,
"user_count": 3,
"week": 8580261595,
"statuses": 1,
"logins": 4,
"registrations": 0
},
{
"instance": "mastodon.train.cz",
"mau": 1,
"user_count": 2,
"week": 8579852440,
"statuses": 0,
"logins": 4,
"registrations": 0
},
{
"instance": "social.bobek.cz",
"mau": 1,
"user_count": 2,
"week": 8947892280,
"week": 8579922885,
"statuses": 0,
"logins": 5,
"registrations": 0
},
{
"instance": "social.blep.cz",
"mau": 1,
"user_count": 2,
"week": 8579976085,
"statuses": 0,
"logins": 4,
"registrations": 0
},
{
"instance": "mastodon.haxo.cz",
"mau": 0,
"user_count": 2,
"week": 8580272925,
"statuses": 0,
"logins": 0,
"registrations": 0
},
{
"instance": "mutant.cz",
"mau": 1,
"user_count": 2,
"week": 8580107325,
"statuses": 5,
"logins": 4,
"registrations": 0
},
{
"instance": "mastodon.gmb.cz",
"mau": 1,
"user_count": 1,
"week": 8580144695,
"statuses": 0,
"logins": 4,
"registrations": 0
},
{
"instance": "rodina-sucha.cz",
"mau": 1,
"user_count": 1,
"week": 8947959025,
"statuses": 40,
"week": 8580244660,
"statuses": 85,
"logins": 5,
"registrations": 0
},
{
"instance": "social.taborsky.cz",
"mau": 1,
"user_count": 1,
"week": 8580259410,
"statuses": 2,
"logins": 4,
"registrations": 0
},
{
"instance": "cynikobecny.cz",
"mau": 2,
"user_count": 2,
"week": 8579852145,
"statuses": 50,
"logins": 2,
"registrations": 0
},
{
"instance": "mastodon.morwud.cz",
"mau": 1,
"user_count": 1,
"week": 8947874135,
"week": 8580096015,
"statuses": 5,
"logins": 5,
"registrations": 0
},
{
"instance": "social.jirutka.cz",
"mau": 1,
"user_count": 2,
"week": 8947962035,
"statuses": 0,
"logins": 2,
"registrations": 0
},
{
"instance": "mastodon.1984.cz",
"mau": 1,
"user_count": 21,
"week": 8947932130,
"statuses": 19,
"logins": 5,
"registrations": 0
},
{
"instance": "mastodon.macadmin.cz",
"mau": 1,
"user_count": 1,
"week": 8948192065,
"statuses": 0,
"logins": 4,
"registrations": 0
},
{
"instance": "social.vojtat.cz",
"instance": "mastodon.ok1bt.cz",
"mau": 0,
"user_count": 1,
"week": 8947995525,
"user_count": 7,
"week": 8579952040,
"statuses": 0,
"logins": 0,
"registrations": 0
@@ -273,45 +390,36 @@
{
"instance": "torsten.cz",
"mau": 1,
"user_count": 3,
"week": 8948045165,
"statuses": 1,
"user_count": 4,
"week": 8580264110,
"statuses": 13,
"logins": 5,
"registrations": 0
},
{
"instance": "kirtapos.cz",
"mau": 0,
"user_count": 1,
"week": 8948157660,
"statuses": 0,
"logins": 0,
"registrations": 0
},
{
"instance": "onqasarch.cz",
"mau": 2,
"user_count": 2,
"week": 8948056440,
"statuses": 4,
"logins": 7,
"registrations": 0
},
{
"instance": "mastodon.zs-studanka.cz",
"mau": 1,
"user_count": 1,
"week": 8947906640,
"statuses": 16,
"logins": 5,
"week": 8579992375,
"statuses": 10,
"logins": 4,
"registrations": 0
},
{
"instance": "social.vojtat.cz",
"mau": 1,
"user_count": 1,
"week": 8580261025,
"statuses": 0,
"logins": 4,
"registrations": 0
}
],
"sum": {
"statuses": 25206,
"logins": 3611,
"registrations": 86,
"mau": 1294,
"user_count": 9316
"statuses": 23780,
"logins": 4276,
"registrations": 31,
"mau": 1512,
"user_count": 13072
}
}
+221 -499
View File
File diff suppressed because it is too large. Load diff
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "mastodon-cz-stats",
"version": "1.0.2",
"version": "1.0.0",
"description": "Experimentální skript k získání českých Mastodon instancí a dodatečných informací.",
"bin": "mastodonCzStats.js",
"scripts": {
@@ -16,8 +16,8 @@
"url": "https://gitea.jaandrle.cz/jaandrle/mastodonCzStats/issues"
},
"license": "MIT",
"peerDependencies": {
"nodejsscript": "^1.1.1"
"dependencies": {
"nodejsscript": "~1.0"
},
"engines": {
"node": ">=18.19"