※ 今回はエレキギターの話は存在しません。
こんばんは、明日から仕事です。。。
4日休めたけど終わるの早いです
前回は椅子を加えたことで宅録環境の調整を図った旨を記事にしました。
すべては椅子から・・・エレキギター初心者によるギター用の環境を見直し結果
こんばんは・・・今日は昨日より雨がひどいですね。私は家にこもっていました。前回は価値のない記事になってまして・・・それでも見ていただいているのがありがたいです。今日はあまり進展せず・・・あと雨がすごい※今回の記事は、たぶん追記が本番です・・・こんばんは・・・昨日に引き続き、とりあえず休み堪能しています。前回は夏祭りのサビ部分をフェアリー社譜面に差し替えるというテコ入れを加えつつ、その部分だけ練習し…
今回はタイトルの通り、、、とうとうやってみました。
以前から本当に移行できるか試験環境使って、、、
まぁ実験の範囲では突破できそうだったのでやってみました。
7月までの記事を展開しています。
(範囲外になってしまったものは後述)
以下の画像からクリックすると入ることができます。
9月末には完成させてリリースできるといいなと思っています。
ちなみにfc2に設定した独自ドメインは11月まで残るので、
残った時間で検索エンジンとかの配慮が必要になりそうです。
(あとfc2のブログ自体は記事を開いたら10秒後に、
新しいサイトにリダイレクトする前提で当面残して置く予定です)
最初、今後の成長のためWordPressを使えたらと思いつつ、
移行がつらくて、、、やめてしまおうとも思いました。
500記事近くある投稿のそれぞれに埋め込んだリンクを見直すのは移行の最大の課題で、
普通にやったら1週間ぐらいはかかりそうなものだからです。
それが以前の時点でワンクリックで一括変換できる仕組みを作ったのは、大きいですね。
連番ルールが原因のリンク切れ問題をもっと効率的に解消したかった
こんばんは・・・やっと週末ですね。昨日はブログを移行するためのやつを徹夜でやって、まぁ少しは改善できました・・・ブログ移行の課題。。。連番ルールが原因のリンク切れ問題を効率的に解消せよこんばんは・・・今日はテレワークでゆったりできています。ゆったりはうそか・・・テレワークでも忙しいと疲れます前回はE7ソロコン対策を引き続きやって、少し希望が見えていました。E7一発ソロコン対策でスケールの復習をしていた…
ただそれでも課題が残っていて、今回さらに調整はしています。
その結果が以下です。
※ 端末によってはちゃんと映らない、枠からはみ出る可能性があります。
import xml.etree.ElementTree as ET
import re
# prepare
# - login to user
# - download from https://admin.blog.fc2.com/control.php?mode=control&process=backup&type=all
# - download from https://{domain}/sitemaps.xml
#
SRC_DOMAIN_NAME="{old domain}" # if use mydomain
SRC_FC2_DOMAIN_NAME="{fc2 domain name}" # fc2 default domain
TGT_DOMAIN_NAME="{new domain}" # new address
IMG_ADDRESS="https://blog-imgs-(\d{1,}).fc2.com/x/x/x/xxxxxxx/" ①
def checkBlogCardTag(line):
if "fc2-blogcard" in line:
return True
else:
return False
def replaceBlogCardTag(line):
new_line = re.sub(r"fc2-blogcard", "fc2-fc2-blogcard", line) ②
return new_line
def replaceLinkInBlog(line):
new_line = re.sub(r"("+
SRC_DOMAIN_NAME+"|"+SRC_FC2_DOMAIN_NAME+")/blog-entry-(\d{1,}).html",
TGT_DOMAIN_NAME+r"/blog-entry-\2", line)
if SRC_DOMAIN_NAME in line or SRC_FC2_DOMAIN_NAME in line:
new_line = re.sub(r" target=\"_blank\"", "", new_line)
return new_line
def replaceImgLinkInBlog(line): ③
new_line = re.sub(r"("+SRC_DOMAIN_NAME+"|"+SRC_FC2_DOMAIN_NAME+")/img/",
TGT_DOMAIN_NAME+r"/wp-content/uploads/{img folder}/", line)
new_line = re.sub(r"("+IMG_ADDRESS+")",
TGT_DOMAIN_NAME+r"/wp-content/uploads/{img folder}/", new_line)
if SRC_DOMAIN_NAME in line or SRC_FC2_DOMAIN_NAME in line:
new_line = re.sub(r".jpeg/",".jpeg", new_line)
new_line = re.sub(r".jpg/",".jpg", new_line)
new_line = re.sub(r".png/",".png", new_line)
new_line = re.sub(r" target=\"_blank\"", "", new_line)
return new_line
# make the sluglist
tree = ET.parse('sitemaps.xml')
slist = []
for i in tree.iter():
if "blog-entry" in i.text :
tmp = i.text.replace(SRC_DOMAIN_NAME + '/', '')
tmp = tmp.replace(SRC_FC2_DOMAIN_NAME + '/', '')
tmp = tmp.replace('.html', '') # escape parm link
slist.append(tmp)
slist.reverse() # sort asc
# insert the basename
fileobj = open("blogdata.txt", "r", encoding="utf_8")
fileobj2 = open("blogdataMgrt.txt", "w", encoding="utf_8")
idx = 0
while True:
line = fileobj.readline()
if line:
if not "if" in line and "PRIMARY CATEGORY:" in line:
fileobj2.write(line)
bname =slist[idx]
fileobj2.write('BASENAME: '+bname+'\n')
idx = idx + 1
elif SRC_DOMAIN_NAME in line or
SRC_FC2_DOMAIN_NAME in line or checkBlogCardTag(line): ④
line = replaceLinkInBlog(line)
line = replaceBlogCardTag(line)
line = replaceImgLinkInBlog(line)
fileobj2.write(line)
elif not "if" in line and "EXTENDED BODY:" in line: ⑤
tmp1 = fileobj.readline()
tmp2 = fileobj.readline()
if tmp1 == '\n' and tmp2 == '-----\n':
pass
else:
fileobj2.write(line)
fileobj2.write(tmp1)
fileobj2.write(tmp2)
else:
fileobj2.write(line)
else:
break
fileobj2.close()
fileobj.close()
前回からの差分はソースコード内にあるように5か所です。
・①、③について、画像を表示しているパスやリンクを一括変換しました。
・②について、おそらくWordPress専用のブログカードが必要になると思ってて、
私の場合fc2専用のタグをつけたブログカードになっているため、
後で識別できるように、そしてfc2の時のレイアウトを維持できるようにしています。
・④について、上記もろもろの変換処理に移る判定プログラムです。
・⑤について、fc2からデータをエクスポートするとExtend Bodyという、
追記の内容を管理しているパラメータを取るのですが、
これ。。。空の場合でもとりこんでしまうんですよね、、、
WordPressでインポートしたときに全記事に「続きを読む」とか入ってしまうので、
スキップするものを入れてます。
ここまでくればfc2側からの移行は、
おそらくほぼほぼ出来上がったと思っています。
WordPress側ですね・・・
・どうやってブログカードを作るか
・「いいね」をどうやって埋めるか
・「ブログランキング」をどうやって埋めるか
・モバイルでどう運営するか
ここら辺が残課題になっています。
粛々と突破できればと思っています。
ではでは、今日もお疲れ様です。
# ちなみに上記のプログラムはPython 3.9.6で動かしています。
fc2のエクスポートファイルとsitemaps.xmlがあればできます。