Compare commits

..
1 Commits
Author SHA1 Message Date
jaandrle f33b0fa3c2 🎉 2024-06-28 13:46:26 +02:00
5 changed files with 546 additions and 730 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) {
+314 -206
View File
@@ -1,271 +1,388 @@
{
"instances_cz": [
{
"instance": "cztwitter.cz",
"mau": 164,
"user_count": 878,
"week": 8935164020,
"statuses": 1192,
"logins": 282,
"registrations": 82
},
{
"instance": "f.cz",
"mau": 107,
"user_count": 222,
"week": 8935116480,
"statuses": 2090,
"logins": 252,
"registrations": 34
},
{
"instance": "mamutovo.cz",
"mau": 113,
"user_count": 159,
"week": 8935017470,
"statuses": 6548,
"logins": 465,
"registrations": 7
"instance": "mastodonczech.cz",
"mau": 741,
"user_count": 5300,
"week": 8579960795,
"statuses": 10560,
"logins": 2059,
"registrations": 12
},
{
"instance": "witter.cz",
"mau": 248,
"user_count": 1786,
"week": 8934996020,
"statuses": 1440,
"logins": 742,
"mau": 260,
"user_count": 1482,
"week": 8579976030,
"statuses": 2624,
"logins": 705,
"registrations": 10
},
{
"instance": "f.cz",
"mau": 46,
"user_count": 119,
"week": 8579983760,
"statuses": 894,
"logins": 142,
"registrations": 3
},
{
"instance": "mastodon.arch-linux.cz",
"mau": 178,
"user_count": 2987,
"week": 8579851790,
"statuses": 6207,
"logins": 498,
"registrations": 2
},
{
"instance": "toot.whatever.cz",
"mau": 8,
"user_count": 66,
"week": 8935012930,
"statuses": 236,
"logins": 26,
"instance": "mastodon.pirati.cz",
"mau": 36,
"user_count": 379,
"week": 8580233190,
"statuses": 97,
"logins": 103,
"registrations": 1
},
{
"instance": "mastodonczech.cz",
"mau": 551,
"user_count": 5794,
"week": 8935173915,
"statuses": 8622,
"logins": 1591,
"registrations": 0
},
{
"instance": "mastodon.frel.cz",
"mau": 1,
"user_count": 1,
"week": 8934946870,
"statuses": 0,
"logins": 2,
"registrations": 0
},
{
"instance": "mastodon.pirati.cz",
"mau": 22,
"user_count": 397,
"week": 8935100900,
"statuses": 18,
"logins": 58,
"registrations": 0
},
{
"instance": "boskovice.social",
"mau": 8,
"user_count": 32,
"week": 8935264725,
"statuses": 152,
"logins": 30,
"registrations": 0
},
{
"instance": "hippy.cz",
"mau": 2,
"user_count": 3,
"week": 8935197921,
"statuses": 98,
"logins": 9,
"registrations": 0
},
{
"instance": "vaclavpasek.cz",
"mau": 1,
"user_count": 1,
"week": 8935039690,
"statuses": 105,
"logins": 5,
"registrations": 0
},
{
"instance": "space.robozor.cz",
"mau": 1,
"user_count": 1,
"week": 8935273630,
"statuses": 34,
"logins": 4,
"registrations": 0
"instance": "toot.whatever.cz",
"mau": 5,
"user_count": 55,
"week": 8580260155,
"statuses": 33,
"logins": 16,
"registrations": 1
},
{
"instance": "kompost.cz",
"mau": 10,
"user_count": 34,
"week": 8935158780,
"statuses": 213,
"logins": 40,
"registrations": 0
"mau": 11,
"user_count": 33,
"week": 8580261425,
"statuses": 214,
"logins": 43,
"registrations": 1
},
{
"instance": "mutant.cz",
"mau": 1,
"user_count": 3,
"week": 8935164705,
"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": 5,
"logins": 17,
"registrations": 0
},
{
"instance": "spondr.cz",
"mau": 3,
"user_count": 4,
"week": 8934906230,
"statuses": 76,
"logins": 15,
"instance": "cztwitter.cz",
"mau": 131,
"user_count": 766,
"week": 8580176805,
"statuses": 1578,
"logins": 368,
"registrations": 0
},
{
"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": 8934918485,
"statuses": 68,
"logins": 6,
"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": 1,
"mau": 5,
"user_count": 18,
"week": 8934882020,
"statuses": 626,
"week": 8580242605,
"statuses": 269,
"logins": 18,
"registrations": 0
},
{
"instance": "fediverse.cz",
"mau": 2,
"user_count": 18,
"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": 8934982640,
"statuses": 62,
"logins": 34,
"mau": 9,
"user_count": 14,
"week": 8579926635,
"statuses": 27,
"logins": 39,
"registrations": 0
},
{
"instance": "ajtaci.club",
"mau": 1,
"user_count": 9,
"week": 8935188025,
"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": 3,
"user_count": 10,
"week": 8935180365,
"statuses": 1,
"logins": 11,
"mau": 4,
"user_count": 9,
"week": 8579926085,
"statuses": 125,
"logins": 16,
"registrations": 0
},
{
"instance": "mastodon.starnet.cz",
"mau": 2,
"user_count": 8,
"week": 8935117760,
"user_count": 7,
"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": 8935052440,
"statuses": 45,
"logins": 15,
"week": 8579901010,
"statuses": 22,
"logins": 12,
"registrations": 0
},
{
"instance": "mastodon.hinata.cz",
"mau": 1,
"user_count": 3,
"week": 8934844895,
"week": 8580250055,
"statuses": 0,
"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": 8934886435,
"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": 8934924020,
"statuses": 44,
"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": 8934910605,
"statuses": 6,
"logins": 5,
"registrations": 0
},
{
"instance": "social.jirutka.cz",
"mau": 0,
"user_count": 2,
"week": 8935159280,
"statuses": 0,
"logins": 0,
"registrations": 0
},
{
"instance": "mastodon.1984.cz",
"mau": 1,
"user_count": 21,
"week": 8934947825,
"statuses": 20,
"week": 8580096015,
"statuses": 5,
"logins": 4,
"registrations": 0
},
{
"instance": "mastodon.macadmin.cz",
"mau": 1,
"user_count": 1,
"week": 8934845035,
"statuses": 1,
"logins": 4,
"registrations": 0
},
{
"instance": "social.vojtat.cz",
"instance": "mastodon.ok1bt.cz",
"mau": 0,
"user_count": 1,
"week": 8934903250,
"user_count": 7,
"week": 8579952040,
"statuses": 0,
"logins": 0,
"registrations": 0
@@ -273,45 +390,36 @@
{
"instance": "torsten.cz",
"mau": 1,
"user_count": 7,
"week": 8934978640,
"statuses": 0,
"logins": 4,
"registrations": 0
},
{
"instance": "kirtapos.cz",
"mau": 0,
"user_count": 1,
"week": 8935273640,
"statuses": 0,
"logins": 0,
"registrations": 0
},
{
"instance": "onqasarch.cz",
"mau": 2,
"user_count": 2,
"week": 8935090860,
"statuses": 31,
"logins": 8,
"user_count": 4,
"week": 8580264110,
"statuses": 13,
"logins": 5,
"registrations": 0
},
{
"instance": "mastodon.zs-studanka.cz",
"mau": 1,
"user_count": 1,
"week": 8935237605,
"statuses": 3,
"logins": 3,
"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": 21731,
"logins": 3645,
"registrations": 126,
"mau": 1270,
"user_count": 9538
"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"