inventa@lemmy.fmhy.ml to FREEMEDIAHECKYEAH@lemmy.fmhy.ml · 1 year agoWho blocks FMHYmessage-squaremessage-square67fedilinkarrow-up138arrow-down11file-text
arrow-up137arrow-down1message-squareWho blocks FMHYinventa@lemmy.fmhy.ml to FREEMEDIAHECKYEAH@lemmy.fmhy.ml · 1 year agomessage-square67fedilinkfile-text
minus-squareinventa@lemmy.fmhy.mlOPlinkfedilinkarrow-up4arrow-down2·1 year agoThanks for this. It’s a bit too complicated, hopefully at some point the info will be just available
minus-squareplisken@lemmy.fmhy.mllinkfedilinkarrow-up12·edit-21 year agofeddit.de (users active last day = 641) civilloquy.com (users active last day = 1) thesimplecorner.org (users active last day = 1)
minus-squareInternetPirate@lemmy.fmhy.mllinkfedilinkarrow-up1·edit-21 year ago❯ git clone https://github.com/LemmyNet/lemmy-stats-crawler ❯ cd lemmy-stats-crawler ❯ cargo run -- --json > stats.json ❯ python instance_analysis.py Enter the instance to find blocking instances: lemmy.fmhy.ml Instances blocking lemmy.fmhy.ml : feddit.de (642 users/day, 1317 users/week, 1397 users/month, 1441 users/half_year) civilloquy.com (1 users/day, 1 users/week, 2 users/month, 2 users/half_year) thesimplecorner.org (1 users/day, 1 users/week, 1 users/month, 1 users/half_year) Total users from blocking instances: 644 users/day 1319 users/week 1400 users/month 1444 users/half_year Instances blocked by lemmy.fmhy.ml : lemmygrad.ml (198 users/day, 388 users/week, 481 users/month, 726 users/half_year) Total users from blocked instances: 198 users/day 388 users/week 481 users/month 726 users/half_year instance_analysis.py import json with open("stats.json", "r") as file: data = json.load(file) def find_blocking_instances(target_instance, data): blocking_instances = [] blocked_instances = [] for instance in data["instance_details"]: federated_instances = instance["site_info"]["federated_instances"] if federated_instances is not None: if target_instance in (federated_instances.get("blocked") or []): blocking_instances.append(instance["domain"]) if instance["domain"] == target_instance: blocked_instances.extend(federated_instances.get("blocked") or []) return blocking_instances, blocked_instances def get_instance_user_counts(instance): counts = instance["site_info"]["site_view"]["counts"] return { "users_active_day": counts["users_active_day"], "users_active_week": counts["users_active_week"], "users_active_month": counts["users_active_month"], "users_active_half_year": counts["users_active_half_year"], } def print_instance_activity(instance): domain = instance["domain"] counts = instance["site_info"]["site_view"]["counts"] print(f"{domain} ({counts['users_active_day']} users/day, {counts['users_active_week']} users/week, {counts['users_active_month']} users/month, {counts['users_active_half_year']} users/half_year)") total_blocking_users = { "users_active_day": 0, "users_active_week": 0, "users_active_month": 0, "users_active_half_year": 0, } total_blocked_users = { "users_active_day": 0, "users_active_week": 0, "users_active_month": 0, "users_active_half_year": 0, } user_input = input("Enter the instance to find blocking instances: ") blocking_instances, blocked_instances = find_blocking_instances(user_input, data) print("\nInstances blocking", user_input, ":") for domain in blocking_instances: for instance in data["instance_details"]: if instance["domain"] == domain: print_instance_activity(instance) user_counts = get_instance_user_counts(instance) for key in total_blocking_users: total_blocking_users[key] += user_counts[key] print("\nTotal users from blocking instances:") print(f"{total_blocking_users['users_active_day']} users/day") print(f"{total_blocking_users['users_active_week']} users/week") print(f"{total_blocking_users['users_active_month']} users/month") print(f"{total_blocking_users['users_active_half_year']} users/half_year") print("\nInstances blocked by", user_input, ":") for domain in blocked_instances: for instance in data["instance_details"]: if instance["domain"] == domain: print_instance_activity(instance) user_counts = get_instance_user_counts(instance) for key in total_blocked_users: total_blocked_users[key] += user_counts[key] print("\nTotal users from blocked instances:") print(f"{total_blocked_users['users_active_day']} users/day") print(f"{total_blocked_users['users_active_week']} users/week") print(f"{total_blocked_users['users_active_month']} users/month") print(f"{total_blocked_users['users_active_half_year']} users/half_year")
Thanks for this. It’s a bit too complicated, hopefully at some point the info will be just available
feddit.de (users active last day = 641)
civilloquy.com (users active last day = 1)
thesimplecorner.org (users active last day = 1)
Thank you :)
❯ git clone https://github.com/LemmyNet/lemmy-stats-crawler ❯ cd lemmy-stats-crawler ❯ cargo run -- --json > stats.json ❯ python instance_analysis.py Enter the instance to find blocking instances: lemmy.fmhy.ml Instances blocking lemmy.fmhy.ml : feddit.de (642 users/day, 1317 users/week, 1397 users/month, 1441 users/half_year) civilloquy.com (1 users/day, 1 users/week, 2 users/month, 2 users/half_year) thesimplecorner.org (1 users/day, 1 users/week, 1 users/month, 1 users/half_year) Total users from blocking instances: 644 users/day 1319 users/week 1400 users/month 1444 users/half_year Instances blocked by lemmy.fmhy.ml : lemmygrad.ml (198 users/day, 388 users/week, 481 users/month, 726 users/half_year) Total users from blocked instances: 198 users/day 388 users/week 481 users/month 726 users/half_year
instance_analysis.py
import json with open("stats.json", "r") as file: data = json.load(file) def find_blocking_instances(target_instance, data): blocking_instances = [] blocked_instances = [] for instance in data["instance_details"]: federated_instances = instance["site_info"]["federated_instances"] if federated_instances is not None: if target_instance in (federated_instances.get("blocked") or []): blocking_instances.append(instance["domain"]) if instance["domain"] == target_instance: blocked_instances.extend(federated_instances.get("blocked") or []) return blocking_instances, blocked_instances def get_instance_user_counts(instance): counts = instance["site_info"]["site_view"]["counts"] return { "users_active_day": counts["users_active_day"], "users_active_week": counts["users_active_week"], "users_active_month": counts["users_active_month"], "users_active_half_year": counts["users_active_half_year"], } def print_instance_activity(instance): domain = instance["domain"] counts = instance["site_info"]["site_view"]["counts"] print(f"{domain} ({counts['users_active_day']} users/day, {counts['users_active_week']} users/week, {counts['users_active_month']} users/month, {counts['users_active_half_year']} users/half_year)") total_blocking_users = { "users_active_day": 0, "users_active_week": 0, "users_active_month": 0, "users_active_half_year": 0, } total_blocked_users = { "users_active_day": 0, "users_active_week": 0, "users_active_month": 0, "users_active_half_year": 0, } user_input = input("Enter the instance to find blocking instances: ") blocking_instances, blocked_instances = find_blocking_instances(user_input, data) print("\nInstances blocking", user_input, ":") for domain in blocking_instances: for instance in data["instance_details"]: if instance["domain"] == domain: print_instance_activity(instance) user_counts = get_instance_user_counts(instance) for key in total_blocking_users: total_blocking_users[key] += user_counts[key] print("\nTotal users from blocking instances:") print(f"{total_blocking_users['users_active_day']} users/day") print(f"{total_blocking_users['users_active_week']} users/week") print(f"{total_blocking_users['users_active_month']} users/month") print(f"{total_blocking_users['users_active_half_year']} users/half_year") print("\nInstances blocked by", user_input, ":") for domain in blocked_instances: for instance in data["instance_details"]: if instance["domain"] == domain: print_instance_activity(instance) user_counts = get_instance_user_counts(instance) for key in total_blocked_users: total_blocked_users[key] += user_counts[key] print("\nTotal users from blocked instances:") print(f"{total_blocked_users['users_active_day']} users/day") print(f"{total_blocked_users['users_active_week']} users/week") print(f"{total_blocked_users['users_active_month']} users/month") print(f"{total_blocked_users['users_active_half_year']} users/half_year")