python读取wp sqlite转为rst

Talk is cheap, show the code.

#!/usr/bin/python

import sqlite3

def writeFile(row):
    fp = open("D:/project/code/202406/faint/content/posts/p{}.rst".format(row[0]),"w",encoding="UTF-8")
    fp.write("==================================================================================================\n")
    fp.write("{}\n".format(row[1]))
    fp.write("==================================================================================================\n\n")
    fp.write(":author: malic\n")
    fp.write(":date: {}\n".format(row[2]))
    fp.write(":slug: p{}\n".format(row[0]))
    fp.write(":category: All\n")
    fp.write(":tags: {}\n".format(row[4]))
    fp.write(":summary: ...\n\n")
    fp.write(".. raw:: html\n\n")
    ctx = row[5].split("\n")
    for line in ctx:
        fp.write("\t{}\n".format(line))
    fp.close()

conn = sqlite3.connect(r'D:\archive\server\wordpress_playground\wp-content\database\.ht.sqlite')
c = conn.cursor()
cursor = c.execute("""
SELECT
    wp_posts.ID as post_id --0
    , wp_posts.post_title as title --1
    , wp_posts.post_date_gmt as date --2
    , wp_posts.post_name as slug --3
    , group_concat(wp_terms1.name) AS post_tag --4
    , wp_posts.post_content as html  --5
FROM
    wp_posts
    LEFT JOIN wp_term_relationships
        ON wp_posts.ID = wp_term_relationships.object_id
    left JOIN wp_term_taxonomy
        ON wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id
    LEFT JOIN wp_terms wp_terms1
        ON wp_term_taxonomy.term_id = wp_terms1.term_id
    -- AND wp_term_taxonomy.taxonomy = 'category'
where
    wp_posts.post_type = 'post'
    AND wp_posts.post_status = 'publish'
GROUP BY
    ID
""")

for row in cursor:
    writeFile(row)

conn.close()

Written by malic in All on 日 09 6月 2024.