Skip to content

Releases: gabe565/ascii-movie

v1.5.0

24 Apr 23:03
4a99ef9
Compare
Choose a tag to compare

New Features

  • Added a new subcommand ascii-movie get stream count which connects to the local API prints the number of connected streams.
    • This pulls from a new local API endpoint at /streams.
  • Streams that have been paused for 15 minutes will be disconnected.
  • net/http/pprof has been added to the local API, which will help to debug memory and CPU usage of the running application.

Changes

  • The Dockerfile has been updated so that the binary doesn't need to be called with its path like /ascii-movie. It can now be called with ascii-movie.
  • Decrease memory footprint by storing some render styles once per movie instead of once per connection.
  • Removed deprecated flags: --log-exclude-gateway and --log-exclude-faster. These are not needed anymore since health checks should use the local API /health endpoint.

Dependencies

  • ⬆️ Update module github.com/charmbracelet/wish to v1.1.1 (#12)

Full Changelog: v1.4.0...v1.5.0

v1.4.0

21 Apr 22:36
c673c24
Compare
Choose a tag to compare

New Features

  • An interactive UI has been added using charmbracelet/bubbletea.
    • The UI includes buttons to play/pause, rewind, and fast forward at different speeds.
  • Added a local API which defaults to port 1977 and serves a health check endpoint at /status.
  • Movie files can optionally be gzipped which shaves 3 MB off of the final binary size. This is not required, but the automated Docker builds will do this by default.

Fixes

  • Further fixes for Telnet clients. Telnet commands are now hidden when a user connects directly over TCP (like with nc) and Telnet terminals are detected much more consistently.
  • Added more checks to ensure Telnet connections are properly closed.

Deprecations

  • Deprecated flags to adjust padding. Padding is now handled by the interactive UI and is less glitchy.
  • Deprecated flags to hide health checks from logs. Health checks should now use the API status endpoint, so these flags are unnecessary.

Full Changelog: v1.3.1...v1.4.0

v1.3.1

14 Apr 19:24
75f893f
Compare
Choose a tag to compare

What's Changed

  • 75f893f 🔊 (ssh): Log user
  • 41b6aca 🐛 (serve): Fix JSON duration logs
  • dc7bf23 🔇 (serve): Add flag that hides early disconnect logs faster than a given duration

Full Changelog: v1.3.0...v1.3.1

v1.3.0

14 Apr 03:47
ef0d824
Compare
Choose a tag to compare

What's Changed

  • 172eced ✨ (serve): Add flag to make default gateway early disconnect logs be trace level
  • f52b4da 🚚 (ssh): Rename SSH host key flags
  • 69bd987 ✨ (ssh): Add support for multiple SSH host keys
  • 33d2ec2 🔊 (ssh): Log SSH host key info
  • 0818fe1 ✅ (tests): Add initial set of tests
  • e5e48bf ✨ (cmd): Add movie name shell completion
  • 78396ae ✨ (flags): Add log flag completion
  • 814e57e 🎨 Format code with gofumpt
  • 5c42e50 🔧 (pre-commit): Replace go-fmt with go-fumpt

Full Changelog: v1.2.2...v1.3.0

v1.2.2

11 Apr 23:01
9060cca
Compare
Choose a tag to compare

What's Changed

  • 9060cca 🎨 (movie): Clean up duration calculation
  • 9761100 🔧 (sw1): Shrink intro frame length
  • c8294f5 ✨ (ls-embedded): Add file size
  • 0fdb1ac 🔊 (ls-embedded): Continue parsing movies and log error if a single movie fails
  • 406ee2f 🔧 (movie): Return movie by reference
  • e13abc0 🐛 (ls-embedded): Fix header order
  • 50fe405 🔧 (movies): Embed all movies in the movies dir
  • b2a3638 🐛 (telnet): Fix Telnet commands
  • 43587e3 🐛 (telnet): Don't output Telnet commands unless a Telnet client connects
  • 1d6c495 🔧 (flags): Change some flag names to consts
  • a33675b 💄 (movie): Make the progress bar fainter
  • 50999ad 🐛 (movie): Always add 1 newline after progress bar
  • 3c31e38 💬 (movie): Match progress bar width to content width
  • 972d062 🔥 (flags): Remove --frame-height flag and find frame head with regex
  • 6a417c8 ✨ (ls-embedded): Add subcommand to list embedded movies
  • 5e9aaac 💬 (rick-roll): Fix typos

Full Changelog: v1.2.1...v1.2.2

v1.2.1

11 Apr 18:32
c362cc9
Compare
Choose a tag to compare

What's Changed

  • 17ec152 ✨ (telnet): Exit if Ctrl+C or Ctrl+D are pressed
  • c824e87 ✨ (ssh): Only exit if Ctrl+C or Ctrl+D are pressed
  • c362cc9 ✨ (play): Exit on Ctrl+D

Full Changelog: v1.2.0...v1.2.1

v1.2.0

11 Apr 02:29
8fe1bde
Compare
Choose a tag to compare

New Features

  • SSH is now supported! The SSH server uses charmbracelet/wish and the serve subcommand has some new flags to configure SSH:
    --ssh-enabled                Enables SSH listener (default true)
    --ssh-address string         SSH listen address (default ":22")
    --ssh-host-key string        SSH host key PEM
    --ssh-host-key-path string   SSH host key file path
    
  • Telnet can also be disabled by passing --telnet-enabled=false.
  • Added some flags to both subcommands that change how the movie is parsed and presented to clients:
    --frame-height int          Height of the movie frames (default 14)
    --pad-bottom int            Padding below the movie (default 2)
    --pad-left int              Padding left of the movie (default 6)
    --pad-top int               Padding above the movie (default 3)
    --progress-pad-bottom int   Padding below the progress bar (default 3)
    --speed float               Playback speed multiplier. Must be greater than 0. (default 1)
    
  • Both subcommands have an optional parameter to specify which movie should play. The app still defaults to sw1 (Star Wars) if this parameter is left blank, but it can also be set to rick_roll or a local movie txt file.
  • Added some new logs. New flags are available to hide these: --log-level, --log-format.

Changed

  • Renamed project from ascii-telnet-go to ascii-movie.
  • Remove the go generate workflow that would generate a movie's Go code before compilation. Removing this simplifies compilation and allows for config tweaks at runtime (like changing the padding or giving a whole different movie file), but slightly increases memory usage from about 5MB to 13MB for Star Wars.
  • Changed the readme demo to a video instead of an asciicast. This video is recorded using charmbracelet/vhs and the script in assets/demo.tape.
  • Add generated command line usage docs.

Fixed

  • Fixed the progress bar never fully filling up
  • Make the progress bar more accurately reflect the current position in the stream. Previously, the progress bar was calculated based on the current frame num divided by the total, but now it accounts for each frame's duration. This means longer frames will cause a larger jump, while shorter frames will move the progress bar more slowly.

Deprecations

  • The --address/-a flag has been renamed to --telnet-address.

Dependencies

  • 53cc554 ⬆️ Update module github.com/spf13/cobra to v1.7.0 (#10)

Full Changelog: v1.1.0...v1.2.0

v1.1.0

30 Mar 04:30
bd85eb9
Compare
Choose a tag to compare

What's Changed

  • 1c1ee76 🔥 (ci): Remove linux/arm/v6 platform
  • 0ec9c80 ✨ (docker): Add debug image
  • 7893cd5 🐳 (docker): Replace alpine base image with distroless
  • 74dc6d1 🔧 (ci): Only tag latest on a tag trigger
  • a1fd5c9 🍱 (readme): Add icon
  • b6ad1b1 ⬆️ Update actions/setup-go action to v4
  • e5e4929 ⬆️ Update module github.com/fatih/color to v1.15.0 (#8)
  • f6ff3cb 👷 (ci): Replace secrets.GITHUB_TOKEN with github.token

Full Changelog: v1.0.1...v1.1.0

v1.0.1

08 Feb 20:51
dbc4d10
Compare
Choose a tag to compare

What's Changed

  • 🐛 Fix go mod tidy when frames haven't been generated
  • 🔥 (dockerfile): Remove GO_VERSION build arg
  • Configure Renovate by @renovate in #1
  • ⬆️ Update module github.com/fatih/color to v1.14.0 by @renovate in #3
  • ⬆️ Update module github.com/fatih/color to v1.14.1 by @renovate in #4
  • ⬆️ Update docker/build-push-action action to v4 by @renovate in #5
  • ⬆️ Update go to 1.20 by @renovate in #6
  • ⬆️ Update golang Docker tag to v1.20 by @renovate in #7

New Contributors

Full Changelog: v1.0.0...v1.0.1

v1.0.0

06 Jan 19:42
a727e84
Compare
Choose a tag to compare

Initial release