Vertrauensebenen für bestimmte Gruppe beschränken

Okay, ich habe dieses Lurkers-Abzeichen und es funktioniert derzeit:

-- Lurkers: Benutzer, die Themen angesehen, aber in den letzten 30 Tagen nicht geantwortet haben,
-- aber die Vergabe stoppen (und widerrufen), sobald sie ≥3 akzeptierte Antworten erhalten haben
WITH recent_readers AS (
  SELECT DISTINCT user_id
  FROM user_visits
  WHERE visited_at > CURRENT_DATE - INTERVAL '30 days'
    AND posts_read > 0
),
recent_repliers AS (
  SELECT DISTINCT user_id
  FROM posts
  WHERE created_at > CURRENT_DATE - INTERVAL '30 days'
    AND post_number > 11
    AND deleted_at IS NULL
),
recent_solutions AS (
  -- Benutzer, deren eigene Themen in den letzten 30 Tagen ≥3 akzeptierte Antworten erhalten haben
  SELECT t.user_id
  FROM posts p
  JOIN post_custom_fields pc
    ON pc.post_id = p.id
   AND pc.name = 'is_accepted_answer'
  JOIN topics t
    ON t.id = p.topic_id
  WHERE p.created_at > CURRENT_DATE - INTERVAL '30 days'
    -- schließe Selbstannahmen aus, wenn du nur Antworten von anderen möchtest:
    AND p.user_id <> t.user_id
  GROUP BY t.user_id
  HAVING COUNT(*) >= 3
)
SELECT
  u.id        AS user_id,
  u.username_lower AS username,
  u.last_seen_at,
  CURRENT_TIMESTAMP AS granted_at
FROM users u
JOIN recent_readers rr
  ON rr.user_id = u.id
LEFT JOIN recent_repliers rp
  ON rp.user_id = u.id
LEFT JOIN recent_solutions rs
  ON rs.user_id = u.id
WHERE rp.user_id IS NULL         -- hat in den letzten 30 Tagen nie geantwortet
  AND rs.user_id IS NULL         -- hat in den letzten 30 Tagen noch keine 3 Lösungen erhalten
  AND u.active = TRUE
ORDER BY u.last_seen_at DESC

Ich bin sicher, es könnte verbessert werden und ich habe es noch nicht vollständig getestet, aber meine Anfrage hier ist, eine Einschränkung des Vertrauensniveaus (auf trust_level_1) hinzuzufügen, und ich verstehe, dass ich dafür einen API-Aufruf oder ein Plugin benötige.

Diese Initiative sucht nach dem Plugin. Bitte senden Sie ein Angebot und ich werde es prüfen, schnelle Zahlung und Entwicklung.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.