多說評論一次導(dǎo)回 Typecho 本地數(shù)據(jù)庫

一箱歧、追憶往昔

第一次接觸社交化評論類產(chǎn)品大概是在2012年左右矾飞,當(dāng)時國內(nèi)知名度較高的有多說、友言等呀邢,國際上比較有名的有Disqus洒沦,這類產(chǎn)品的優(yōu)點在此就不多說了。

用過幾款產(chǎn)品后价淌,被多說漂亮的頁面和體驗所吸引申眼,最終愛上了多說。開源的內(nèi)容管理和博客系統(tǒng)換過很多输钩,但評論只要能用多說豺型,就一定用它。

后來被 typecho 的精簡吸引买乃,本人的個人博客系統(tǒng)也從 wp 換到 typecho姻氨,評論也一直用的多說。但 typecho 沒有像 wp 那樣完善的插件管理系統(tǒng)剪验,看不到數(shù)據(jù)肴焊,加上對第三方的不信任(隨時停更)前联,所以也沒有安裝第三方插件;再加上是多說的死忠粉娶眷,實不實時同步到本地數(shù)據(jù)庫也沒什么大問題似嗤。

2017年3月21日,多說官方發(fā)布了一條重要通知:“多說即將關(guān)閉届宠,將于2017年6月1日正式關(guān)停服務(wù)”烁落。當(dāng)時內(nèi)心感慨萬千,本想來個長篇大論感慨一下豌注,奈何文采有限伤塌,最后發(fā)了一條朋友圈:

”多說“國內(nèi)社交化評論”No.1“,如今竟然也落得如此下場轧铁!不能變現(xiàn)的項目每聪,即使再優(yōu)秀也難得長久,愿在新的領(lǐng)域里再創(chuàng)輝煌齿风,前程似錦药薯!”

感慨完了,數(shù)據(jù)還是要拿回來救斑,既然是6月1日正式停止服務(wù)童本,那還是有大把時間可以揮霍的,所以一直也沒上心脸候。正好這個五一小長假來臨前一天巾陕,感冒+高燒找上了門,只能在家閉門養(yǎng)病了(平時也不知道在瞎忙什么...)纪他。

二、主要步驟

關(guān)于多說的數(shù)據(jù)格式和 typecho 表結(jié)構(gòu)在這里就不分析了晾匠,主要說說主要步驟茶袒。這里是把多說json格式的數(shù)據(jù)轉(zhuǎn)換成符合 typecho 表關(guān)系的 insert 語句,并寫入到insert.sql文件中凉馆,有了這個文件相信聰明的你就知道該怎么做了薪寓!

1. 將多說數(shù)據(jù)導(dǎo)出

進(jìn)入多說開發(fā)者后臺=>工具=>導(dǎo)出數(shù)據(jù),選中”包含文章數(shù)據(jù)“澜共、”包含評論數(shù)據(jù)“向叉,務(wù)必選中兩項,然后導(dǎo)出數(shù)據(jù)嗦董,解壓后拿到export.json文件備用母谎。

2. PHP 代碼如下:

在 export.json 同級目錄新建import.php文件,代碼如下:

<?php

// 讀取 json 文件并轉(zhuǎn)換成 php 數(shù)組
$json = file_get_contents("./export.json");
$data = json_decode($json, true);

// 文章數(shù)據(jù)
$threads = $data['threads'];    
// 評論數(shù)據(jù)
$posts = $data['posts'];    

// 多說的文章ID(thread_id)與 typecho 的文章ID(cid) 對應(yīng)關(guān)系
$threadIdRelationCid = [];
foreach ($threads as $item) {
    $threadIdRelationCid[$item['thread_id']] = $item['thread_key'];
}

// 假設(shè)評論表 coid 小于10001京革,此處從10001開始自增奇唤,請根據(jù)實際最大值修改
$coid = 10001;
// 多說的評論ID(post_id) 與 typecho 的評論ID(coid) 對應(yīng)關(guān)系
$postIdRelationCoid = [];
foreach ($posts as $item) {
    $postIdRelationCoid[$item['post_id']] = $coid++;
}

// 拼成多條 insert sql語句
$sql = '';
foreach ($posts as $item) {
    $coid = $postIdRelationCoid[$item['post_id']];
    $cid = $threadIdRelationCid[$item['thread_id']];
    $created = strtotime($item['created_at']);
    $author = $item['author_name'] ?: '';
    $mail = $item['author_email'] ?: '';
    $url = $item['author_url'] ?: '';
    $ip = $item['ip'];
    $text = $item['message'];
    $parent = 0;
    if (is_array($item['parents'])) {
        $parent = $postIdRelationCoid[$item['parents'][0]];
    }

    $sql .= "INSERT INTO `typecho_comments` 
(`coid`, `cid`, `created`, `author`, `authorId`, `ownerId`, `mail`, `url`, `ip`, `agent`, `text`, `type`, `status`, `parent`) VALUES
({$coid}, {$cid}, {$created}, '{$author}', 0, 1, '{$mail}', '{$url}', '{$ip}', NULL, '{$text}', 'comment', 'approved', $parent);\n";
}

// 將 sql 寫入文件中
file_put_contents("./insert.sql", $sql);

echo "end \n";

在命令行執(zhí)行php import.php 或在瀏覽器中訪問import.php文件(推薦使用命令行方式)幸斥,就會在該文件所在的目錄生成一個insert.sql文件∫龋【下載代碼

3. 小問題

部分評論數(shù)據(jù)里面可能會有 emoji 表情甲葬,但是 typecho 表的字符集是 utf8,如果需要保留 emoji 的童鞋把 pre_comments 表的字符集改成 utf8mb4 即可懈贺,不需要保留 emoji 表情的將 emoji 表情刪掉重導(dǎo)即可经窖。

本博客已切換到 typecho 自帶的評論,默認(rèn)的才是最好的K蟛印;隆!Lピ础棉钧!如果有和我一樣需求的童鞋可以把代碼拿去放心使用。

三涕蚤、反思

不得不說宪卿,從產(chǎn)品角度講,”多說“是一個非常優(yōu)秀的產(chǎn)品万栅,市場占有率非常高佑钾,但從商業(yè)角度講,”多說“又是一個非常失敗的案例烦粒,其成敗都值得深思休溶。

如果您看到了這篇文章,請留下您的思考扰她!_

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末兽掰,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子徒役,更是在濱河造成了極大的恐慌孽尽,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件忧勿,死亡現(xiàn)場離奇詭異杉女,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)鸳吸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門熏挎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人晌砾,你說我怎么就攤上這事坎拐。” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵廉白,是天一觀的道長个初。 經(jīng)常有香客問我,道長猴蹂,這世上最難降的妖魔是什么院溺? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮磅轻,結(jié)果婚禮上珍逸,老公的妹妹穿的比我還像新娘。我一直安慰自己聋溜,他們只是感情好谆膳,可當(dāng)我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著撮躁,像睡著了一般漱病。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上把曼,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天杨帽,我揣著相機(jī)與錄音,去河邊找鬼嗤军。 笑死注盈,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的叙赚。 我是一名探鬼主播老客,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼震叮!你這毒婦竟也來了胧砰?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤苇瓣,失蹤者是張志新(化名)和其女友劉穎朴则,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體钓简,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年汹想,在試婚紗的時候發(fā)現(xiàn)自己被綠了外邓。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡古掏,死狀恐怖损话,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤丧枪,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布光涂,位于F島的核電站,受9級特大地震影響拧烦,放射性物質(zhì)發(fā)生泄漏忘闻。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一恋博、第九天 我趴在偏房一處隱蔽的房頂上張望齐佳。 院中可真熱鬧,春花似錦债沮、人聲如沸炼吴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽硅蹦。三九已至,卻和暖如春闷煤,著一層夾襖步出監(jiān)牢的瞬間童芹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工曹傀, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留辐脖,地道東北人。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓皆愉,卻偏偏與公主長得像嗜价,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子幕庐,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理久锥,服務(wù)發(fā)現(xiàn),斷路器异剥,智...
    卡卡羅2017閱讀 134,599評論 18 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,498評論 25 707
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫瑟由、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,022評論 4 62
  • 16.8.22 離婚以后告訴我的親朋好友冤寿,之后得到很多反饋歹苦。 大我五歲以上自己所有的父輩告訴我,婚姻沒有十全十美督怜,...
    輕情閱讀 204評論 0 1
  • 過年因生意需要号杠,從外面大城市調(diào)了幾個大學(xué)生兼職回來幫忙蚪腋。其中一個男生丰歌,還沒放假早早就打電話問候了餐廳幾位經(jīng)理,然后...
    我是松鼠醬閱讀 336評論 0 1