包丁一本さらしに巻いて

cnps イベントに来る人をよりよく知るツール

はじめてイベントを企画してconnpassで募集したんだけど、ざっと見て「この人抽選で当たったとして、本当に来るのか…」みたいに感じる人がそれなりにいた。以下は「勉強会ゴロ」という言葉を生み出した記事で、分類に関してはまだ自分で実感したことないんだけど(あまり勉強会に行ったことがない)、まぁそういう風な人がいるんだろうな、という感じ。

ただ、「意識高い系」や「会社の偉い人系」とか以前に「この人本当に来るのか…来るとしても素性が全くわからんし、不気味なぐらい勉強会参加数が多いしなんなら過去に同日イベントに登録してるな…」みたいな人が多かったので、さくっとツールを作ってそういう人達を一覧化できるようにした。

cnps - See who’s comming to your event through connpass

Pythonで作ったCLIツールなのでpipsiと一緒に使うと便利だと思う。

cnpsの使い方

まずはイベントのURLを指定して参加希望者のデータをJSONに吐き出す。

cnps dump https://fintech-engineers-drink-up.connpass.com/event/56057/ > user.json

そうするとこういう感じのデータが取れる。(参加希望者のデータはスクレイピングしてるので、無茶はしないで)。参加希望者の直近参加申請したイベントの日付、ソーシャルリンク等が含まれてる。

  {
    "event_dates": [
      "2017-05-30 00:00:00", 
      "2017-05-26 00:00:00", 
      "2017-05-16 00:00:00", 
      "2017-05-11 00:00:00", 
      "2017-03-28 00:00:00", 
      "2016-11-16 00:00:00", 
      "2016-11-01 00:00:00", 
      "2016-08-01 00:00:00", 
      "2016-06-02 00:00:00", 
      "2016-05-31 00:00:00"
    ], 
    "social_links": [
      {
        "twitter": "http://twitter.com/keysket"
      }, 
      {
        "facebook": "https://www.facebook.com/app_scoped_user_id/1431545096/"
      }
    ], 
    "user_id": "KeisukeKogure", 
    "user_url": "https://connpass.com/user/KeisukeKogure/"
  }

あとは出力したファイルの中のデータを好きな条件でフィルタする。例えば直近10件のイベントで、同日に別イベントに登録してる人。(この辺はキャンセルしたとか時間帯が違うとかはあんまし考慮できてないので今後の課題です)

cnps filter ./tests/data/user.json  --duplicate-event

例えばソーシャルリンクが一つも無い人。

cnps filter ./tests/data/user.json  --no-facebook-link --no-github-link --no-twitter-link

例えばGitHubのリンクはある人。

cnps filter ./tests/data/user.json --github-link

例えばソーシャルリンクが一つも無くて、直近10件のイベントの平均インターバルが3日以下の人。

cnps filter ./tests/data/user.json --avg-event-interval=3 --no-facebook-link --no-twitter-link --no-github-link

結論

はやく会社の知名度を上げて参加費300円とかにしても沢山人が来てくれるようにしたい。