Movatterモバイル変換


[0]ホーム

URL:


Skip to content
Search Gists
Sign in Sign up

Instantly share code, notes, and snippets.

@yoshimov
Last activeFebruary 25, 2017 06:19
    • Star(9)You must be signed in to star a gist
    • Fork(1)You must be signed in to fork a gist

    Select an option

    Save yoshimov/a760e5bf5cd39ffab415 to your computer and use it in GitHub Desktop.
    IngressのCOMMログを監視してハングアウトに通知するボット

    用途がだいぶニッチですが、IngressのCOMMログをIntelから収集して、特定のメッセージをHangoutsに通知するBotの作り方です。

    Webサイトを監視するBotという意味では、一応色々応用は効くんじゃないでしょうか。

    2015/6/26にIntelの仕様が変更されたので、以下の方法は動作しなくなりました。ご注意ください。

    注意

    Intelを機械的に監視するので、Ingressのアカウントを止められる危険があります。

    また、動作中はIntel Mapが使えなくなることがあります。かといって、他のアカウントを使うとエージェントプロトコルに違反する可能性があります。

    環境

    • Ubuntu 14.10
    • Ingress Intel (2015.2)
    • PhantomJS 1.9.0
    • HangoutsBot (2015.2)
    • Python 3

    手順

    まずは必要なアプリをインストールします。

    sudo aptitude install python3 python3-pip phantomjs git wgetsudo pip3 install hangups

    COMMログを取得したい範囲をIntelマップで開いて、URLをコピーしておきます。

    次に、PhantomJSでCOMMログを取得するJavaScriptを置きます。

    mkdir ~/commcd ~/commwget https://gist.githubusercontent.com/yoshimov/069dcb0aa8eaa0b4ced6/raw/a357cc623aa2e2ed174d30707186f1d03d710735/ingress-comm.js

    同じディレクトリにsettings.jsというファイルを作って、以下の様な内容を記述します。areaには上記IntelマップのURLを指定します。

    var l='gmail address'var p='password'var area='https://www.ingress.com/intel?ll=xx&z=xx'

    ログの収集を開始します。常に動かす場合はデーモン化したほうが良いと思いますが、2段階認証を使っている場合は起動時にパスワードが必要なので、デーモン化は難しそうです。

    phantomjs ingress-comm.js | tee -a ingress-comm.log

    ここではログファイルを1つにしていますが、時刻情報には日付が含まれていないので必要に応じてcronなどで1日毎にローテートしたほうが良いです。

    次にBotを作りますが、まずはBot用のGoogleアカウントを用意しておきます。作成したアカウントでログインして、実際にハングアウトが使えるかどうかを確認しておきます。

    HangoutsBotを取得します。常駐処理起動に対応している必要があるので、パッチを当てたものを利用してください。

    git clone https://github.com/yoshimov/HangoutsBot.git

    IngressBotコマンドをインストールします。

    wget -O Core/Commands/IngressBot.py https://gist.githubusercontent.com/yoshimov/97f3999449c371539906/raw/b062cfef279927ccbb40a61c5945a039af7c0021/IngressBot.py

    このファイルの最初の方にあるingress_logのパス名を、上記の収集中のログファイルに変更します。

    config.jsonファイルとして以下の内容を記載します。YOUR-USER-ID-HEREの部分は、Google+のプロフィールのURLとして表示される数字のID部分を入力します。

    {  "admins": ["YOUR-USER-ID-HERE"],  "autoreplies_enabled": true,  "autoreplies": [    [["bot", "robot", "Yo"], "/think {}"]  ],  "development_mode": false,  "commands_admin": ["hangouts", "reload", "quit", "restart", "config", "restart", "block", "watch", "watchlist", "unwatch"],  "commands_enabled": true,  "forwarding_enabled": false,  "rename_watching_enabled": true,  "conversations": {    "CONV-ID-HERE": {    }  }}

    Botを起動して、Botとして動かすアカウントのメールアドレスとパスワードを入力します。

    python3 Main.py

    あとはBotアカウントを入れたグループハングアウトを作成して、管理者が

    /watch キーワード

    と送れば監視対象キーワードの追加、

    /unwatch キーワード

    と送れば監視対象キーワードの削除、

    /watchlist

    と送れば、現在の監視対象の一覧が返ってきます。キーワードはハングアウト毎に違うセットを指定できます。

    参考

    Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment

    [8]ページ先頭

    ©2009-2025 Movatter.jp