7
7
import logging
8
8
import random
9
9
10
+ import smtplib
11
+ from email .mime .text import MIMEText
12
+
13
+
10
14
logging .basicConfig (level = logging .INFO , format = '%(asctime)s - %(levelname)s - %(message)s' )
11
15
logger = logging .getLogger (__name__ )
12
16
15
19
TBS_URL = "http://tieba.baidu.com/dc/common/tbs"
16
20
SIGN_URL = "http://c.tieba.baidu.com/c/c/forum/sign"
17
21
22
+ # EMAIL
23
+ HOST = os .environ ['HOST' ]
24
+ FROM = os .environ ['FROM' ]
25
+ TO = os .environ ['TO' ].split ('#' )
26
+ AUTH = os .environ ['AUTH' ]
27
+
18
28
HEADERS = {
19
29
'Host' : 'tieba.baidu.com' ,
20
30
'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36' ,
@@ -167,6 +177,39 @@ def client_sign(bduss, tbs, fid, kw):
167
177
res = s .post (url = SIGN_URL , data = data , timeout = 5 ).json ()
168
178
return res
169
179
180
+ def send_email (sign_list ):
181
+ if HOST is None or FROM is None or TO is None or AUTH is None :
182
+ logger .info ("未配置邮箱" )
183
+ return
184
+ length = len (sign_list )
185
+ subject = f"{ time .strftime ('%Y-%m-%d' , time .localtime ())} 签到{ length } 个贴吧"
186
+ body = """
187
+ <style>
188
+ .child {
189
+ background-color: rgba(173, 216, 230, 0.19);
190
+ padding: 10px;
191
+ }
192
+
193
+ .child * {
194
+ margin: 5px;
195
+ }
196
+ </style>
197
+ """
198
+ for i in sign_list :
199
+ body += f"""
200
+ <div class="child">
201
+ <div class="name"> 贴吧名称: { i ['name' ] } </div>
202
+ <div class="slogan"> 贴吧简介: { i ['slogan' ] } </div>
203
+ </div>
204
+ <hr>
205
+ """
206
+ msg = MIMEText (body , 'html' , 'utf-8' )
207
+ msg ['subject' ] = subject
208
+ smtp = smtplib .SMTP ()
209
+ smtp .connect (HOST )
210
+ smtp .login (FROM , AUTH )
211
+ smtp .sendmail (FROM , TO , msg .as_string ())
212
+ smtp .quit ()
170
213
171
214
def main ():
172
215
b = os .environ ['BDUSS' ].split ('#' )
@@ -181,6 +224,7 @@ def main():
181
224
time .sleep (random .randint (1 ,5 ))
182
225
client_sign (i , tbs , j ["id" ], j ["name" ])
183
226
logger .info ("完成第" + str (n ) + "个用户签到" )
227
+ send_email (favorites )
184
228
logger .info ("所有用户签到结束" )
185
229
186
230
0 commit comments