summaryrefslogtreecommitdiff
path: root/priv
diff options
context:
space:
mode:
authorkaniini <nenolod@gmail.com>2019-03-03 15:49:19 +0000
committerkaniini <nenolod@gmail.com>2019-03-03 15:49:19 +0000
commitc93479c6f5c2f112dc53d19681fb9cc6df31aff0 (patch)
tree7e38a7fd944f13ee1a29955214a96adaa71ce85d /priv
parentdfdbb6f125090d55de1afd755cd55f2e1f7e77bc (diff)
parent8a1e0c9bee4173a7cd2c6b6174293097d78bea19 (diff)
downloadpleroma-c93479c6f5c2f112dc53d19681fb9cc6df31aff0.tar.gz
pleroma-c93479c6f5c2f112dc53d19681fb9cc6df31aff0.zip
Merge branch 'count-only-public-statuses' into 'develop'
Increment user note count only on public activities #703 See merge request pleroma/pleroma!884
Diffstat (limited to 'priv')
-rw-r--r--priv/repo/migrations/20190303120636_update_user_note_counters.exs41
1 files changed, 41 insertions, 0 deletions
diff --git a/priv/repo/migrations/20190303120636_update_user_note_counters.exs b/priv/repo/migrations/20190303120636_update_user_note_counters.exs
new file mode 100644
index 000000000..54e68f7c9
--- /dev/null
+++ b/priv/repo/migrations/20190303120636_update_user_note_counters.exs
@@ -0,0 +1,41 @@
+defmodule Pleroma.Repo.Migrations.UpdateUserNoteCounters do
+ use Ecto.Migration
+
+ @public "https://www.w3.org/ns/activitystreams#Public"
+
+ def up do
+ execute """
+ WITH public_note_count AS (
+ SELECT
+ data->>'actor' AS actor,
+ count(id) AS count
+ FROM objects
+ WHERE data->>'type' = 'Note' AND (
+ data->'cc' ? '#{@public}' OR data->'to' ? '#{@public}'
+ )
+ GROUP BY data->>'actor'
+ )
+ UPDATE users AS u
+ SET "info" = jsonb_set(u.info, '{note_count}', o.count::varchar::jsonb, true)
+ FROM public_note_count AS o
+ WHERE u.ap_id = o.actor
+ """
+ end
+
+ def down do
+ execute """
+ WITH public_note_count AS (
+ SELECT
+ data->>'actor' AS actor,
+ count(id) AS count
+ FROM objects
+ WHERE data->>'type' = 'Note'
+ GROUP BY data->>'actor'
+ )
+ UPDATE users AS u
+ SET "info" = jsonb_set(u.info, '{note_count}', o.count::varchar::jsonb, true)
+ FROM public_note_count AS o
+ WHERE u.ap_id = o.actor
+ """
+ end
+end