[Bugfix]: Misc. bugfixes 2024-04-16 (#189)

* Manually installed mutagen

* Stopped upgrade form from submitting on enter

* Gracefully handle duplicate enqueued downloads

* Update metadata thumbnail fetcher to use the best jpg available
This commit is contained in:
Kieran
2024-04-16 17:37:39 -07:00
committed by GitHub
parent 4721957875
commit 618711691b
9 changed files with 60 additions and 20 deletions
@@ -54,11 +54,18 @@ defmodule Pinchflat.Metadata.MetadataFileHelpers do
@doc """
Downloads and stores a thumbnail for a media item, returning the filepath.
Chooses the highest quality jpg thumbnail available.
Returns binary()
"""
def download_and_store_thumbnail_for(database_record, metadata_map) do
thumbnail_url = metadata_map["thumbnail"]
thumbnail_url =
metadata_map["thumbnails"]
|> Enum.filter(&(&1["preference"] && String.ends_with?(&1["url"], ".jpg")))
|> Enum.sort(&(&1["preference"] >= &2["preference"]))
|> List.first()
|> Map.get("url")
filepath = generate_filepath_for(database_record, Path.basename(thumbnail_url))
thumbnail_blob = fetch_thumbnail_from_url(thumbnail_url)
@@ -3,10 +3,11 @@ defmodule Pinchflat.UpgradeButtonLive do
def render(assigns) do
~H"""
<form phx-change="check_matching_text">
<form id="upgradeForm" phx-change="check_matching_text" phx-hook="supressEnterSubmission">
<.input type="text" name="unlock-pro-textbox" value="" />
</form>
<%!-- The setTimeout is so the modal has time to disappear before it's removed --%>
<.button
class="w-full mt-4"
type="button"
@@ -50,7 +50,13 @@ defmodule PinchflatWeb.MediaItems.MediaItemController do
def force_download(conn, %{"media_item_id" => id}) do
media_item = Media.get_media_item!(id)
{:ok, _} = MediaDownloadWorker.kickoff_with_task(media_item, %{force: true})
:ok =
case MediaDownloadWorker.kickoff_with_task(media_item, %{force: true}) do
{:ok, _} -> :ok
{:error, :duplicate_job} -> :ok
err -> err
end
conn
|> put_flash(:info, "Download task enqueued.")