杜叔叔原话
Telegraph的外部上传接口已被禁止,图床代替品有空再找吧
已上传的图片应该是没事的,尚不确定。
听一位代表说,会删除滥用接口上传的文件
拉下来blog数据库,直接就是
package main
import (
"database/sql"
"flag"
"fmt"
_ "github.com/mattn/go-sqlite3"
"io"
"log"
"os"
"strings"
)
func main() {
// 传参
var dbFile string
flag.StringVar(&dbFile, "f", "", "file path")
flag.Parse()
// 创建posts文件夹
err := mkdirPostsDirectory()
if err != nil {
return
}
fmt.Println("Database file:", dbFile)
db, err := sql.Open("sqlite3", dbFile)
if err != nil {
log.Fatal(err)
}
defer db.Close()
rows, err := db.Query("SELECT title,text FROM typecho_contents")
if err != nil {
log.Fatal(err)
}
defer rows.Close()
for rows.Next() {
var title, text string
err = rows.Scan(&title, &text)
if err != nil {
log.Fatal(err)
}
// 处理<!--markdown-->字符串
text = strings.Replace(text, "<!--markdown-->", "<!--markdown-->\n\r", -1)
// 数据写入文件
err := writeFile(title, text, 0666)
if err != nil {
return
}
}
}
func mkdirPostsDirectory() error {
if _, err := os.Stat("posts"); os.IsNotExist(err) {
err := os.Mkdir("posts", 0755)
if err != nil {
return err
}
}
return nil
}
func writeFile(filename string, data string, perm os.FileMode) error {
file, err := os.OpenFile("./posts/"+filename+".md", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, perm)
if err != nil {
return err
}
n, err := file.Write([]byte(data))
if err == nil && n < len(data) {
err = io.ErrShortWrite
}
if err1 := file.Close(); err1 != nil && err == nil {
err = err1
}
return err
}
把数据库文章全导出来了
项目已开源至is7Qin/typecho-sqlite-posts-export (github.com)
Usage:
.\typecho-sqlite-posts-export.exe -f .\llb.db
然后暂时还没好办法,好在文章不多,直接typora手动一篇篇用复制所有图片到
下到本地了先。