From afe7c0b3bb976e46d0406e079bee03f41e8978db Mon Sep 17 00:00:00 2001 From: Niklas Hofer Date: Mon, 28 Jul 2025 18:31:25 +0200 Subject: [PATCH] Adapt to floki API change Floki.parse/1 has been removed in 0.38.0 --- lib/link_preview/parsers/html.ex | 6 +++--- lib/link_preview/parsers/opengraph.ex | 6 +++--- mix.exs | 2 +- mix.lock | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/link_preview/parsers/html.ex b/lib/link_preview/parsers/html.ex index db722d9..d4b614a 100644 --- a/lib/link_preview/parsers/html.ex +++ b/lib/link_preview/parsers/html.ex @@ -17,7 +17,7 @@ defmodule LinkPreview.Parsers.Html do def title(page, body) do title = body - |> Floki.parse() + |> Floki.parse_document!() |> Floki.find("title") |> List.first() |> get_text @@ -66,7 +66,7 @@ defmodule LinkPreview.Parsers.Html do def images(page, body) do images = body - |> Floki.parse() + |> Floki.parse_document!() |> Floki.attribute("img", "src") |> Enum.map(&String.trim(&1)) |> maybe_limit @@ -90,7 +90,7 @@ defmodule LinkPreview.Parsers.Html do defp search_h(body, level) do description = body - |> Floki.parse() + |> Floki.parse_document!() |> Floki.find("h#{level}") |> List.first() |> get_text diff --git a/lib/link_preview/parsers/opengraph.ex b/lib/link_preview/parsers/opengraph.ex index 4db649f..d443c09 100644 --- a/lib/link_preview/parsers/opengraph.ex +++ b/lib/link_preview/parsers/opengraph.ex @@ -17,7 +17,7 @@ defmodule LinkPreview.Parsers.Opengraph do def title(page, body) do title = body - |> Floki.parse() + |> Floki.parse_document!() |> Floki.find("meta[property^=\"og:title\"]") |> Floki.attribute("content") |> List.first() @@ -37,7 +37,7 @@ defmodule LinkPreview.Parsers.Opengraph do def description(page, body) do description = body - |> Floki.parse() + |> Floki.parse_document!() |> Floki.find("meta[property^=\"og:description\"]") |> Floki.attribute("content") |> List.first() @@ -64,7 +64,7 @@ defmodule LinkPreview.Parsers.Opengraph do def images(page, body) do images = body - |> Floki.parse() + |> Floki.parse_document!() |> Floki.find("meta[property^=\"og:image\"]") |> Floki.attribute("content") |> Enum.map(&String.trim(&1)) diff --git a/mix.exs b/mix.exs index 3593aa6..a588534 100644 --- a/mix.exs +++ b/mix.exs @@ -63,7 +63,7 @@ defmodule LinkPreview.Mixfile do defp deps do [ # required - {:floki, "~> 0.30"}, + {:floki, "~> 0.38"}, {:finch, "~> 0.17"}, {:tesla, "~> 1.5"}, diff --git a/mix.lock b/mix.lock index f9b3329..9df7f96 100644 --- a/mix.lock +++ b/mix.lock @@ -11,7 +11,7 @@ "excoveralls": {:hex, :excoveralls, "0.15.2", "809c1016660d80b28bbcd8cb7fd761791300def53345c1af5bd97db1330619ad", [:mix], [{:hackney, "~> 1.16", [hex: :hackney, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "f359dda36f15ae885d3259a90919b09ae9318f37c583c403493fe23808b2b882"}, "exjsx": {:hex, :exjsx, "4.0.0", "60548841e0212df401e38e63c0078ec57b33e7ea49b032c796ccad8cde794b5c", [:mix], [{:jsx, "~> 2.8.0", [hex: :jsx, repo: "hexpm", optional: false]}], "hexpm", "32e95820a97cffea67830e91514a2ad53b888850442d6d395f53a1ac60c82e07"}, "finch": {:hex, :finch, "0.18.0", "944ac7d34d0bd2ac8998f79f7a811b21d87d911e77a786bc5810adb75632ada4", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: false]}, {:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:mint, "~> 1.3", [hex: :mint, repo: "hexpm", optional: false]}, {:nimble_options, "~> 0.4 or ~> 1.0", [hex: :nimble_options, repo: "hexpm", optional: false]}, {:nimble_pool, "~> 0.2.6 or ~> 1.0", [hex: :nimble_pool, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "69f5045b042e531e53edc2574f15e25e735b522c37e2ddb766e15b979e03aa65"}, - "floki": {:hex, :floki, "0.34.0", "002d0cc194b48794d74711731db004fafeb328fe676976f160685262d43706a8", [:mix], [], "hexpm", "9c3a9f43f40dde00332a589bd9d389b90c1f518aef500364d00636acc5ebc99c"}, + "floki": {:hex, :floki, "0.38.0", "62b642386fa3f2f90713f6e231da0fa3256e41ef1089f83b6ceac7a3fd3abf33", [:mix], [], "hexpm", "a5943ee91e93fb2d635b612caf5508e36d37548e84928463ef9dd986f0d1abd9"}, "hackney": {:hex, :hackney, "1.18.1", "f48bf88f521f2a229fc7bae88cf4f85adc9cd9bcf23b5dc8eb6a1788c662c4f6", [:rebar3], [{:certifi, "~> 2.9.0", [hex: :certifi, repo: "hexpm", optional: false]}, {:idna, "~> 6.1.0", [hex: :idna, repo: "hexpm", optional: false]}, {:metrics, "~> 1.0.0", [hex: :metrics, repo: "hexpm", optional: false]}, {:mimerl, "~> 1.1", [hex: :mimerl, repo: "hexpm", optional: false]}, {:parse_trans, "3.3.1", [hex: :parse_trans, repo: "hexpm", optional: false]}, {:ssl_verify_fun, "~> 1.1.0", [hex: :ssl_verify_fun, repo: "hexpm", optional: false]}, {:unicode_util_compat, "~> 0.7.0", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm", "a4ecdaff44297e9b5894ae499e9a070ea1888c84afdd1fd9b7b2bc384950128e"}, "hpax": {:hex, :hpax, "0.1.2", "09a75600d9d8bbd064cdd741f21fc06fc1f4cf3d0fcc335e5aa19be1a7235c84", [:mix], [], "hexpm", "2c87843d5a23f5f16748ebe77969880e29809580efdaccd615cd3bed628a8c13"}, "html_entities": {:hex, :html_entities, "0.5.2", "9e47e70598da7de2a9ff6af8758399251db6dbb7eebe2b013f2bbd2515895c3c", [:mix], [], "hexpm", "c53ba390403485615623b9531e97696f076ed415e8d8058b1dbaa28181f4fdcc"},