Skip to content

Ditto v0.4.0

Choose a tag to compare

@da0t-exe da0t-exe released this 23 Sep 21:26
· 24 commits to main since this release

Two big changes: the captcha now looks like reCAPTCHA, and Ditto plays music.

Captcha

  • One photo cut into a 4×4 grid, the instruction drawn on the picture — "Select all squares with BUSES" — and sixteen buttons laid out like the squares. The embed carries nothing but the picture.
  • The photo pool now keeps the position of every object, so each square is scored: squares the object clearly fills must be ticked; squares it only brushes, or that show a look-alike (a taxi when asked for cars), are accepted either way.
  • Every challenge gets a random zoom, offset and mirror, and is fingerprinted so none is served twice.
  • Roboto is bundled, so the instruction renders even on hosts without fonts.
  • The pool is rebuilt in the new format on first start, reusing the Open Images annotations already downloaded.

Music

  • /play suggests songs from YouTube Music as you type; searches return songs only.
  • YouTube (Shorts and YouTube Music included), SoundCloud, Bandcamp, TikTok, Twitch, X and Instagram links play directly. Spotify, Apple Music, Deezer and Tidal tracks are matched on YouTube Music, as are Spotify, Apple Music and Deezer albums and playlists.
  • A player message with pause, skip, stop, loop and queue buttons and a progress bar.
  • /skip and /stop go straight through for the requester, staff or a small room, and by vote otherwise. Also /pause, /resume, /queue, /nowplaying, /volume, /loop, /shuffle, /remove, /clear and /lyrics (LRCLIB).
  • In this version audio goes yt-dlp → FFmpeg → Discord. v0.5.0 moves playback to Lavalink.

Also

  • The invite link now asks for Speak, which music needs.

Note

The lookups — YouTube Music search, Spotify, Apple Music and Deezer links, lyrics — and the captcha self-test were checked. Playback in a voice channel was not tested before v0.5.0 replaced the audio path.