Fix todos

This commit is contained in:
Jonatan Kłosko 2024-01-26 20:53:35 +08:00
parent 8e6a017414
commit ac7b5803a1
3 changed files with 6 additions and 35 deletions

View file

@ -27,20 +27,19 @@ defmodule LivebookWeb.CodecHelpers do
pos_integer()
) :: Enumerable.t()
def encode_pcm_as_wav_stream!(path, file_size, num_channels, sampling_rate, offset, length) do
{header_enum, file_length} =
header_enum =
if offset < @wav_header_size do
header = encode_pcm_as_wav_header(file_size, num_channels, sampling_rate)
header_length = min(@wav_header_size - offset, length)
header_slice = binary_slice(header, offset, header_length)
{[header_slice], length - header_length}
[header_slice]
else
{[], length}
[]
end
file_offset = max(offset - @wav_header_size, 0)
# TODO: use File.stream!(path, [{:read_offset, file_offset}]) once we require Elixir v1.16+
file_stream = raw_file_range_stream!(path, file_offset, file_length)
file_stream = File.stream!(path, 64_000, [{:read_offset, file_offset}])
file_stream =
case System.endianness() do
@ -86,29 +85,6 @@ defmodule LivebookWeb.CodecHelpers do
>>
end
# We assume a local path and open a raw file for efficiency
defp raw_file_range_stream!(path, offset, length) do
chunk_size = 64_000
Stream.resource(
fn ->
{:ok, fd} = :file.open(path, [:raw, :binary, :read, :read_ahead])
{:ok, _} = :file.position(fd, offset)
{fd, length}
end,
fn
{fd, 0} ->
{:halt, {fd, 0}}
{fd, length} ->
size = min(chunk_size, length)
{:ok, chunk} = :file.read(fd, size)
{[chunk], {fd, length - size}}
end,
fn {fd, _} -> :file.close(fd) end
)
end
@doc """
Builds a single binary with JSON-serialized `meta` and `binary`.
"""

View file

@ -121,7 +121,7 @@ defmodule LivebookWeb.SessionLive.AppSettingsComponent do
<button
class="button-base button-blue"
type="button"
phx-click={JS.push("patch_back", target: @myself) |> JS.push("deploy_app")}
phx-click={JS.patch(~p"/sessions/#{@session.id}") |> JS.push("deploy_app")}
disabled={not @changeset.valid?}
>
<.remix_icon icon="rocket-line" class="align-middle mr-1" />
@ -155,9 +155,4 @@ defmodule LivebookWeb.SessionLive.AppSettingsComponent do
{:noreply, assign(socket, changeset: changeset)}
end
# TODO: use JS.patch back once possible (https://github.com/phoenixframework/phoenix_live_view/issues/2954)
def handle_event("patch_back", %{}, socket) do
{:noreply, push_patch(socket, to: ~p"/sessions/#{socket.assigns.session.id}")}
end
end

View file

@ -35,7 +35,7 @@
"phoenix_html": {:hex, :phoenix_html, "4.0.0", "4857ec2edaccd0934a923c2b0ba526c44a173c86b847e8db725172e9e51d11d6", [:mix], [], "hexpm", "cee794a052f243291d92fa3ccabcb4c29bb8d236f655fb03bcbdc3a8214b8d13"},
"phoenix_live_dashboard": {:hex, :phoenix_live_dashboard, "0.8.3", "7ff51c9b6609470f681fbea20578dede0e548302b0c8bdf338b5a753a4f045bf", [:mix], [{:ecto, "~> 3.6.2 or ~> 3.7", [hex: :ecto, repo: "hexpm", optional: true]}, {:ecto_mysql_extras, "~> 0.5", [hex: :ecto_mysql_extras, repo: "hexpm", optional: true]}, {:ecto_psql_extras, "~> 0.7", [hex: :ecto_psql_extras, repo: "hexpm", optional: true]}, {:ecto_sqlite3_extras, "~> 1.1.7 or ~> 1.2.0", [hex: :ecto_sqlite3_extras, repo: "hexpm", optional: true]}, {:mime, "~> 1.6 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:phoenix_live_view, "~> 0.19 or ~> 1.0", [hex: :phoenix_live_view, repo: "hexpm", optional: false]}, {:telemetry_metrics, "~> 0.6 or ~> 1.0", [hex: :telemetry_metrics, repo: "hexpm", optional: false]}], "hexpm", "f9470a0a8bae4f56430a23d42f977b5a6205fdba6559d76f932b876bfaec652d"},
"phoenix_live_reload": {:hex, :phoenix_live_reload, "1.4.1", "2aff698f5e47369decde4357ba91fc9c37c6487a512b41732818f2204a8ef1d3", [:mix], [{:file_system, "~> 0.2.1 or ~> 0.3", [hex: :file_system, repo: "hexpm", optional: false]}, {:phoenix, "~> 1.4", [hex: :phoenix, repo: "hexpm", optional: false]}], "hexpm", "9bffb834e7ddf08467fe54ae58b5785507aaba6255568ae22b4d46e2bb3615ab"},
"phoenix_live_view": {:hex, :phoenix_live_view, "0.20.2", "025391424257d6c1ed2fab5c9fb11b1e5b21a8b47a416659b9a36492217dd5cb", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix, "~> 1.6.15 or ~> 1.7.0", [hex: :phoenix, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 3.3 or ~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: false]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 2.0", [hex: :phoenix_view, repo: "hexpm", optional: true]}, {:plug, "~> 1.15", [hex: :plug, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.2 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "381c7f8a5702be838a6bf440a59ea010b458018e1a85cc432e8628641c00f07a"},
"phoenix_live_view": {:hex, :phoenix_live_view, "0.20.3", "8b6406bc0a451f295407d7acff7f234a6314be5bbe0b3f90ed82b07f50049878", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix, "~> 1.6.15 or ~> 1.7.0", [hex: :phoenix, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 3.3 or ~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: false]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 2.0", [hex: :phoenix_view, repo: "hexpm", optional: true]}, {:plug, "~> 1.15", [hex: :plug, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.2 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "a8e4385e05618b424779f894ed2df97d3c7518b7285fcd11979077ae6226466b"},
"phoenix_pubsub": {:hex, :phoenix_pubsub, "2.1.3", "3168d78ba41835aecad272d5e8cd51aa87a7ac9eb836eabc42f6e57538e3731d", [:mix], [], "hexpm", "bba06bc1dcfd8cb086759f0edc94a8ba2bc8896d5331a1e2c2902bf8e36ee502"},
"phoenix_template": {:hex, :phoenix_template, "1.0.4", "e2092c132f3b5e5b2d49c96695342eb36d0ed514c5b252a77048d5969330d639", [:mix], [{:phoenix_html, "~> 2.14.2 or ~> 3.0 or ~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}], "hexpm", "2c0c81f0e5c6753faf5cca2f229c9709919aba34fab866d3bc05060c9c444206"},
"plug": {:hex, :plug, "1.15.1", "b7efd81c1a1286f13efb3f769de343236bd8b7d23b4a9f40d3002fc39ad8f74c", [:mix], [{:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_crypto, "~> 1.1.1 or ~> 1.2 or ~> 2.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.3 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "459497bd94d041d98d948054ec6c0b76feacd28eec38b219ca04c0de13c79d30"},