過去30日間のユーザー間PMメッセージの10%をどのように取得するのが最適だとお考えでしょうか?「ランダム化」関数のようなものを呼び出せる方法を探しています。
私は主に違法な話題(主に薬物)について人々が議論するウェブサイトを運営しています。プラットフォームとして、販売行為やそれに類するものは明示的に禁止しています。何かしらの「ランダムな抽出」(コードの知識がないため、正確に表現できず申し訳ありません)のような、公平で防御可能な方法で「スポットチェック」を行い、ルールが守られていることを確認したいと考えています。
もちろん、特定の個人を恣意的にターゲットにしたいわけではありません。フラグ付きの単語やフレーズによる検知も機能していますが、一部の人々はそれを回避してしまっています。コミュニティフラグ、モデレーター、監視ワードに加え、「この」スポットチェックを実施していると主張できるようになりたい(おそらく必要)と考えていますが、もし存在するとしても、その「ランダム性」をどこからパラメータとして取得すればよいのかわかりません。
無料のコードやスクリプトを求めているわけでもありません。もし市場に出回っているものや実現可能な方法があるなら、何を求めればよいのかわからないだけなのです。
そのAPIを呼び出して、そのユーザーのメッセージを取得します。メッセージはメッセージレコードとして保存されているわけではなく、トピックとリンクされた通常の投稿として保存されているため、通常の投稿とメッセージ投稿を区別する必要があります。
うーん……
なるほど、暗号学的な乱数関数を呼び出して、ユーザーが2人だけのトピックを取得し、その結果を確認してみようと思います。もし他の方で、PMの公平なスポットチェックに法的な必要性があるコミュニティを運営している方がいれば、その知見を共有します。
SidV
2018 年 7 月 12 日午後 3:10
2
ユーザー別のメッセージ数
あなたのアイデアは素晴らしいですね。
私も同じ状況にあり、以下のクエリで PM を管理しています:
-- Query's idea: https://meta.discourse.org/t/43516/31?u=sidv
-- Mod by SidV
--[params]
--string :interval = 1 month
--int :limit
SELECT user_id, count(*) AS message_count
FROM topics
WHERE archetype = 'private_message' AND subtype = 'user_to_user'
AND age(created_at) < interval :interval
GROUP BY user_id
ORDER BY message_count DESC
LIMIT :limit
これがあなたの助けになれば幸いです
それ、最高だね!その結果をエクスポートして、random.org で抽選して、そのユーザーの PM がふざけてないかチェックできるね。random.org は少額の料金を払えば抽選リストを保存して参照できるみたいだから、運営側が不正をしてない証拠にもなるね。
@SidV ありがとう!
SidV
2018 年 7 月 12 日午後 3:37
4
特定の用語を含むプライベートメッセージ
新しいアイデアがあります @DNSTARS !
もしプライベートメッセージ内で「buy」や「drugs」のような用語を「検索」できたらどうでしょうか
こちらをご覧ください:
-- [params]
-- int :limit = 10
-- string :term = %term%
SELECT p.user_id, p.topic_id, p.post_number, p.raw, p.created_at::date
FROM posts p
LEFT JOIN topics t on t.id = p.topic_id
WHERE t.archetype = 'private_message'
AND t.title <> 'WELCOME-TITLE-from-discobot'
AND p.created_at::date > now()::date - 8
AND p.raw ILIKE :term
ORDER BY p.created_at DESC
LIMIT :limit
WELCOME-TITLE-from-discobot を、あなたのウェルカムメッセージの正確なタイトルに置き換えてください。これにより、自動的に生成されたすべてのウェルカムメッセージが除外されます。
このクエリのアイデアの元ネタは、guru の @meglio がこちら に投稿したものです。
私は少しだけ変更を加えただけです
クエリリスト を更新しました
絵文字の扱いで少し手間取りました。私たちのウェルカムメッセージは「 Greeetings!」だったので、そのまま「Greetings」として実行し、おおむね問題なく動作しています。ただし、監視ワードログ/フラグセクションには、約20以上の包括的なフレーズが設定されています。
例えば、友人との会話で「これまでに経験した最高のLSD体験」について話すこと自体は問題ありません。問題なのは「どこで手に入るか」「どうやって作るか」「誰が最も優れたものを持っているか」といった内容です。そのため、組み込みのフラグシステムを使ってこれらの表現を検知しており、この目的においてはよく機能しています。
法的な観点から言えば、もし何かあった場合に「合理的に期待されるすべてのこと」をより徹底して行う余地はあります。しかし現在、コミュニティメンバーが不適切なコンテンツをフラグ付けし(彼らはルールをよく理解しており、優秀です)、私たちがそれを審査し、自動フラグシステム、監視フレーズや用語、さらにDMをランダムに抽查して不適切な行動をチェックするという体制が整っています。
つまり、ご提案の2番目の方法は動作しますが、私たちの状況にとっては(失礼ながら)冗長です。なぜなら、薬物について話すこと自体は違法ではありません(少なくとも私たちの地域では)。しかし、薬物の入手や製造、その他それに関連する行為は違法であり、私たちはそのようなことには一切関わりたくありません。
改めてありがとうございます。最初の抽出は最小限の手動作業で済み、スタッフに任せることもでき、体系的な対応が可能です。