Page MenuHomePhabricator

No OneTemporary

diff --git a/lib/plugins/link/img_debrid_link.ex b/lib/plugins/link/img_debrid_link.ex
new file mode 100644
index 0000000..a2972eb
--- /dev/null
+++ b/lib/plugins/link/img_debrid_link.ex
@@ -0,0 +1,32 @@
+defmodule Nola.Plugins.Link.ImgDebridLink do
+ @behaviour Nola.Plugins.Link
+
+ @impl true
+ def match(uri = %URI{host: "img.debrid-link.fr", path: path}, _opts) do
+ case String.split(path, "/") do
+ ["", ids] -> {true, %{id: ids}}
+ _ -> false
+ end
+ end
+
+ def match(_, _), do: false
+
+ @impl true
+ def post_match(_, _, _, _), do: false
+
+ @impl true
+ def expand(_uri, %{id: ids}, _opts) do
+ with \
+ {:ok, %HTTPoison.Response{status_code: 200, body: body}} <- HTTPoison.get("https://img.debrid-link.fr/api/v1/images/#{ids}/infos", [], []),
+ {:ok, %{"success" => true, "value" => values}} <- Jason.decode(body)
+ do
+ items = for %{"name" => name, "url" => %{"direct" => direct_url}} <- values do
+ "#{name}: #{direct_url}"
+ end
+ {:ok, items}
+ else
+ _ -> :error
+ end
+ end
+
+end

File Metadata

Mime Type
text/x-patch; charset=UTF-8
Expires
Sun, Jul 20, 5:20 AM (1 d, 20 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
48725
Default Alt Text
(1 KB)

Event Timeline