讓花成花 讓我成我

我的Telegraph图床被扬了

杜叔叔原话
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手动一篇篇用复制所有图片到下到本地了先。

我的Telegraph图床被扬了

https://llb.im/posts/30.html

作者

Qin

发布时间

2024-09-06

许可协议

CC BY 4.0

添加新评论