このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

Send Partial サンプル

発言者:田中求之
( Date Thursday, February 26, 1998 18:04:22 )


WebSTAR の Send Partial を使って、フォルダー内のページを一定間隔をおいて
次々に表示させるというスクリプトです。

まず、以下のようなスクリプトのアプリケーションを作っておきます(ここでは
名前を PartialSender とします)。Tanaka's osax 1.24 を使ってます。

====

property crlf : (ASCII character 13) & (ASCII character 10)

property delay : 10 --- ページを送りだす間隔(秒)

property pageFldr : "Servers:WebSTAR 2.1:partialPages:" --- ページの入ったフォルダー

on send(cID)
  
  set myList to dirLister pageFldr type "TEXT" ofName ".html"
  set myCounter to count items of myList
  
  
  tell application "WebSTAR 2.1"
    
    send partial ("HTTP/1.0 200 OK" & crlf ツ
      & "MIME-Version: 1.0" & crlf ツ
      & "Content-Type: multipart/x-mixed-replace;boundary=bound" & crlf & crlf ツ
      & "--bound" & crlf ツ
      & "Content-Type: text/html" & crlf & crlf ツ
      & (readFromFile (pageFldr & (item 1 of myList))) & crlf) connection cID with more
    
  end tell
  
  
  repeat with x from 2 to myCounter
    
    set aDelay to (current date) + delay
    repeat while aDelay > (current date)
    end repeat
    
    tell application "WebSTAR 2.1"
      send partial ("--bound" & crlf ツ
        & "Content-Type: text/html" & crlf & crlf ツ
        & (readFromFile (pageFldr & (item x of myList))) & crlf) connection cID with more
    end tell
    
  end repeat
  
  
  tell application "WebSTAR 2.1"
    send partial ("--bound" & crlf) connection cID without more
  end tell
  
end send

=====

で、以下のような CGI を使ってこれを呼び出すようにしておくと、フォルダー
(上の場合には partialPages フォルダー)の中の HTML で書かれたページを
順番に、10秒の間隔を置いて送りだしていきます。間隔は property delay
で調整します。

--- 呼び出し CGI

on ヌevent WWWスsdocネ path_args ツ
  given ヌclass Kcidネ:cID
  
  ignoring application responses
    tell application "PartialSender" to send(cID)
  end ignoring
  
  return "<SEND_PARTIAL>"
  
end ヌevent WWWスsdocネ


なお、ページ中に画像などを埋め込む場合は、絶対パスで指定しておかないと
エラーになります。


ま、実際に役に立つかどうかは別にして、こういうこともできるということで (^_^;;