-
Notifications
You must be signed in to change notification settings - Fork 5
/
to_p.py
91 lines (81 loc) · 2.8 KB
/
to_p.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
import requests
import json
import pathlib
import sys
def read_file(fname):
with open(fname) as f:
contents = f.read()
return contents
access_token = "g"+"hp_djsCiXH8lEL4HBOD1R7yS"+"DiJoZDPI31fdtRw"
blog_name = "涵曦 ~ 博客"
github_username = "hanxi"
github_repo = "blog"
headers_dict = {
"Authorization": "token " + access_token
}
def renderMarkdown(text):
post = {
"text": text,
"mode": "gfm",
}
url = "https://api.github.com/markdown"
r = requests.post(url, data = json.dumps(post), headers=headers_dict)
return r.text
page_templ = read_file('page.html')
def get_data(page_id):
url = "https://api.github.com/repos/%s/%s/issues/%d" % (github_username, github_repo, page_id)
r = requests.get(url, headers=headers_dict)
data = json.loads(r.text)
if "title" not in data:
return False,False
title = data["title"]
content = renderMarkdown(data["body"])
return title,content
def to_page(page_id, title, content):
comment_url = "https://github.com/%s/%s/issues/%d#new_comment_field" %(github_username, github_repo, page_id)
comment = '<a href="%s"> 点击进入评论 ... </a>' % comment_url
page_html = page_templ.format(
blog_name = blog_name,
title = title,
content = content,
comment = comment)
return page_html
def save_file(fname, content):
with open(fname, 'wb') as f:
f.write(content.encode("UTF-8"))
templ = read_file('sitetempl.html')
def sitemaphtml_format(sitemaphtml_arr):
arr = []
for info in sitemaphtml_arr:
title = info[0]
url = info[1]
arr.append('<li class="pagelist"><a href="%s">%s</a></li>' % (url, title))
postlist = "\n".join(arr)
html = templ.format(blog_name = blog_name, postlist = postlist)
return html
def generate(cnt):
sitemap = []
sitemaphtml_arr = []
for page_id in range(1,cnt):
print("Try generate page:", page_id)
fname = "p/%s/index.html" % page_id
url = "https://blog.hanxi.cc/p/%s/" % page_id
title, content = get_data(page_id)
if not title:
print("Page not exist:", page_id)
break
page_html = to_page(page_id, title, content)
sitemap.append(url)
sitemaphtml_arr.append([title,url])
fpath = "p/%s" % page_id
pathlib.Path(fpath).mkdir(parents=True, exist_ok=True)
save_file(fname, page_html)
print("Generate Ok. fname:", fname)
save_file("sitemap.txt", "\n".join(sitemap))
sitemaphtml_arr.reverse()
sitemaphtml = sitemaphtml_format(sitemaphtml_arr)
save_file("sitemap.html", sitemaphtml)
requests.get("http://www.google.com/ping?sitemap=https://blog.hanxi.cc/sitemap.txt")
if __name__=="__main__":
argc = len(sys.argv)
generate(200)