-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathget_qiita_myitem.py
64 lines (50 loc) · 1.8 KB
/
get_qiita_myitem.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
import requests
import json
import configparser
from datetime import datetime
def format_datetime(dt_str: str) -> str:
# 与えられた更新日時の文字列
original_date_str = dt_str
# datetimeオブジェクトに変換する
original_date = datetime.fromisoformat(original_date_str)
# 新しいフォーマットで日付を文字列に変換する
new_date_str = original_date.strftime("%Y-%m-%d %H:%M:%S")
return new_date_str # 出力例: 2024-06-24 01:11:52
def get_qiita_myitem(user_name: str) -> str:
"""
Qiitaから記事の一覧を取得する
Args:
user_name (str): Qiitaのアカウント名
Returns:
str: 指定されたQiitaの記事一覧
"""
config = configparser.ConfigParser()
config.read("config.cfg", 'UTF-8')
bearer_token = config['QIITA']['BEARER_TOKEN']
result = []
if user_name == "":
return json.dumps(result, indent=2, ensure_ascii=False)
url = "https://qiita.com/api/v2/items"
headers = {}
params = {
"query": f"user:{user_name}",
"per_page": 50,
"page": 1
}
if bearer_token:
headers["Authorization"] = f"Bearer {bearer_token}"
r = requests.get(url, headers=headers, params=params)
items = r.json()
for item in items:
if item['private'] == False:
page_data = {
'title': item['title'],
'id': item['id'],
'url': item['url'],
'likes_count': item['likes_count'],
'stocks_count': item['stocks_count'],
'page_views_count': item['page_views_count'],
'updated_at': format_datetime(item['updated_at'])
}
result.append(page_data)
return json.dumps(result, indent=2, ensure_ascii=False)