hmm. anyone possibly interested in getting together to figure out a standard music & playlist lexicon like @standard.site? #AtmosphereConf has sharing-pilled me
Posts by comet.sh
defmodule MyAppWeb.Router do use Plug.Router use Atex.XRPC.Router plug :match plug :dispatch # GET /xrpc/com.example.getProfile # `conn.assigns[:params]` if lexicon defines a schema for it. query Com.Example.GetProfile do conn |> send_resp(200, JSON.encode!(%{ handle: "example.com", displayName: "Example response" })) end # POST /xrpc/com.example.createPost # `conn.assigns[:params]`/`conn.assigns[:body]` if lexicon defines a schema for them. # Service auth header is required and verified thanks to `require_auth`. procedure Com.Example.CreatePost, require_auth: true do # ... end # You can also just do a plain string, and it won't do any validation for incoming data. query "com.example.anotherThing" do # ... end end
what's this? an atex release during #ATmosphereConf?? you better believe it!
atex 0.8.0 brings a lot to the table, including:
- an XRPC server router (pictured)
- a plc.directory client
- atproto crypto utilities
- and a few more misc. things!
tangled.org/comet.sh/atex
A very basic, unstyled, audio upload form with a file input, title text field, description text area, and an explicit content toggle. There is text below it stating the success of the upload, with some information about the uploaded results as AT Protocol blobs and records.
yippee
finally released a new version of Drinkup, bringing breaking changes for how to use it, but also new support for Tap and Jetstream!
tangled.org/comet.sh/dri...
#elixir #atproto
Elixir code screenshot: Atex.OAuth.Permission.repo(["app.bsky.feed.post", "fm.teal.alpha.feed.play"], create: true) # => "repo?collection=app.bsky.feed.post&collection=fm.teal.alpha.feed.play&action=create" Atex.OAuth.Permission.rpc("app.bsky.graph.getBlocks", aud: "*") # => "rpc:app.bsky.graph.getBlocks?aud=*" # Requires a session from `Atex.OAuth.Plug` or manually acquired and set through # `Atex.OAuth.SessionStore` {:ok, client} = %Atex.XRPC.OAuthClient{did: "did:web:comet.sh"} {:ok, response, _} = Atex.XRPC.get(client, %Com.Atproto.Repo.CreateRecord{...})
atex v0.7.0 is out and it's a doozy!
- Much easier to use OAuth client.
- Utilities for helping create new permission scopes.
- Identity cache has a TTL now.
- Cache for OAuth server info
- OAuth Plug is actually usable, with a new `:callback` parameter!
tangled.org/comet.sh/atex
#elixir #atproto
hello all! if you’ve been tracking your plays, we made you a year-end thing.
we’re not data scientists, but we tried crunching your numbers anyway. your top tracks, listening patterns, and all the stats you (probably?) didn’t know you wanted.
happy new year from all of us!
yearinmusic.teal.fm
Statusphere Elixir has been published! it serves as a proper example for atex and Drinkup, and also has taught me a bunch I need to change in those libraries to make the developer experience nicer, before diving into Comet proper.
tangled.org/comet.sh/sta...
#elixir #atproto
macOS screenshot of two side-by-side windows. The left window is a VS Code window with a "statusphere_elixir" project opened, showing some database code and a terminal with some debug logs. The right window is a web browser page of the project. It has a title saying "Statusphere Elixir" with a header welcoming the user (me) and asking for their status. Below that is a grid of buttons containing various emoji and a timeline showing a few status events from the logged in user.
i should find a designer for Comet's branding, and probably UI
actually i don't think i need to touch anything more on the atex side just yet. Might finally get a start on properly working on Comet!
An image showing the same text inside of the post. comet.sh/atex ⭐️ 13
comet.sh/atex
⭐️ 13
considering it...
v0.5.0 of atex is out now!
some breaking changes with `Atex.XRPC.Client` being renamed to `Atex.XRPC.LoginClient` and `Atex.HTTP` has been ditched, and now we have OAuth support and a new `Atex.XRPC.OAuthClient` for acting as an authenticated user!
tangled.org/@comet.sh/at...
#elixir #atproto
I'm building an alternative streaming option for artists called tracklist:// where they will be able to self-host their music catalog and stream it directly to fans.
As musicians ourselves, our goal is to empower artists with connection.
Sign up for our waitlist here; www.tracklist.diy
ok well in the meantime while i'm trying to figure out hooking up atex's oauth stuff to a HTTP client, i have finally pushed the Plug for implementing the flow! github.com/cometsh/atex...
v0.4.0 of atex is now released! bringing along the `deflexicon` macro to get runtime validation schemas and typespecs from a lexicon definition, and `mix atex.lexicons` to generate modules with `deflexicon` from a directory of lexicons!
#elixir #atproto
Screenshot of the comet.sh landing page, showing off the roadmap.
We now have a public roadmap available on the website! This is subject to change as we get through the goals, but it'll give you an idea of what we're hoping to achieve.
comet.sh
Screenshot of Elixir code, showing an AT Protocol lexicon definition in a `deflexicon` macro.
Screenshot of Elixir REPL, demonstrating the generated validation functions from the code in the previous image.
almost done with my lexicon to runtime-validation schema stuff for atex! just need to handle subscriptions, queries, and procedures - all of which should come along faster since the bulk of it is done - and then a command for codegen and it's good to go!
Comet's code (and related projects) are now available on @tangled.sh! Stuff will still be a bit GitHub-centric, but I'll do my best to keep them synced and responsive on both sides.
tangled.sh/@comet.sh
DJ/"radio" streams in Comet, anyone? 👀
STREAMPLACE 0.7 is OUT NOW!!! Two huge features:
1. You can now stream directly from the Streamplace iOS/Android app! Grab the latest version from the App/Play store and try it out!
2. Our TypeScript SDK is live! Add livestreaming to your own #atproto apps!
stream.place/docs/compone...
Still around! Got sick for about a week and it really took me out, but I'm better now and back on my shit!
Drinkup is now released! If you ever wanted an easy way to read from the ATProto firehose in Elixir.
github.com/cometsh/drin...