Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

リアクションをリアルタイムで収集する機能 #36

Closed
hakatashi opened this issue Jul 19, 2022 · 2 comments
Closed

リアクションをリアルタイムで収集する機能 #36

hakatashi opened this issue Jul 19, 2022 · 2 comments

Comments

@hakatashi
Copy link
Member

現在、slack-patronにメッセージにつけられたリアクションを収集する機能はない。slacklog上で見られるリアクションは全て、Slackが出力するダンプファイルからインポートした際にデータとして付属しているものを表示している。なのでリアクションが反映されるまでに長くて数ヶ月程度かかることもある。

messageイベントと同様にreaction_addedイベントを監視し、リアクションもリアルタイムで収集されるようにしたい。MongoDBのatomicなアップデートを行うことが必要。

@hakatashi
Copy link
Member Author

やります

現在、Slackのメッセージは付けられたリアクションの一覧を

[
  {
    "count": 3,
    "name": "koresuki",
    "users": [
      "U0AAAAAAA",
      "U0BBBBBBB",
      "U0CCCCCCC"
    ]
  },
  {
    "count": 1,
    "name": "fu",
    "users": [
      "U0AAAAAAA"
    ]
  },
]

のような形で持っているが、これを

[
  {
    "name": "koresuki",
    "user": "U0AAAAAAA"
  },
  {
    "name": "koresuki",
    "user": "U0BBBBBBB"
  },
  {
    "name": "koresuki",
    "user": "U0CCCCCCC"
  },
  {
    "name": "fu",
    "user": "U0AAAAAAA"
  },
]

という形で非正規化して持つようにする。

DBのアップデートは$addToSet$pullを用いることで1アクセスでアップデートする。

@cookie-s
Copy link
Member

cookie-s commented Jan 3, 2023

天才

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants