自動処理フレームワークautomaticrubyの紹介

自動処理フレームワークautomaticrubyの紹介

  • このエントリーをはてなブックマークに追加

露崎です。 本日は個人で開発に参加しているRubyのOSSプロジェクト、automaticrubyについて紹介してみたいと思います。 automaticruby/automaticruby · GitHub

automaticrubyとは

automaticrubyとは取得した情報を別のサービスに受け渡す処理を行うgemパッケージです。 プラグイン形式で取得できる、受け渡せるサービスを追加する事が出来ます。 IFTT とかplagger みたいなものと言えば解りやすいかも知れません コマンドライン操作を必要とするので開発者向けになります。

インストール

gemとして公開されているのでインストールは簡単です。

$ gem install automatic
$ automatic scaffold
$ automatic -c ~/.automatic/config/example/feed2console.yml

上記コマンドの実行でrssを取得し、コンソール上にrssを出力するという事が出来ます。 githubのソースを落として来て実行する方法もある。

$ git clone git://github.com/automaticruby/automaticruby.git
$ cd automaticruby
$ bundle install --path vendor/gems
$ bin/automatic scaffold
$ bin/automatic -c ~/.automatic/config/example/feed2console.yml

こちらは開発者向け、最新のプラグインを使いたい人向け。

レシピ

どこから情報を取得してどこに出力するのかを記述するものを「レシピ」と呼びます。 このレシピはyml形式で記述されていて、先ほど実行したレシピは以下のものになります

global:
  timezone: Asia/Tokyo
  cache:
    base: /tmp
  log:
    level: info

plugins:
  - module: SubscriptionFeed
    config:
      feeds:
        - http://blog.id774.net/post/feed/

  - module: PublishConsole

plugins下の- moduleの指定で使用したいプラグインを決め、設定が必要な場合はプラグインに合ったconfig指定をしてやります。

続きを読む

ドキュメント

使用できるプラグインや詳細なドキュメントは以下で確認できます。
automaticruby/doc/README.ja at master · automaticruby/automaticruby · GitHub
automaticruby/doc/PLUGINS.ja at master · automaticruby/automaticruby · GitHub

レシピ例

実際に「なにが出来るのか」というのをレシピを例に紹介して行きます gem installで入れたautomaticrubyにはまだ入っていないプラグインが数点あるので 実行する時はgithubからリポジトリを落として来た物を実行するのをお勧めする。

Tumblrからimgファイルのダウンロード

plugins:
  - module: SubscriptionTumblr
    config:
      urls:
        - http://soramugi.tumblr.com
      pages: 2

  - module: FilterImageSource
  - module: FilterIgnore
    config:
      link:
        - 'avatar'
        - '1280'
  - module: FilterImage

  - module: StorePermalink
    config:
      db: tumblrImg.db

  - module: StoreTargetLink
    config:
      path: /Users/your_homedir/Desktop/tumblr
      interval: 5

Pocketのスターを付けたURLをはてなブックマーク

plugins:
  - module: SubscriptionPocket
    config:
      consumer_key: your_consumer_key
      access_token: your_access_token
      optional:
        favorite: 1
        count:    10

  - module: StorePermalink
    config:
      db: pocket2hatebu.db

  - module: PublishHatenaBookmark
    config:
      username: your_username
      password: your_password

郵便番号から現在の天気を取得してTwitterに投稿

plugins:
  - module: SubscriptionWeather
    config:
      zipcode: 166-0003

  - module: FilterIgnore
    config:
      title:
        - '曇'
        - '雨'

  - module: PublishTwitter
    config:
      consumer_key:       your_consumer_key
      consumer_secret:    your_consumer_secret
      oauth_token:        your_oauth_token
      oauth_token_secret: your_oauth_token_secret
      tweet_tmp:          'いーい天気♪(cv:伊藤伸恵)'

簡易的なTwitterBOT

plugins:
  - module: SubscriptionText
    config:
      titles:
        - 'huge'
        - 'foge'

  - module: FilterRand

  - module: FilterOne

  - module: PublishTwitter
    config:
      consumer_key:       your_consumer_key
      consumer_secret:    your_consumer_secret
      oauth_token:        your_oauth_token
      oauth_token_secret: your_oauth_token_secret
      tweet_tmp:          '{title}'

まとめ

以上、automaticrubyの紹介でした 定期実行をさせたい場合はcronに実行させれば良い。 プラグインの組み合わせで様々な処理を行えるようになります。 プラグインの数が多ければ多いほど良いので Rubykaigiで興奮冷めあらぬRubystたちは是非開発に参加もしてほしい。
automaticruby/automaticruby · GitHub

  • このエントリーをはてなブックマークに追加

記事作成者の紹介

cube(システムエンジニア)

ソーシャルアプリ事業部でシステムエンジニアをやっています。cubeです。cubeというニックネームは主に会社で使っていて、個人でのネット上のハンドルネームはsoramugiで主に活動しています。

関連するSONICMOOVのサービス

システムエンジニア募集中!

×

SNSでも情報配信中!ぜひご登録ください。

×

SNSでも
情報配信中!
SONICMOOV Facebookページ SONICMOOV Twitter
システムエンジニア募集中!

新着の記事

mautic is open source marketing automation