From: dcc Date: Sat, 17 Feb 2024 01:19:33 +0000 (-0800) Subject: Nothing much just a build up of things X-Git-Url: https://git.logografos.com/?p=anni;a=commitdiff_plain;h=ea33a0d3427f8b30b82a6ddbc0ff7429cfaf8d91 Nothing much just a build up of things --- diff --git a/mix.exs b/mix.exs index aaaaf5b..be58009 100755 --- a/mix.exs +++ b/mix.exs @@ -264,7 +264,7 @@ defmodule Pleroma.Mixfile do |> String.trim() commit_hash_err == 0 -> - "0-g" <> String.trim(commit_hash) + "-g" <> String.trim(commit_hash) true -> nil diff --git a/static/emoji/anni/att.png b/static/emoji/anni/att.png new file mode 100644 index 0000000..1b3a885 Binary files /dev/null and b/static/emoji/anni/att.png differ diff --git a/static/emoji/anni/columbo_smug.png b/static/emoji/anni/columbo_smug.png new file mode 100644 index 0000000..28d5010 Binary files /dev/null and b/static/emoji/anni/columbo_smug.png differ diff --git a/static/emoji/anni/devil_triger.gif b/static/emoji/anni/devil_triger.gif new file mode 100644 index 0000000..b63bd9f Binary files /dev/null and b/static/emoji/anni/devil_triger.gif differ diff --git a/static/emoji/anni/francisco.png b/static/emoji/anni/francisco.png new file mode 100644 index 0000000..dd90077 Binary files /dev/null and b/static/emoji/anni/francisco.png differ diff --git a/static/emoji/anni/francisco_intensifies.png b/static/emoji/anni/francisco_intensifies.png new file mode 100644 index 0000000..46a3d26 Binary files /dev/null and b/static/emoji/anni/francisco_intensifies.png differ diff --git a/static/emoji/anni/george_shiggy.png b/static/emoji/anni/george_shiggy.png new file mode 100644 index 0000000..795ecc1 Binary files /dev/null and b/static/emoji/anni/george_shiggy.png differ diff --git a/static/emoji/anni/goblin_slayer_bask_in_blood.png b/static/emoji/anni/goblin_slayer_bask_in_blood.png new file mode 100644 index 0000000..db6bb2e Binary files /dev/null and b/static/emoji/anni/goblin_slayer_bask_in_blood.png differ diff --git a/static/emoji/anni/lay_off_poggers.png b/static/emoji/anni/lay_off_poggers.png new file mode 100644 index 0000000..ec6b23d Binary files /dev/null and b/static/emoji/anni/lay_off_poggers.png differ diff --git a/static/emoji/anni/nero_smug.png b/static/emoji/anni/nero_smug.png new file mode 100644 index 0000000..3af7126 Binary files /dev/null and b/static/emoji/anni/nero_smug.png differ diff --git a/static/emoji/anni/nixon_smug.png b/static/emoji/anni/nixon_smug.png new file mode 100644 index 0000000..b874251 Binary files /dev/null and b/static/emoji/anni/nixon_smug.png differ diff --git a/static/emoji/anni/pack.json b/static/emoji/anni/pack.json index 59fe274..e8f8b23 100755 --- a/static/emoji/anni/pack.json +++ b/static/emoji/anni/pack.json @@ -1,7 +1,21 @@ { "files": { "mr_regan": "mrregan.png", + "tucker_shock": "tucker_shock.png", + "lay_off_poggers": "lay_off_poggers.png", + "trust_the_pfp": "trust_the_pfp.png", + "goblin_slayer_bask_in_blood": "goblin_slayer_bask_in_blood.png", + "nero_smug": "nero_smug.png", "take_it_easy": "take_it_easy.png", + "devil_triger": "devil_triger.gif", + "pepe_turkey": "pepe_turkey.png", + "george_shiggy": "george_shiggy.png", + "pepe_cia": "pepe_cia.png", + "columbo_smug": "columbo_smug.png", + "att": "att.png", + "francisco.png": "francisco.png", + "francisco_intensifies": "francisco_intensifies.png", + "nixon_smug": "nixon_smug.png", "oj_sad": "oj_sad.png", "phear_slackware": "phear_slackware.gif", "cunny": "cunny.png", diff --git a/static/emoji/anni/pack.json~ b/static/emoji/anni/pack.json~ index 2db6c75..eef2fa1 100755 --- a/static/emoji/anni/pack.json~ +++ b/static/emoji/anni/pack.json~ @@ -1,6 +1,20 @@ { "files": { "mr_regan": "mrregan.png", + "tucker_shock": "tucker_shock.png", + "lay_off_poggers": "lay_off_poggers.png", + "trust_the_pfp": "trust_the_pfp.png", + "goblin_slayer_bask_in_blood": "goblin_slayer_bask_in_blood.png", + "nero_smug": "nero_smug.png", + "take_it_easy": "take_it_easy.png", + "pepe_turkey": "pepe_turkey.png", + "george_shiggy": "george_shiggy.png", + "pepe_cia": "pepe_cia.png", + "columbo_smug": "columbo_smug.png", + "att": "att.png", + "francisco.png": "francisco.png", + "francisco_intensifies": "francisco_intensifies.png", + "nixon_smug": "nixon_smug.png", "oj_sad": "oj_sad.png", "phear_slackware": "phear_slackware.gif", "cunny": "cunny.png", diff --git a/static/emoji/anni/pepe_cia.png b/static/emoji/anni/pepe_cia.png new file mode 100644 index 0000000..076369b Binary files /dev/null and b/static/emoji/anni/pepe_cia.png differ diff --git a/static/emoji/anni/pepe_turkey.png b/static/emoji/anni/pepe_turkey.png new file mode 100644 index 0000000..e10c6c7 Binary files /dev/null and b/static/emoji/anni/pepe_turkey.png differ diff --git a/static/emoji/anni/trust_the_pfp.png b/static/emoji/anni/trust_the_pfp.png new file mode 100644 index 0000000..f1a226e Binary files /dev/null and b/static/emoji/anni/trust_the_pfp.png differ diff --git a/static/emoji/anni/tucker_shock.png b/static/emoji/anni/tucker_shock.png new file mode 100644 index 0000000..86c3215 Binary files /dev/null and b/static/emoji/anni/tucker_shock.png differ diff --git a/static/instance/panel.html b/static/instance/panel.html index 058219c..b38741c 100755 --- a/static/instance/panel.html +++ b/static/instance/panel.html @@ -1,4 +1,4 @@

Welcome to annihilation

Bloat

Status

Tor

Sengi

+http://nfg3pbejnvp4xxppglvtj7trfwhkesnsj2cxmsjlvipqnjqpedacngyd.onion" rel="noopener noreferrer nofollow">Tor

diff --git a/static/modules/auto_untagger_policy.ex b/static/modules/auto_untagger_policy.ex new file mode 100644 index 0000000..525eb02 --- /dev/null +++ b/static/modules/auto_untagger_policy.ex @@ -0,0 +1,64 @@ +defmodule Pleroma.Web.ActivityPub.MRF.AutoUntaggerPolicy do + @moduledoc "Automatically untags all local users from posts originating from specified instances" + @behaviour Pleroma.Web.ActivityPub.MRF.Policy + + require Pleroma.Constants + alias Pleroma.Config + + @impl true + def filter( + %{ + "type" => "Create", + "to" => to, + "cc" => cc, + "actor" => actor, + "object" => object + } = message + ) do + + local = Config.get([Pleroma.Web.Endpoint, :url, :host]) + if URI.parse(actor).authority in Config.get([:mrf_auto_untagger, :domains]) do + object = + object + |> Map.put("to", Enum.filter(to, fn x -> URI.parse(x).authority != local end)) + |> Map.put("cc", Enum.filter(cc, fn x -> URI.parse(x).authority != local end)) + |> Map.put("tag", Enum.filter(object["tag"], fn x -> URI.parse(x["href"]).authority != local end)) + + message = + message + |> Map.put("to", Enum.filter(to, fn x -> URI.parse(x).authority != local end)) + |> Map.put("cc", Enum.filter(cc, fn x -> URI.parse(x).authority != local end)) + |> Map.put("object", object) + + {:ok, message} + else + {:ok, message} + end + end + + @impl true + def filter(message) do + {:ok, message} + end + + @impl true + def describe, do: {:ok, %{}} + + @impl true + def config_description do + %{ + key: :mrf_auto_untagger, + related_policy: "Pleroma.Web.ActivityPub.MRF.AutoUntaggerPolicy", + label: "Autountagger policy", + description: "Automatically untags all local users from posts originating from specified instances", + children: [ + %{ + key: :domains, + type: {:list, :string}, + label: "List of affected instance domains", + suggestions: ["freespeechextremist.com"] + } + ] + } + end +end diff --git a/static/modules/inline_quote_policy.ex b/static/modules/inline_quote_policy.ex new file mode 100644 index 0000000..b7a01c2 --- /dev/null +++ b/static/modules/inline_quote_policy.ex @@ -0,0 +1,77 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2021 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ActivityPub.MRF.InlineQuotePolicy do + @moduledoc "Force a quote line into the message content." + @behaviour Pleroma.Web.ActivityPub.MRF.Policy + + defp build_inline_quote(template, url) do + quote_line = String.replace(template, "{url}", "#{url}") + + "

#{quote_line}
" + end + + defp has_inline_quote?(content, quote_url) do + cond do + # Does the quote URL exist in the content? + content =~ quote_url -> true + # Does the content already have a .quote-inline span? + content =~ "" -> true + # No inline quote found + true -> false + end + end + + defp filter_object(%{"quoteUrl" => quote_url} = object) do + content = object["content"] || "" + + if has_inline_quote?(content, quote_url) do + object + else + template = Pleroma.Config.get([:mrf_inline_quote, :template]) + + content = + if String.ends_with?(content, "

"), + do: + String.trim_trailing(content, "

") <> + build_inline_quote(template, quote_url) <> "

", + else: content <> build_inline_quote(template, quote_url) + + Map.put(object, "content", content) + end + end + + @impl true + def filter(%{"object" => %{"quoteUrl" => _} = object} = activity) do + {:ok, Map.put(activity, "object", filter_object(object))} + end + + @impl true + def filter(object), do: {:ok, object} + + @impl true + def describe, do: {:ok, %{}} + + @impl Pleroma.Web.ActivityPub.MRF.Policy + def history_awareness, do: :auto + + @impl true + def config_description do + %{ + key: :mrf_inline_quote, + related_policy: "Pleroma.Web.ActivityPub.MRF.InlineQuotePolicy", + label: "MRF Inline Quote Policy", + description: "Force quote url to appear in post content.", + children: [ + %{ + key: :template, + type: :string, + description: + "The template to append to the post. `{url}` will be replaced with the actual link to the quoted post.", + suggestions: ["RT: {url}"] + } + ] + } + end +end diff --git a/static/modules/lock_smasher.ex b/static/modules/lock_smasher.ex new file mode 100644 index 0000000..a81c208 --- /dev/null +++ b/static/modules/lock_smasher.ex @@ -0,0 +1,63 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only +# Fuck you falaichte +defmodule Pleroma.Web.ActivityPub.MRF.LockSmasher do + alias Pleroma.Config + alias Pleroma.User + + @behaviour Pleroma.Web.ActivityPub.MRF.Policy + + require Pleroma.Constants + + @impl true + def filter( + %{ + "type" => "Create", + "to" => to, + "cc" => cc, + "actor" => actor, + "object" => object + } = message + ) do + actor_info = URI.parse(actor) + user = User.get_cached_by_ap_id(actor) + instance_domain = Config.get([Pleroma.Web.Endpoint, :url, :host]) + + # Determine visibility + visibility = + cond do + Pleroma.Constants.as_public() in to -> "public" + Pleroma.Constants.as_public() in cc -> "unlisted" + user.follower_address in to -> "followers" + true -> "direct" + end + + if visibility in ["unlisted", "followers"] and actor_info.host != instance_domain do + to = List.delete(to, user.follower_address) ++ [Pleroma.Constants.as_public()] + cc = List.delete(cc, Pleroma.Constants.as_public()) ++ [user.follower_address] + + object = + object + |> Map.put("to", to) + |> Map.put("cc", cc) + + message = + message + |> Map.put("to", to) + |> Map.put("cc", cc) + |> Map.put("object", object) + + {:ok, message} + else + {:ok, message} + end + + end + + @impl true + def filter(message), do: {:ok, message} + + @impl true + def describe, do: {:ok, %{}} +end