FC2ブログ

ブログ移行用プログラムコード

2018-06-15 :  その他
先日(2018-06-01)の記事:
ブログ移行を完結させる:計画」から、
移行手順に沿ったプログラムを、GSL Shell で3本作った。


(1)対象記事の取り込み用
----- Get_Blog.gsl -----
local lfs = require'lfs'; require'winman'

function send_keys( text, ts ) -- 文字列 Send
winman.send( text ); winman.sleep( ts )
end
function move_mouse( pos, ts ) -- マウスカーソル移動
winman.at( pos ); winman.click(); winman.sleep( ts )
end

CWD = lfs.currentdir()
URL = 'http://admin.blog.fc2.com/control.php?mode=editor&process=load&eno='

-- FC2ブログ管理画面用に「kinza」を事前に立ち上げログインしておく。
kinza = winman.find{matchtitle=".+Kinza.*$", wait=4000}

for num = 471,1033 do --対象記事は全563件
-- 記事取り込み保存用に「メモ帳」を使う。
os.execute( 'start notepad' )
Note = winman.find{matchtitle=".+メモ帳.*$", wait=4000}

kinza:activate()
-- URL 入力領域:
move_mouse({900,65}, 50); send_keys( URL..num..'{ENTER}', 2500 )
-- 記事編集領域:
move_mouse({900,700},50); send_keys( '^a^c', 700 ) -- Ctrl+A、Ctrl+C

Note:activate(); send_keys( '^v', 500 ) -- Ctrl+V
send_keys( '%f', 100 ); send_keys( 'a', 500 ) -- Alt+F -> A
send_keys( CWD, 100 ); send_keys( '\\blog_'..num..'.txt', 300 )
send_keys( '{ENTER}', 600 ) ----- ファイル保存後、メモ帳終了
send_keys( '%f', 100 ); send_keys( 'x', 500 ) -- Alt+F -> X
end

(2)記事内のリンク先変換用
----- Convert_Blog.gsl -----
require'pl'; SF = string.find; SS = string.sub

w = utils.readlines( 'blog_conv.txt' ) -- リンク先対応表
tt={}; for n=1,#w do tt[n]=stringx.split(w[n])[1] end

URL = 'jn1inl.blog77.fc2.com/blog-entry-' -- 変換後の固定部

flist = dir.getfiles( './IN' ); zz=#flist

for z=1,zz do
num = SS(flist[z],11,-5) -- 471 ~ 1033

cnt=0 -- リンク先の変換があったか?カウンタ
w = file.read( './IN/blog_'..num..'.txt' ) -- ファイル丸ごと1文字列
k = 1
while SF( w, 'blog.goo.ne.jp/jn1inl', k ) ~= nil do cnt=cnt+1
j=SF(w,'blog.goo.ne.jp/jn1inl',k); j=j+5
uu=SS(w,j+19,j+50); k=j+19; m=1
while uu ~= tt[m] do m=m+1 end
w = SS(w,1,j-6) .. URL .. m+470 .. '.html' .. SS(w,j+51)
end
if cnt>0 then
OT=io.open( './OT/blog_'..num..'.txt', 'w' )
OT:write( w ); OT:close()
end
end
ここで、
「blog_conv.txt」は、
28b945dbe679f27c6d9d698354c153c6    471
e6219c0944d522ebb49cfb742c491dfa 472
・・・・・
の様な対応表。

(3)対象記事の書き戻し用
----- Put_Blog.gsl -----
require'pl'; require'winman'; require'clipboard'
SS = string.sub

function send_keys( text, ts ) -- 文字列 Send
winman.send( text ); winman.sleep( ts )
end
function send_C_keys( text, ts ) -- clipboard 経由 Send
clipboard.settext( text )
winman.sleep( 300 )
winman.send( '^v' )
winman.sleep( ts )
end
function move_mouse( pos, ts ) -- マウスカーソル移動
winman.at( pos ); winman.click(); winman.sleep( ts )
end

URL = 'http://admin.blog.fc2.com/control.php?mode=editor&process=load&eno='

-- FC2ブログ管理画面用に「kinza」を事前に立ち上げログインしておく。
kinza = winman.find{matchtitle=".+Kinza.*$", wait=4000}

flist = dir.getfiles( './OT' ); zz=#flist -- 563 以下

for z = 1,zz do
num = SS(flist[z],11,-5)
w = file.read( flist[z] ) -- ファイル丸ごと1文字列

kinza:activate()
-- URL 入力領域:
move_mouse({900,65}, 50); send_keys( URL..num..'{ENTER}', 2500 )
-- 記事編集領域:
move_mouse({900,700},50); send_keys( '^a{DEL}', 200 ) -- Ctrl+A、[Delete]
send_C_keys( w, 1500 )

move_mouse({1052,841},100) --「リアルタイムプレビュー」の [X]クリック
move_mouse({650,850},1500) --「記事を保存」クリック
end

以上の3本。

数件ずつテストしてみて、

GUI の画面遷移には時間を取らないといけないので、

結局、1記事当たり 6000ミリ秒は必要?
   ・・・・約600記事では約1時間必要。


と云うことで、後は実行あるのみ?


本日はここまで。



出来たコードによる移行作業の実行に続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


180527
関連記事
スポンサーサイト



コメントの投稿

管理者にだけ表示を許可する

人気blog Ranking



最新記事
カレンダー
06 | 2021/07 | 08
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
月別アーカイブ
カテゴリ
最新コメント
検索フォーム
リンク
プロフィール

<紙>

Author:<紙>
ようこそ。
「パソコンヲタクの雑記帳」
もろもろなことを綴っています。
パソコン ヲタクってねくら?
画像は kami でなく kani です。

FC2 / i2i / Google




Google Analytics
ブックマーク