mirror of
https://github.com/kieraneglin/pinchflat.git
synced 2026-01-23 02:24:24 +00:00
Added the ability to mark chapters via sponsorblock (#542)
This commit is contained in:
parent
967e21a8a1
commit
e150355874
4 changed files with 22 additions and 6 deletions
|
|
@ -152,6 +152,7 @@ defmodule Pinchflat.Downloading.DownloadOptionBuilder do
|
|||
case {behaviour, categories} do
|
||||
{_, []} -> []
|
||||
{:remove, _} -> [sponsorblock_remove: Enum.join(categories, ",")]
|
||||
{:mark, _} -> [sponsorblock_mark: Enum.join(categories, ",")]
|
||||
{:disabled, _} -> []
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ defmodule Pinchflat.Profiles.MediaProfile do
|
|||
field :embed_metadata, :boolean, default: false
|
||||
|
||||
field :download_nfo, :boolean, default: false
|
||||
field :sponsorblock_behaviour, Ecto.Enum, values: [:disabled, :remove], default: :disabled
|
||||
field :sponsorblock_behaviour, Ecto.Enum, values: [:disabled, :mark, :remove], default: :disabled
|
||||
field :sponsorblock_categories, {:array, :string}, default: []
|
||||
# NOTE: these do NOT speed up indexing - the indexer still has to go
|
||||
# through the entire collection to determine if a media is a short or
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@ defmodule PinchflatWeb.MediaProfiles.MediaProfileHTML do
|
|||
def friendly_sponsorblock_options do
|
||||
[
|
||||
{"Disabled (default)", "disabled"},
|
||||
{"Mark Segments as Chapters", "mark"},
|
||||
{"Remove Segments", "remove"}
|
||||
]
|
||||
end
|
||||
|
|
|
|||
|
|
@ -287,7 +287,19 @@ defmodule Pinchflat.Downloading.DownloadOptionBuilderTest do
|
|||
assert {:sponsorblock_remove, "sponsor,intro"} in res
|
||||
end
|
||||
|
||||
test "does not include :sponsorblock_remove option without categories", %{media_item: media_item} do
|
||||
test "includes :sponsorblock_mark option when specified", %{media_item: media_item} do
|
||||
media_item =
|
||||
update_media_profile_attribute(media_item, %{
|
||||
sponsorblock_behaviour: :mark,
|
||||
sponsorblock_categories: ["sponsor", "intro"]
|
||||
})
|
||||
|
||||
assert {:ok, res} = DownloadOptionBuilder.build(media_item)
|
||||
|
||||
assert {:sponsorblock_mark, "sponsor,intro"} in res
|
||||
end
|
||||
|
||||
test "does not include any sponsorblock option without categories", %{media_item: media_item} do
|
||||
media_item =
|
||||
update_media_profile_attribute(media_item, %{
|
||||
sponsorblock_behaviour: :remove,
|
||||
|
|
@ -296,9 +308,10 @@ defmodule Pinchflat.Downloading.DownloadOptionBuilderTest do
|
|||
|
||||
assert {:ok, res} = DownloadOptionBuilder.build(media_item)
|
||||
|
||||
refute {:sponsorblock_remove, ""} in res
|
||||
refute {:sponsorblock_remove, []} in res
|
||||
refute Keyword.has_key?(res, :sponsorblock_remove)
|
||||
refute Keyword.has_key?(res, :sponsorblock_mark)
|
||||
refute :sponsorblock_remove in res
|
||||
refute :sponsorblock_mark in res
|
||||
end
|
||||
|
||||
test "does not include any sponsorblock options when disabled", %{media_item: media_item} do
|
||||
|
|
@ -307,9 +320,10 @@ defmodule Pinchflat.Downloading.DownloadOptionBuilderTest do
|
|||
|
||||
assert {:ok, res} = DownloadOptionBuilder.build(media_item)
|
||||
|
||||
refute {:sponsorblock_remove, ""} in res
|
||||
refute {:sponsorblock_remove, []} in res
|
||||
refute Keyword.has_key?(res, :sponsorblock_remove)
|
||||
refute Keyword.has_key?(res, :sponsorblock_mark)
|
||||
refute :sponsorblock_remove in res
|
||||
refute :sponsorblock_mark in res
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue