Dies ist der Code, um die auf Qiita veröffentlichten Artikel in einen Artikel und eine Datei zu exportieren und an Github zu senden. Ich hatte die Weisheit meiner Vorfahren und benutzte sie als Referenz. Als Referenz war Ich habe ein Python-Skript geschrieben, das alle meine Beiträge mit der Qiita-API v2 exportiert die Ausführungsumgebung Python 2.7. Also habe ich den Code ein wenig geändert, damit er mit 3.7.7 funktioniert, das ich verwende.
OS:macOS Python:3.7.7
# -*- coding: utf-8 -*-
import json
import os
import sys
import requests
import subprocess
def abort(msg):
print('Error!: {0}'.format(msg))
sys.exit(1)
def get(url, params, headers):
r = requests.get(url, params=params, proxies=proxies, headers=headers)
return r
def post(url, data_dict, headers_dict):
r = requests.post(url, data=json.dumps(data_dict),
proxies=proxies, headers=headers_dict)
return r
def print_response(r, title=''):
c = r.status_code
h = r.headers
print('{0} Response={1}, Detail={2}'.format(title, c, h))
def assert_response(r, title=''):
c = r.status_code
h = r.headers
if c<200 or c>299:
abort('{0} Response={1}, Detail={2}'.format(title, c, h))
class Article:
def __init__(self, d):
self._title = d['title']
self._html_body = d['rendered_body']
self._md_body = d['body']
self._tags = d['tags']
self._created_at = d['created_at']
self._updated_at = d['updated_at']
self._url = d['url']
user = d['user']
self._userid = user['id']
self._username = user['name']
def save_as_markdown(self):
title = self._title
body = self._md_body.encode('utf8')
filename = '{0}.md'.format(title)
fullpath = os.path.join(MYDIR, filename)
#Wechseln Sie in den Binärmodus
#Referenz) https://go-journey.club/archives/7113
with open(fullpath, 'wb') as f:
f.write(body)
#Geben Sie das Ziel für die Dateiausgabe an. Bitte geben Sie das Verzeichnis an, das Sie ausgeben möchten.
MYDIR = os.path.abspath("/Users/shin/github/Qiita")
proxies = {
"http": os.getenv('HTTP_PROXY'),
"https": os.getenv('HTTPS_PROXY'),
}
#Holen Sie sich Qiita Access Token
token = os.getenv('QIITA_ACCESS_TOKEN')
#Wenn in der Umgebungsvariablen nicht angegeben, setzen Sie Folgendes
# token = 'Zugangstoken'
headers = {
'content-type' : 'application/json',
'charset' : 'utf-8',
'Authorization' : 'Bearer {0}'.format(token)
}
#Liste der Beiträge authentifizierter Benutzer
url = 'https://qiita.com/api/v2/authenticated_user/items'
params = {
'page' : 1,
'per_page' : 100,
}
r = get(url, params, headers)
assert_response(r)
# print_response(r)
items = r.json()
print('{0} entries.'.format(len(items)))
for i,item in enumerate(items):
print('[{0}/{1}] saving...'.format(i+1, len(items)))
article = Article(item)
article.save_as_markdown()
#Schieben Sie zu Github
#Referenz) https://www.atmarkit.co.jp/ait/articles/2003/13/news031.html
subprocess.run(["cd", "/Users/shin/github/Qiita"])
#Hinzufügen von Aktualisierungsinhalten zum Index (zum Staging-Bereich hinzufügen) → Ziel festschreiben
subprocess.run(["git", "add", "-A"])
#In lokales Repository übertragen
subprocess.run(["git", "commit", "-a", "-m", "AutomaticUpdate"])
#Reflektieren Sie den Inhalt des lokalen Repositorys im Remote-Repository
subprocess.run(["git", "push", "origin", "master"])
Recommended Posts