[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[kagemai-users:0357] レポート登録スクリプト



福岡です。

[kagemai-users:0356] に関係していますが、オフトピック気味なので
別スレッドにしておきます。

| メール(と同じ形式)にして mailif.rb を使うとか、mailif.rb や
| [kagemai-users:0341] のように、Kagemai::BTS や Kagemai::Project 
| などのクラスを利用したスクリプトを作るのをおすすめしておきます。

どの程度興味を持つ人がいるかわかりませんが、試しに作ってみました。

mailif.rb はレポートの新規登録とリプライの両方に対応してますし、
メールの処理などで複雑なように見えるかもしれませんが、レポート
の新規登録だけにすると、以下のようになります。

====
#!/usr/bin/ruby -Ke

kagemai_root = "/home/fukuoka/kagemai"        # setup
config_file  = "#{kagemai_root}/kagemai.conf" # setup

$: << "#{kagemai_root}/lib"
require 'kagemai/config'

Kagemai::Config.initialize(kagemai_root, config_file)

require 'kagemai/bts'
require 'kagemai/project'
require 'kagemai/message_bundle'
require 'kagemai/cgi/action'

module Kagemai
  MessageBundle.open(Config[:resource_dir], 
                     Config[:language], 
                     Config[:message_bundle_name])
  
  class NewReport
    def initialize(project_id)
      bts = BTS.new(Config[:project_dir])
      @project = bts.open_project(project_id)
    end
    
    def do(email, title, body)
      message = Message.new(@project.report_type)
        
      message['email'] = email
      message['title'] = title
      message['body']  = body
        
      message.set_option('email_notification', false)
        
      @project.new_report(message)
    end
  end
end

command = Kagemai::NewReport.new('project-id')
command.do('メールアドレス', '概要', '本文')
====

NewReport#do に渡す title, body の文字コードは EUC で
ある必要があります。

これをベースに、メールアドレス、概要、本文を外部から
指定できるようにしてやれば使えます。

たとえば、表計算ソフトなどでバグ管理していたデータ
を CSV でエクスポートして、影舞に取り込むようなこと
もできそうですね。

-- 
福岡ともゆき <fukuoka@xxxxxxxxxxxxx>
http://www.daifukuya.com/