怪不得這位程式設計師有女朋友,原來是因為這個!
一、緣起
前幾天
女票 -> 女同學甩給我上面那張圖,
PS:如有需要Python學習資料的小夥伴可以加點選下方連結自行獲取
說她也想每天都能收到甜甜的彩虹屁。
好傢伙,
我一尋思這不就是個彩虹屁 bot 嘛,
自欺欺人地說?
但既然她開口了,
那我們必須得給她整到位,
走起 :rocket:
二、準備工作
考慮到她最近在準備 考研 ,需要有人每天鼓勵她,所以我打算給她每天來點毒雞湯,然後做個考研倒數計時的提示,再查詢一下當天的天氣,提醒她天冷加衣,小心著涼感冒(想到這裡我都有被感動到), 暖暖的 bot,很貼心 ,哈哈哈。
先從網上整了個天氣查詢介面: http://wthrcdn.etouch.cn/weather_mini?city=
OK ,現在天氣有了,冷暖也知道了,下面再整個彩虹屁介面:
https://chp.shadiao.app/api.php (感謝 shadiao.app | 2333.jpg)
然後再友情贈送一個毒雞湯介面: https://www.iowen.cn/jitang/api/
OK,萬事俱備,程式碼整起:sunglasses:
三、人生苦短,我用 Python
沒時間解釋了,快上車 :car:
# coding=utf-8 import io import sys import time import datetime import requests from email.mime.text import MIMEText from email.header import Header import smtplib import logging logger = logging.getLogger() logger.setLevel(logging.INFO) mail_host = "smtp.163.com" mail_user = "xxxxxxx@163.com" #此處填你的郵箱 mail_girl = "xxxxxxx@qq.com" #你女票的郵箱 mail_pass = "xxxxxxx" #郵箱密碼 name_girl = "xxx" #你女票的名字 mail_port = 465 sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf8') def getWeather(): r = requests.get( 'http://wthrcdn.etouch.cn/weather_mini?city=%E6%9B%B2%E9%98%9C') if 'OK' in r.text: r = r.json()['data'] tip = r['ganmao'] temperature = r['wendu'] weather = r['forecast'][0]['type'] return f'天氣:{weather} 當前溫度:{temperature}\n{tip}' return '獲取天氣失敗:(' def getTime(): today = datetime.datetime.now()+datetime.timedelta(hours=+8) date2 = time.strptime('2020-12-25', "%Y-%m-%d") date2 = datetime.datetime(date2[0], date2[1], date2[2]) t = today.timetuple() days = (date2-today).days return f'今天是{t.tm_year}年{t.tm_mon}月{t.tm_mday}日 星期{t.tm_wday+1} 考研倒數計時:{days}天' def getSoup(): r = requests.get('https://www.iowen.cn/jitang/api/') if '資料獲取成功' in r.text: return r.json()['data']['content']['content'] return '高考在昨天,考研在明天,今天沒有什麼事兒。' def getPi(): r = requests.get('https://chp.shadiao.app/api.php').text return r if len(r) > 3 else '你上輩子一定是碳酸飲料吧,為什麼我一看到你就開心的冒泡' def morning(): return '\n'.join([getTime(), getSoup(), getWeather(), getPi()]) def night(): return '\n'.join([getSoup(), getPi(), f'晚安,{name_girl}同學,今天你也是最棒的,繼續加油鴨!']) def getTimeX(): t = int(time.strftime("%H", time.localtime()))+8 if t > 24: t = t-24 return 'morning' if t < 11 else ('noon' if t < 17 else 'afterNoon') def main_handler(event, context): smtpObj = smtplib.SMTP_SSL(mail_host, mail_port) try: smtpObj.login(mail_user, mail_pass) except smtplib.SMTPException as e: logger.info(e) return False content = night() if getTimeX() == 'afterNoon' else morning() message = MIMEText(content, 'plain', 'utf-8') message['From'] = mail_user message['To'] = mail_girl message['Subject'] = f'早安,{name_girl}' if getTimeX() != 'afterNoon' else '晚安,xxx' try: smtpObj.sendmail(mail_user, [mail_girl], message.as_string()) logger.info("send email success") except smtplib.SMTPException as e: logger.info(e) logger.info("Error: send email fail") logger.info(content) return content
四、Serverless 助你一臂之力
整完上面那些差不多兩分鐘就過去了,別擔心,剩下一分鐘交給騰訊雲函式足矣 :coffee:
Step 1:註冊登入騰訊雲(https://cloud.tencent.com/)
Step 2:開啟騰訊雲控制檯(https://console.cloud.tencent.com/)
Step 3:開啟雲函式選單,依次選擇函式服務->地區(隨便選個)->新建
Step 4:新建 Python 雲函式,環境 python3.6,選擇空白函式模板,下一步
Step 5:把前面改好的Python函式複製貼上到index.py(覆蓋原有程式碼),完成
Step 6:最後一步,新增定時觸發器
開啟剛才新建的 bot 雲函式,選擇觸發管理,新建觸發器,選擇定時觸發,自定義觸發週期:0 30 6 * * * * ,即每天早上6點30分(北京時間)自動觸發執行一次當前函式,以達到每天定時傳送“彩虹屁”給女票的目的 :grinning:
這裡我早晚各加了一個定時觸發器,每天對女票不止早午晚安哦:stuck_out_tongue_winking_eye:
PS:騰訊雲函式每月有免費的 100 萬呼叫次數+ 40萬GB·s 資源使用量哦,超級良心有木有,感動~
五、來吧,展示
早安
晚安
六、總結
以上,我們簡單實現了
一個可鹽可甜的彩虹屁 bot,
再也不用擔心忘記跟女票 早午晚安 了,
哈哈哈哈哈哈哈哈哈哈哈嗝~
相關文章
- 程式設計師工資為什麼普遍很高,原來是因為這個...程式設計師
- 從本質上來分析程式設計師為什麼要加班,原來是這個道理程式設計師
- 我是因為什麼原因走向程式設計師這個行業?--十年系列程式設計師行業
- 程式設計入門,這763位老程式設計師有話講!程式設計師
- 程式設計師為爭大廠職位“頭破血流”,除了薪資還因為這些程式設計師
- 有Java基礎的程式設計師,是如何看待Python這位少女的?Java程式設計師Python
- 好傢伙,我直接好傢伙!原來吳承恩這廝是個程式設計師?程式設計師
- 程式設計師到底有沒有女朋友?程式設計師
- 優秀的程式設計師,原來是這個樣子,還是做python的魅力大(笑S你)程式設計師Python
- 生產環境頻繁記憶體溢位,原來就是因為這個“String類”記憶體溢位
- 有點東西,template可以直接使用setup語法糖中的變數原來是因為這個變數
- 女程式設計師、女設計師、女運營……原來女生也能活成這樣!程式設計師
- FMEA做不出來?其實是因為這些
- 程式設計師被女朋友拉黑之後...這是我見過最“科學”的方法程式設計師
- 你為什麼選擇程式設計師這個職業?程式設計師
- 關於程式設計師這個職業程式設計師
- 程式設計師擺攤!這大概是最有“錢”途的攤位了程式設計師
- 終於搞懂了!原來vue3中template使用ref無需.value是因為這個Vue
- 程式設計師你為什麼這麼累?程式設計師
- 還不知道這個原則的程式設計師,要小心了程式設計師
- 誰說程式設計師找不到女朋友,程式設計師明明那麼有市場!程式設計師
- 這些程式設計師到底有多搶手?真相在這裡…程式設計師
- 女程式設計師是這樣被惡搞的程式設計師
- 這是一個月薪 12000 的北京程式設計師的真實生活程式設計師
- 這十五本Python書籍!是每個程式設計師必備的!Python程式設計師
- 程式設計師是怎樣把女朋友聊沒的?程式設計師
- 程式設計師跟產品經理打起來了,這是一個需求引發的血案...程式設計師
- 程式設計師轉AI工程師很難嗎?這6個技術是關鍵程式設計師AI工程師
- 因為你這個人,我選擇了這個公司
- 記錄--終於搞懂了!原來vue3中template使用ref無需.value是因為這個Vue
- @程式設計師:GitHub這個專案快薅羊毛程式設計師Github
- 從web前端到全棧,這類程式設計師為何這麼吃香?Web前端全棧程式設計師
- LogBack 日誌等級設定無效,原因竟然是因為這個?!
- 程式設計師為什麼討厭這些語言程式設計師
- 有點兒神奇,原來vue3的setup語法糖中元件無需註冊因為這個Vue元件
- 定了!剛面完AI崗位,這些題全都考了!程式設計師:有黑幕!AI程式設計師
- 程式設計師為何如此受人追捧?是什麼在推動這個行業的發展程式設計師行業
- 方便又易懂,風變程式設計原來這樣上課!程式設計