Skip to content

Instantly share code, notes, and snippets.

View andypiper's full-sized avatar
📢
Starting a new role as Head of Communications at Mastodon!

Andy Piper andypiper

📢
Starting a new role as Head of Communications at Mastodon!
View GitHub Profile
@andypiper
andypiper / chrome-tabs.sh
Created October 27, 2023 21:34
Recover suspended tabs
chrome-cli list links | rg suspended\.html > tabs.txt
while read -r line; do tabid=`echo $line | cut -c 2-11`; url=`echo $line | awk -F "uri[=]" '{print $NF}'`; chrome-cli open $url -t $tabid; done < tabs.txt
@andypiper
andypiper / fediwall.json
Last active October 17, 2023 02:05
fediwall-test.json
{
"servers": [
"andypiper.social"
],
"tags": [
"3dprinting"
],
"accounts": [
],
@andypiper
andypiper / ato2023.json
Last active October 17, 2023 16:03
Fediwall for AllThingsOpen2023
{
"servers": [
"fosstodon.org",
"infosec.exchange",
"toot.community",
"universeodon.com",
"mastodon.social",
"hachyderm.io",
"mas.to",
"mstdn.social",
@andypiper
andypiper / bookmarks-ap.csv
Created September 20, 2023 13:57
An example export file from Postmarks for testing
We can make this file beautiful and searchable if this error is corrected: Unclosed quoted field in line 6.
"title","url","description","tags","created_at","updated_at"
"My Glitch in Bio links page","https://andypiper.me","A LinkTree-style set of links for my major web and social presences","#links #glitchinbio #bio #andypiper #personal","2023-09-07 22:27:31","2023-09-07 22:27:31"
"OMG Andy Piper LOL","https://andypiper.omg.lol","A quick landing page, including a /now page and basic info. Built on omg.lol","#andypiper #bio #personal #omglol #now","2023-09-07 22:28:46","2023-09-07 22:28:46"
"Mastodon API documentation","https://docs.joinmastodon.org/client/intro/",,"#mastodon #fediverse #activitypub #api #rest #developer #docs #mastodonapi","2023-09-07 22:41:28","2023-09-07 22:41:28"
"Mastodon API client libraries and SDKs","https://docs.joinmastodon.org/client/libraries/",,"#developer #coding #api #rest #mastodon #mastodonapi #sdk #library","2023-09-07 22:42:36","2023-09-07 22:42:36"
"Useful Resources for getting started in DevRel","https://gist.github.com/andypiper/7fdb73f9713b7e1f7e5e7ac373f635cb","Andy Piper's l
@andypiper
andypiper / hashtags.md
Created August 15, 2023 10:12
Get Mastodon followed hashtags
$ curl -s --header "Authorization: Bearer $TOKEN" https://$INSTANCE/api/v1/followed_tags | jq '.[] | .name' 
"mechanicalkeyboards"
"europython2023"
"cricut"
"metaverse"
"playdate"
"Watchy"
"kingstonuponthames"
"hextraction"
@andypiper
andypiper / post
Created January 2, 2023 19:32 — forked from edsu/post
#!/bin/bash
# Set these environment variables and you can create a (text-only) post using
# your favorite command line text editor.
#
# - EDITOR: e.g. vim, emacs, etc
# - MASTODON_POST_HOST: the hostname for our Mastodon account, e.g. chaos.social
# - MASTODON_POST_TOKEN: an app access key with write:statuses permission
#
# See: https://gist.github.com/edsu/aa6f70bb20127b1e18e05dff5e470022
@andypiper
andypiper / tooter.py
Created November 15, 2022 11:54
Post a Toot from MicroPython
import network
import urequests
import ujson
# do_connect()
mast_url="https://mastodon.social"
token=MY_MASTODON_TOKEN
# note: this *must* include content-type
@andypiper
andypiper / followers.py
Created November 10, 2022 22:38
Mastodon code scribbles
from mastodon import Mastodon
mast = Mastodon(client_id='key',client_secret='secret',access_token='token',api_base_url='https://mastodon.social')
me = mast.me()
print(f"Followers: {me.followers_count}")
@andypiper
andypiper / flask-ap-scheduler.py
Created November 2, 2022 13:13
Schedule a task in a Flask app
# useful https://stackoverflow.com/questions/21214270/how-to-schedule-a-function-to-run-every-hour-on-flask
# docs https://pypi.org/project/Flask-APScheduler/
from flask import Flask
from flask_apscheduler import APScheduler
app = Flask(__name__)
scheduler = APScheduler()
def scheduleTask():
@andypiper
andypiper / tweepy-notes.md
Created August 17, 2022 10:36
Tweepy cheatsheet / Twitter API v2

BEARER = "my-long-token"

Check/delete stream rules

import tweepy

client = tweepy.StreamingClient(BEARER)

client.get_rules()