メェのボヤキ

ボヤいてます。NYSL。@mele。

gooブログ ログイン/保存/投稿スクリプト(05/07/04)

2005-07-04 | ユーティリティ
gooブログ 保存/投稿スクリプトに、自動ログイン機能をとって付けてみました。

ブログの編集中にこのスクリプトを起動すれば、保存と投稿を一度に
実行するのは以前のままですが、編集画面にしていないときに起動すると
(当然、保存も投稿もできませんので)
その代わりに gooにログインする画面を表示するようにしました。

変数 sAccount にアカウント名を、sPassword にパスワードを設定して下さい。
最初は
sAccount = ""
sPassword = ""
と空になってますので、アカウント名が aaa、パスワードが bbbなら
sAccount = "aaa"
sPassword = "bbb"
のように書き換えて下さい。


それ以外の変更はありませんので、マニュアルをどうぞ。
拡張子vbsで保存・実行して下さい。

--------------------

' gooブログ ログイン/保存/投稿スクリプト(05/07/04)



' gooブログのアカウント名とパスワードを設定します。
' sAccount = ""、sPassword = "" のように空にしておくと、
' 自動でのログインは行いません。
sAccount = ""
sPassword = ""



' クリップボードへ保存するか、ファイルへ保存するか、
' もしくは両方に保存するかを設定します。
' クリップボードへのみ保存する場合は、1 を
' ファイルへのみ保存する場合は、2 を
' 両方へ保存する場合は、3 を設定して下さい。
iSaveMode = 3


' ファイルへ保存する場合は、このファイル名で保存します。
' iSaveMode が 2 か 3 の時に必要になります。
sLogFilename = "gooblog.txt"


' スクリプトを実行することで、保存と投稿を同時に行います。
' スクリプトの役割は保存だけに専念させて、
' 投稿ボタンは自分でクリックする場合には、bSubmit = False にします。
bSubmit = True


' 『クリップボードをgooブログに新規投稿するスクリプト』との互換性を設定します。
' 互換性を無視する場合は、トラックバックURLを3つ全て保存できます。
' この場合は、iSaveTb = 3 を設定して下さい。
' 互換性を保持する場合は、トラックバックURLを1つまで保存できます。
' この場合は、iSaveTb = 1 を設定して下さい。
' また、iSaveTb = 0 を設定することでトラックバックURLを保存しません。
' 保存した記事データを再利用した時に、意図しない二重トラックバックを
' 予防することが目的です。
iSaveTb = 0


' カテゴリーチェック。この部分は少々複雑です。この値を True に
' セットすることで、カテゴリー名も保存します。
' bCheckCategory = True に設定した場合、スクリプト末尾に記述してある
' 関数 saveCategory 内に正しくデータを設定する必要があります。
bCheckCategory = False




' ファイルへ保存する際の、記事の区切りです。
sHorizon = "========================================"

' トラックバックURLの区切り文字です。
' iSaveTb = 3 の時に必要になります。
sTbChr = vbNewLine

' ログイン時のウェイト(ミリ秒)
iSlp = 3000


' ■■■ 設定ここまで ■■■





Set oSh = CreateObject("Shell.Application")

ii = 0
iGooEdit = -1
bGooEdit = False
For Each oIE In oSh.Windows
  If TypeName(oIE.document) = "HTMLDocument" Then
    If oIE.document.URL = "http://blog.goo.ne.jp/admin.php?fid=newentry" Or Left(oIE.document.URL, 45) = "http://blog.goo.ne.jp/admin.php?fid=editentry" Then
      If iGooEdit = -1 Then
        iGooEdit = ii
      Else
        bGooEdit = True
      End If
    End If
  End If
  ii = ii + 1
Next

If iGooEdit = -1 Or bGooEdit Then
  If vbOk = MsgBox("編集ウィンドウが無いか、もしくは複数見つかりました。" & vbNewLine & "OKボタンを押すと、編集画面を表示します。" & vbNewLine & "(未ログイン時は、gooID ログイン画面を表示します)", vbOkCancel) Then
    gooLogin()
  Else
    WScript.Quit
  End If
Else
  Set oIE = oSh.Windows(iGooEdit)
  sTitle = oIE.document.forms("entryForm").all.title.value
  sText = oIE.document.forms("entryForm").all.text.value
  sTime = oIE.document.forms("entryForm").all.time.value

  For ii = 0 To oIE.document.forms("entryForm").all.draft.length - 1
    If oIE.document.forms("entryForm").all.comment(ii).checked Then iComment = ii
  Next
  For ii = 0 To oIE.document.forms("entryForm").all.draft.length - 1
    If oIE.document.forms("entryForm").all.draft(ii).checked Then iDraft = ii
  Next

  If bCheckCategory Then
    Set dCate = CreateObject("Scripting.Dictionary")
    saveCategory()
    sCategory = oIE.document.forms("entryForm").all.category.value
    sCategory = dCate.Item(sCategory)
  Else
    sCategory = ""
  End If

  Select Case iSaveTb
  Case 0
    sTrackback = ""
    sOpt = ";" & sCategory & saveOption(iComment, iDraft)
  Case 1
    If oIE.document.forms("entryForm").all.trackback_url.value <> "" Then
      sTrackback = "tb" & oIE.document.forms("entryForm").all.trackback_url.value & vbNewLine
    Else
      sTrackback = ""
    End If
    sOpt = ";" & sCategory & saveOption(iComment, iDraft)
  Case 3
    If oIE.document.forms("entryForm").all.trackback_url.value <> "" Then _
        sTrackback = oIE.document.forms("entryForm").all.trackback_url.value & sTbChr
    If oIE.document.forms("entryForm").all.trackback_url2.value <> "" Then _
        sTrackback = sTrackback & oIE.document.forms("entryForm").all.trackback_url2.value & sTbChr
    If oIE.document.forms("entryForm").all.trackback_url3.value <> "" Then _
        sTrackback = sTrackback & oIE.document.forms("entryForm").all.trackback_url3.value & sTbChr
    sOpt = sCategory
  End Select

  sClip = sOpt & vbNewLine & sTitle & vbNewLine & sTrackback & sText & vbNewLine

  If iSaveMode = 1 Or iSaveMode = 3 Then
    Set oIEA = CreateObject("InternetExplorer.Application")
    oIEA.Navigate "about:blank"
    Set oClip = oIEA.Document.ParentWindow.ClipboardData
    oClip.setData "text", sClip
    Set oClip = Nothing
    Set oIEA = Nothing
  End If
  If iSaveMode = 2 Or iSaveMode = 3 Then
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Set oFSOw = oFSO.OpenTextFile(sLogFilename, 8, True)
    oFSOw.Write sHorizon & vbNewLine
    oFSOw.Write sClip
    oFSOw.Close
    Set oFSOw = Nothing
    Set oFSO = Nothing
  End If

  If bSubmit Then
    oIE.document.forms("entryForm").Submit()
  End If
End If

WScript.Quit



Sub gooLogin()
  Dim oIE
  Set oIE = CreateObject("InternetExplorer.Application")
  oIE.Visible = True
  oIE.Navigate "http://blog.goo.ne.jp/admin.php"
  While oIE.busy
  Wend
  If oIE.document.title = "gooID" And sAccount <> "" And sPassword <> "" Then
    oIE.document.forms("f1").all.uname.value = sAccount
    oIE.document.forms("f1").all.pass.value = sPassword
    WScript.Sleep(iSlp)
    oIE.document.forms("f1").Submit()
    WScript.Sleep(iSlp)
  End If
End Sub



Function saveOption(iComment, iDraft)
  ' 『クリップボードをgooブログに新規投稿するスクリプト』用のオプション
  saveOption = ";"
  If iComment = 1 Then saveOption = saveOption & "c"
  If iDraft = 0 Then saveOption = saveOption & "d"
  saveOption = saveOption & "p"
End Function



Function saveCategory()
  ' 「カテゴリー」を設定します。gooブログ編集画面のソースを参考に、
  ' ご自分のカテゴリー名とその値を設定して下さい。
  dCate.Add "aa11bb22cc33dd44ee55ff66gg77hh88", "Weblog"
  dCate.Add "ii99jj00kk11ll22mm33nn44oo55pp66", "ユーティリティ"
End Function


最新の画像もっと見る

コメントを投稿