こんにちは、Habrausers様。
この投稿は、Twitterボットと彼のためのあらゆる種類のホイッスルダンサー
に関する記事の登場に触発されています。 Twitter APIの私のビジョンを紹介します。 猫へようこそ。
そのため、タイトルが示すように、ボットアプリケーションはツィーターAPIを使用してオンボードのLinuxマシンを制御します。
開発言語としてpythonが選択され、その結果、tweepyライブラリが選択されました。 このライブラリの初期セットアップのHoutは、上記のリンクにあります。
構成
対象に直接進みます。 このコードは完全なLinuxデーモンとして設計されており、構成ファイルがあり、プラグインで動作します。
構成ファイルを検討してください。
# Twitter credentials
CONSUMER_KEY = ''
CONSUMER_SECRET = ''
ACCESS_KEY = ''
ACCESS_SECRET = ''
# base path
BASE_PATH = os.path.dirname(__file__)
# pid path
PID_PATH = BASE_PATH+'/elmot.pid'
# people nicknames who can manage system
AUTHORIZED_ACCOUNTS = []
# logfile
LOG_PATH = BASE_PATH+'/log/elmot.log'
ERROR_LOG_PATH = BASE_PATH+'/log/elmot.err'
# type None to disable incoming message log
INCOMING_MESSAGE_LOG = BASE_PATH+'/log/incoming.log'
# run elmot as user (do not use root)
RUN_UID = pwd.getpwnam("root").pw_uid
すべてが透明です。 作業を開始するには、先ほど取得したフィールドconsumer_key、consumer_secret、ユーザーキー-access_keyおよびaccess_secretを入力するだけです。 AUTHORIZED_ACCOUNTSでシステムの制御を許可されている人のニックネームを追加することも必要です。
プラグイン
プラグインに移りましょう。 すべての機能は、彼らの助けによってのみ提供されます。 プラグインテンプレートは次のとおりです。
class Plugin(object):
name = 'undefined'
keyword = 'undefined'
# actions:
# 0 - silent
# 1 - private message
# 2 - tweet to timeline
action = 2
controlled = True
def __init__(self):
print '*', self.name, 'loaded'
def execute(self, message):
pass
# run method only for non controlled plugins
# for threading support with python Threads
def run():
pass
nameはプラグインの名前、keywordはアクセスするための一意の識別子です。
アクション-必要なアクション、つまり、プラグインはサイレントにするか、PMで応答するか、タイムラインに書き込むことができます。
制御されたフィールドは、プラグインが対話型であるかどうか、つまりクライアントメッセージを受信して処理するかどうかをプラグインに伝えます。 プラグインが対話型の場合、プラグインは個人の電子メールでボットに着信するメッセージをリッスンし、メッセージがそれに宛てられた場合、executeメソッドを呼び出します。このメソッドでは、何でも実装できます。 プラグインが「サイレント」の場合、別のスレッドでrun()メソッドからコードを実行します。
使い方
ボットに「キーワードコマンド引数」という形式のプライベートメッセージを送信するだけです。 ボットはメッセージを解析し、処理のために適切なキーワードとともにプラグインに送信します。 たとえば、稼働時間プラグインを考えます。 キーワードを1つだけ受け取ります-キーワードと、そのタイムラインで稼働するマシンを報告します。
実装されたプラグイン
conntest-リモートホストとのリンクの常時チェック。 彼はタイムラインの問題について書いています。
removetweets-ボットのタイムラインからn個のツイートを削除します(例「removetweets 5」)。
sshmonitor-auth.log解析に基づくsshサーバー監視。 認証エラーに関するタイムラインを書き込みます。
稼働時間-マシンの稼働時間を表示します。
それだけです。あなたは自分の好みに合わせて任意のプラグインを実装し、ツイッター経由で何かを監視(またはサービスを再起動)することができます。
ご意見をお寄せいただきありがとうございます。
githubの PSコード。
PPSデーモンを起動するには、binディレクトリのリンクを使用する必要があります。