mirror of
https://github.com/philomena-dev/philomena.git
synced 2025-02-01 03:46:44 +01:00
include intensity data in image api response
This commit is contained in:
parent
330e4ffb26
commit
dd5d553c0d
4 changed files with 10 additions and 6 deletions
|
@ -4,9 +4,9 @@ defmodule PhilomenaWeb.Api.Json.ImageController do
|
||||||
alias PhilomenaWeb.ImageJson
|
alias PhilomenaWeb.ImageJson
|
||||||
alias Philomena.Images.Image
|
alias Philomena.Images.Image
|
||||||
|
|
||||||
plug :load_and_authorize_resource, model: Image, only: [:show], preload: [:tags, :user]
|
plug :load_and_authorize_resource, model: Image, only: [:show], preload: [:tags, :user, :intensity]
|
||||||
|
|
||||||
def show(conn, _params) do
|
def show(conn, _params) do
|
||||||
json(conn, %{image: ImageJson.as_json(conn, conn.assigns.image)})
|
json(conn, %{image: ImageJson.as_json(conn, conn.assigns.image)})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -9,7 +9,7 @@ defmodule PhilomenaWeb.Api.Json.Search.ImageController do
|
||||||
import Ecto.Query
|
import Ecto.Query
|
||||||
|
|
||||||
def index(conn, params) do
|
def index(conn, params) do
|
||||||
queryable = Image |> preload([:tags, :user])
|
queryable = Image |> preload([:tags, :user, :intensity])
|
||||||
user = conn.assigns.current_user
|
user = conn.assigns.current_user
|
||||||
sort = ImageSorter.parse_sort(params)
|
sort = ImageSorter.parse_sort(params)
|
||||||
|
|
||||||
|
@ -31,4 +31,4 @@ defmodule PhilomenaWeb.Api.Json.Search.ImageController do
|
||||||
|> json(%{error: msg})
|
|> json(%{error: msg})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -20,6 +20,7 @@ defmodule PhilomenaWeb.ImageJson do
|
||||||
uploader: if(!!image.user and !image.anonymous, do: image.user.name),
|
uploader: if(!!image.user and !image.anonymous, do: image.user.name),
|
||||||
uploader_id: if(!!image.user and !image.anonymous, do: image.user.id),
|
uploader_id: if(!!image.user and !image.anonymous, do: image.user.id),
|
||||||
wilson_score: Philomena.Images.ElasticsearchIndex.wilson_score(image),
|
wilson_score: Philomena.Images.ElasticsearchIndex.wilson_score(image),
|
||||||
|
intensities: intensities(image),
|
||||||
score: image.score,
|
score: image.score,
|
||||||
upvotes: image.upvotes_count,
|
upvotes: image.upvotes_count,
|
||||||
downvotes: image.downvotes_count,
|
downvotes: image.downvotes_count,
|
||||||
|
@ -35,4 +36,7 @@ defmodule PhilomenaWeb.ImageJson do
|
||||||
processed: image.processed
|
processed: image.processed
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
defp intensities(%{intensity: %{nw: nw, ne: ne, sw: sw, se: se}}), do: %{nw: nw, ne: ne, sw: sw, se: se}
|
||||||
|
defp intensities(_), do: nil
|
||||||
end
|
end
|
||||||
|
|
|
@ -20,7 +20,7 @@ defmodule PhilomenaWeb.ImageReverse do
|
||||||
dist = normalize_dist(image_params)
|
dist = normalize_dist(image_params)
|
||||||
|
|
||||||
DuplicateReports.duplicates_of(intensities, aspect, dist, dist)
|
DuplicateReports.duplicates_of(intensities, aspect, dist, dist)
|
||||||
|> preload([:tags, :user])
|
|> preload([:tags, :user, :intensity])
|
||||||
|> Repo.all()
|
|> Repo.all()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -45,4 +45,4 @@ defmodule PhilomenaWeb.ImageReverse do
|
||||||
|> min(1.0)
|
|> min(1.0)
|
||||||
end
|
end
|
||||||
defp normalize_dist(_dist), do: 0.25
|
defp normalize_dist(_dist), do: 0.25
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue