29
29
}
30
30
31
31
API = {
32
- 'events' : 'https://api.github.com/users/{username}/received_events/public ' .format (username = ACCOUNT ['username' ])
32
+ 'events' : 'https://api.github.com/users/{username}/received_events' .format (username = ACCOUNT ['username' ])
33
33
}
34
34
35
35
# 发送邮件,邮箱的信息
48
48
DAY = 1
49
49
50
50
# 项目stars临界值
51
- STARS = 200
51
+ STARS = 100
52
52
53
53
# qq邮件服务文档:http://service.mail.qq.com/cgi-bin/help?id=28
54
54
59
59
<th>头像</th>
60
60
<th>用户名</th>
61
61
<th>项目名</th>
62
- <th>starred日期 </th>
63
- <th>项目star数量 </th>
62
+ <th>starred 日期 </th>
63
+ <th>项目 star 数量 </th>
64
64
</tr>
65
65
{project_info_string}
66
66
</table>
67
67
"""
68
68
69
69
70
- def get_data (page = 1 , per_page = 100 ):
70
+ def get_data (page = 1 ):
71
71
"""
72
72
从目标源获取数据
73
+ https://developer.github.com/v3/activity/events/
74
+ GitHub 规定:默认每页 30 条,最多 300 条目
73
75
"""
74
76
75
- args = '?page={page}&per_page={per_page}' .format (
76
- page = page , per_page = per_page )
77
+ args = '?page={page}' .format (page = page )
77
78
78
79
response = requests .get (API ['events' ]+ args ,
79
80
auth = (ACCOUNT ['username' ], ACCOUNT ['password' ]))
@@ -82,8 +83,22 @@ def get_data(page=1, per_page=100):
82
83
resp_json = response .json ()
83
84
return resp_json
84
85
else :
85
- logging .error ('请求api失败:' , status_code )
86
- return None
86
+ logging .error ('请求 event api 失败:' , status_code )
87
+ return []
88
+
89
+
90
+ def get_all_data ():
91
+ """
92
+ 获取全部 300 条的数据
93
+ https://developer.github.com/v3/activity/events/
94
+ GitHub 规定:默认每页 30 条,最多 300 条目
95
+ """
96
+ all_data_list = []
97
+ for i in range (10 ):
98
+ response_json = get_data (i + 1 )
99
+ if response_json :
100
+ all_data_list .extend (response_json )
101
+ return all_data_list
87
102
88
103
89
104
def check_condition (data ):
@@ -151,7 +166,7 @@ def make_content():
151
166
"""
152
167
生成发布邮件的内容
153
168
"""
154
- json_data = get_data ()
169
+ json_data = get_all_data ()
155
170
data = analyze (json_data )
156
171
content = []
157
172
project_info_list = get_stars (data )
@@ -180,10 +195,10 @@ def send_email(receivers, email_content):
180
195
CONTENT_FORMAT .format (project_info_string = '' .join (email_content )),
181
196
'html' , 'utf-8'
182
197
)
183
- message ['From' ] = Header (u'Github机器人 ' , 'utf-8' )
198
+ message ['From' ] = Header (u'GitHub 机器人 ' , 'utf-8' )
184
199
message ['To' ] = Header (u'削微寒' , 'utf-8' )
185
200
186
- subject = u'今日Github热点 ' # 设置邮件主题
201
+ subject = u'今日 GitHub 热点 ' # 设置邮件主题
187
202
message ['Subject' ] = Header (subject , 'utf-8' )
188
203
try :
189
204
smtp_obj = smtplib .SMTP_SSL () # qq邮箱要求是https连接,所以需要用SMTP_SSL
0 commit comments