Fork of Pleroma with site-specific changes and feature branches https://git.pleroma.social/pleroma/pleroma
25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.

1006B

How to set rich media cache ttl based on image ttl

Explanation

Richmedia are cached without the ttl but the rich media may have image which can expire, like aws signed url. In such cases the old image url (expired) is returned from the media cache.

So to avoid such situation we can define a module that will set ttl based on image. The module must adopt behaviour Pleroma.Web.RichMedia.Parser.TTL

Example

defmodule MyModule do
  @behaviour Pleroma.Web.RichMedia.Parser.TTL

  @impl Pleroma.Web.RichMedia.Parser.TTL
  def ttl(data, url) do
    image_url = Map.get(data, :image)
    # do some parsing in the url and get the ttl of the image
    # return ttl is unix time
    parse_ttl_from_url(image_url)
  end
end

And update the config

config :pleroma, :rich_media,
  ttl_setters: [Pleroma.Web.RichMedia.Parser.TTL.AwsSignedUrl, MyModule]

For reference there is a parser for AWS signed URL Pleroma.Web.RichMedia.Parser.TTL.AwsSignedUrl, it's enabled by default.