Compare commits

..

1 Commits

Author SHA1 Message Date
jaandrle f33b0fa3c2 🎉 2024-06-28 13:46:26 +02:00
5 changed files with 544 additions and 719 deletions
+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) {
+312 -195
View File
@@ -1,208 +1,343 @@
{
"instances_cz": [
{
"instance": "f.cz",
"mau": 88,
"user_count": 204,
"week": 8908326935,
"statuses": 2084,
"logins": 239,
"registrations": 26
},
{
"instance": "mamutovo.cz",
"mau": 120,
"user_count": 153,
"week": 8908233810,
"statuses": 7311,
"logins": 461,
"registrations": 17
},
{
"instance": "mastodonczech.cz",
"mau": 542,
"user_count": 5654,
"week": 8908353065,
"statuses": 9924,
"logins": 1605,
"registrations": 1
},
{
"instance": "mastodon.pirati.cz",
"mau": 21,
"user_count": 398,
"week": 8908241370,
"statuses": 37,
"logins": 58,
"registrations": 1
"mau": 741,
"user_count": 5300,
"week": 8579960795,
"statuses": 10560,
"logins": 2059,
"registrations": 12
},
{
"instance": "witter.cz",
"mau": 227,
"user_count": 1781,
"week": 8908214745,
"statuses": 1909,
"logins": 747,
"registrations": 0
"mau": 260,
"user_count": 1482,
"week": 8579976030,
"statuses": 2624,
"logins": 705,
"registrations": 10
},
{
"instance": "cztwitter.cz",
"mau": 61,
"user_count": 794,
"week": 8908439200,
"statuses": 635,
"logins": 160,
"registrations": 0
"instance": "f.cz",
"mau": 46,
"user_count": 119,
"week": 8579983760,
"statuses": 894,
"logins": 142,
"registrations": 3
},
{
"instance": "boskovice.social",
"mau": 10,
"user_count": 32,
"week": 8908083635,
"statuses": 195,
"logins": 39,
"registrations": 0
"instance": "mastodon.arch-linux.cz",
"mau": 178,
"user_count": 2987,
"week": 8579851790,
"statuses": 6207,
"logins": 498,
"registrations": 2
},
{
"instance": "hippy.cz",
"mau": 2,
"user_count": 3,
"week": 8908335035,
"statuses": 106,
"logins": 9,
"registrations": 0
"instance": "mastodon.pirati.cz",
"mau": 36,
"user_count": 379,
"week": 8580233190,
"statuses": 97,
"logins": 103,
"registrations": 1
},
{
"instance": "toot.whatever.cz",
"mau": 7,
"user_count": 65,
"week": 8908489765,
"statuses": 210,
"logins": 22,
"registrations": 0
},
{
"instance": "vaclavpasek.cz",
"mau": 1,
"user_count": 1,
"week": 8908149205,
"statuses": 108,
"logins": 5,
"registrations": 0
},
{
"instance": "space.robozor.cz",
"mau": 1,
"user_count": 1,
"week": 8908078505,
"statuses": 35,
"logins": 4,
"registrations": 0
"mau": 5,
"user_count": 55,
"week": 8580260155,
"statuses": 33,
"logins": 16,
"registrations": 1
},
{
"instance": "kompost.cz",
"mau": 11,
"user_count": 34,
"week": 8908188835,
"statuses": 184,
"logins": 47,
"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": 8908385455,
"statuses": 1,
"logins": 4,
"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": 8908128445,
"statuses": 80,
"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": 8908320985,
"statuses": 81,
"logins": 5,
"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": 8908330570,
"statuses": 514,
"logins": 4,
"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": 8908331795,
"statuses": 29,
"logins": 30,
"mau": 9,
"user_count": 14,
"week": 8579926635,
"statuses": 27,
"logins": 39,
"registrations": 0
},
{
"instance": "ajtaci.club",
"mau": 1,
"user_count": 9,
"week": 8908429015,
"week": 8579844105,
"statuses": 4,
"logins": 5,
"registrations": 0
},
{
"instance": "mastodon.darksheep.social",
"mau": 0,
"user_count": 11,
"week": 8580159440,
"statuses": 0,
"logins": 4,
"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": 2,
"user_count": 10,
"week": 8908432055,
"statuses": 1,
"logins": 7,
"mau": 4,
"user_count": 9,
"week": 8579926085,
"statuses": 125,
"logins": 16,
"registrations": 0
},
{
"instance": "mastodon.starnet.cz",
"mau": 1,
"mau": 2,
"user_count": 7,
"week": 8908449045,
"week": 8579859190,
"statuses": 10,
"logins": 6,
"registrations": 0
},
{
"instance": "blogator.com",
"mau": 0,
"user_count": 5,
"week": 8579917765,
"statuses": 0,
"logins": 5,
"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": 8908489775,
"statuses": 54,
"logins": 13,
"week": 8579901010,
"statuses": 22,
"logins": 12,
"registrations": 0
},
{
"instance": "mastodon.hinata.cz",
"mau": 1,
"user_count": 3,
"week": 8908171535,
"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": 8908489780,
"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
@@ -211,17 +346,53 @@
"instance": "rodina-sucha.cz",
"mau": 1,
"user_count": 1,
"week": 8908330025,
"statuses": 46,
"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": 8908093530,
"statuses": 9,
"week": 8580096015,
"statuses": 5,
"logins": 4,
"registrations": 0
},
{
"instance": "mastodon.ok1bt.cz",
"mau": 0,
"user_count": 7,
"week": 8579952040,
"statuses": 0,
"logins": 0,
"registrations": 0
},
{
"instance": "torsten.cz",
"mau": 1,
"user_count": 4,
"week": 8580264110,
"statuses": 13,
"logins": 5,
"registrations": 0
},
@@ -229,35 +400,8 @@
"instance": "mastodon.zs-studanka.cz",
"mau": 1,
"user_count": 1,
"week": 8908489780,
"statuses": 30,
"logins": 4,
"registrations": 0
},
{
"instance": "social.jirutka.cz",
"mau": 1,
"user_count": 2,
"week": 8908411615,
"statuses": 0,
"logins": 1,
"registrations": 0
},
{
"instance": "mastodon.1984.cz",
"mau": 2,
"user_count": 21,
"week": 8908369835,
"statuses": 18,
"logins": 8,
"registrations": 0
},
{
"instance": "mastodon.macadmin.cz",
"mau": 1,
"user_count": 1,
"week": 8908443645,
"statuses": 0,
"week": 8579992375,
"statuses": 10,
"logins": 4,
"registrations": 0
},
@@ -265,44 +409,17 @@
"instance": "social.vojtat.cz",
"mau": 1,
"user_count": 1,
"week": 8908177650,
"statuses": 0,
"logins": 1,
"registrations": 0
},
{
"instance": "torsten.cz",
"mau": 1,
"user_count": 7,
"week": 8908290430,
"week": 8580261025,
"statuses": 0,
"logins": 4,
"registrations": 0
},
{
"instance": "kirtapos.cz",
"mau": 0,
"user_count": 1,
"week": 8908477925,
"statuses": 0,
"logins": 0,
"registrations": 0
},
{
"instance": "onqasarch.cz",
"mau": 2,
"user_count": 2,
"week": 8908272360,
"statuses": 7,
"logins": 7,
"registrations": 0
}
],
"sum": {
"statuses": 23608,
"logins": 3528,
"registrations": 45,
"mau": 1127,
"user_count": 9283
"statuses": 23780,
"logins": 4276,
"registrations": 31,
"mau": 1512,
"user_count": 13072
}
}
+220 -498
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"