Streamplace song chatbot

Be your own Streamplace chatbot to say which song you are listening to

place.stream.chat.message
Lexicon
place.stream.chat.message
Operations
Record created

Steps (7)

Conditiongate
  • Continue only if event.commit.record.streamer equals {{self}} - Chat message was sent in my channel
  • and event.commit.record.text equals !song - Song command
Fetch recordrocksky- Fetches current song from Rocksky
Lookup
at://{{self}}/app.rocksky.actor.status/self
Conditionbranch
  • If rocksky.found equals true
Then

Create a recordAction 1#1RockskyData

Target Collection
place.stream.chat.message
Record Template
{
  "$type": "place.stream.chat.message",
  "createdAt": "{{now}}",
  "reply": {
    "$type": "place.stream.chat.message#replyRef",
    "parent": {
      "$type": "com.atproto.repo.strongRef",
      "cid": "{{event.commit.cid}}",
      "uri": "{{event.uri}}"
    },
    "root": {
      "$type": "com.atproto.repo.strongRef",
      "cid": "{{event.commit.cid}}",
      "uri": "{{event.uri}}"
    }
  },
  "streamer": "{{self}}",
  "text": "Now playing: '{{rocksky.record.track.name}}' - {{rocksky.record.track.artist}}"
}
Otherwise
Fetch recordteal- Fetches current song from teal.fm
Lookup
at://{{self}}/fm.teal.actor.status/self
Conditionbranch
  • If teal.found equals true
Then

Create a recordAction 2#2TealData

Target Collection
place.stream.chat.message
Record Template
{
  "createdAt": "{{now}}",
  "reply": {
    "$type": "place.stream.chat.message#replyRef",
    "parent": {
      "$type": "com.atproto.repo.strongRef",
      "cid": "{{event.commit.cid}}",
      "uri": "{{event.uri}}"
    },
    "root": {
      "$type": "com.atproto.repo.strongRef",
      "cid": "{{event.commit.cid}}",
      "uri": "{{event.uri}}"
    }
  },
  "streamer": "{{self}}",
  "text": "Now playing: '{{teal.record.item.trackName}}' - {{teal.record.item.artists.0.artistName}}"
}