A couple of days ago i noticed something off with blahaj.zone. I couldn’t see images posted by users on blahaj, so i thought it was a problem on their side.
Well guess fucking what? After 3 days, it was STILL broken, so i opened it and…
Blocked. They fucking blocked blahaj.zone. Actually beyond parody🤦♂️ Why? What was the point? there’s trans content literally everywhere on lemmy. what’s next, block them all? So now if i want to see a post by a user on blahaj, i have to turn on my VPN (protonvpn.com is also blocked in saudi, jfc) just to see it. Fuck this place. 🙄
I swear a couple of days ago it worked. This is a mild annoyance (hence the community) but still.
It’s so over guys, MBS said no more 196 😔
I quickly threw together a script to check which other Fediverse instances are blocked in Saudi Arabia by using Globalping. I know it’s horrible, but it works so far. Will share the results once it’s finished running. I’ll probably also rewrite the script later.
I got the list of instances from lemmy.world:
curl -s https://lemmy.world/instances | rg -o 'href="([^"]+)"' | rg -o 'https?://[^"]+' > instances.txt
#!/usr/bin/env fish set INSTANCES "./instances.txt" set OUTPUT_FILE "./output.txt" set COUNTRY "saudi arabia" for instance in (cat $INSTANCES) if globalping http $instance from $COUNTRY --method GET --limit 3 | rg 'Blocked URL' 2&>1 echo "Blocked: $instance" >> blocked.txt end end
I’m running
tail -f blocked.txt
in another terminal to monitor the results in real time.(Yeah I know the script sucks. Don’t judge me, I use fish and prefer its syntax over bash. I also use ripgrep, because I like it.)
I can run it for you if you want. I’ll post the results here
It’ll be faster for me since I’m in the country itself
Globalping has an HTTP method, which I use in the script:
I then use ripgrep to check if the HTTP response contains the string “Blocked URL”, as you can see in the script:
The if condition uses the exit code from ripgrep to add
$instance
from thefor
loop to theblocked.txt
file.Ah, it works for me now. I just ran it with ping instead of globalping, since i had no need to run it with that. And the script didn’t work after i did that, i’m not great at shell-scripting.
I made a modification that prints the status, but it’s painfully slow to check each site.
What do you use now? Curl? wget?
Globalping, just as you wrote it with the limit being 1
That should work.
I started working on a rewritten version in Rust that uses the REST API instead of the CLI tool. Once it’s done, it should be a lot faster, since it can make multiple requests simultaneously. I also plan to use this for other stuff in other countries.