From aacc8574d890bb19e2abf094605d7e0f03e48dd3 Mon Sep 17 00:00:00 2001 From: Inex Code Date: Sat, 18 Sep 2021 19:21:16 +0300 Subject: [PATCH] Fix friendica recognition Closes #107 --- backend/lib/backend/crawler/api_crawler.ex | 2 +- backend/lib/backend/crawler/crawlers/mastodon.ex | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/backend/lib/backend/crawler/api_crawler.ex b/backend/lib/backend/crawler/api_crawler.ex index 15fbf93..2cda1f2 100644 --- a/backend/lib/backend/crawler/api_crawler.ex +++ b/backend/lib/backend/crawler/api_crawler.ex @@ -18,7 +18,7 @@ defmodule Backend.Crawler.ApiCrawler do # {domain, type} e.g. {"gab.com", "reject"} @type federation_restriction :: {String.t(), String.t()} - @type instance_type :: :mastodon | :pleroma | :gab | :misskey | :gnusocial | :smithereen + @type instance_type :: :mastodon | :pleroma | :gab | :misskey | :gnusocial | :smithereen | :friendica defstruct [ :version, diff --git a/backend/lib/backend/crawler/crawlers/mastodon.ex b/backend/lib/backend/crawler/crawlers/mastodon.ex index a25e71d..bbc3e3e 100644 --- a/backend/lib/backend/crawler/crawlers/mastodon.ex +++ b/backend/lib/backend/crawler/crawlers/mastodon.ex @@ -12,8 +12,14 @@ defmodule Backend.Crawler.Crawlers.Mastodon do @impl ApiCrawler def is_instance_type?(domain, result) do # We might already know that this is a Pleroma instance from nodeinfo - if result != nil and (Map.get(result, :instance_type) == :pleroma or Map.get(result, :instance_type) == :smithereen) do - true + if result != nil do + cond do + Map.get(result, :instance_type) == :pleroma -> true + Map.get(result, :instance_type) == :smithereen -> true + Map.get(result, :instance_type) == :mastodon -> true + Map.get(result, :instance_type) == :friendica -> false + true -> false + end else case get_and_decode("https://#{domain}/api/v1/instance") do {:ok, %{"title" => _title}} -> true