如何用Python和Google「自動化」我的婚禮?

2021-02-14 大數據文摘

Kuma & 米雪兒編譯

按要求轉載自FreeBuf.COM

2016年9月3日,對世界上的大多數人而言可能只是尋常無奇的一天,但對我而言,將永生難忘,因為在那一天我和我的愛人結婚了。

在規劃婚禮時,要考慮許多不同的方面。食物、裝飾、桌子裝置(是的,這是獨立於裝飾的一個重要環節)、鮮花、住宿、交通、娛樂和位置選擇等。雖然在規劃婚禮時有許多未知數,但是我可以肯定一件事。在婚禮中,將會有很多的邀請名單、嵌套名單、以及其他更多相關名單等等。當我面對著越來越多的項目時,我開始懷疑是否有更好的方法來進行處理?如果一切都只是依賴手動,實在是太低效了,必須利用一些技術來進行改進。

你可能會感到驚訝,但是邀請人們參加婚禮是昂貴的(超過380磅),因為你需要發送「按時出席」卡片以及隨後的關於婚禮細節的邀請。這個過程也是很慢的,因為你必須通過郵寄的方式來進行發送。追蹤人們是否已經收到了邀請,以及他們是否想要參加提供免費食物和飲料的派對。最後,邀請卡也並不環保,因為它們都是被一次性使用,且容易丟失或放錯。

回到名單問題。嘉賓名單分為幾個部分:

1、你想要邀請的人的名單;

2、已經回覆你的R.S.V.P邀請函的人的名單;

3、已經回覆你會來的人的名單;

4、已經回覆你會來且選擇參加提供免費食物和飲料派對的人的名單;

註:R.S.V.P. 是法語短語「répondez,s』il vous pla?t」的縮寫,英文意思大概等於Will youplease reply 漢語翻譯成請儘快回答或請馬上回答。「R.S.V.P.」的作用就是在於禮貌地提醒人們一個他們應該早就知道的道理:如果您收到請柬,就應該回復。

名單是好的,它們具有預定義的要求和響應,這使其成為自動化的重要選擇。

不管處於何種年齡層,我確信婚禮名單上每個人都有手機,這意味著該是Twilio(一個做成開放插件的電話跟蹤服務)發揮作用的時候了。如果你想要查看代碼信息,你可以看看GitHub上的repo。

SMS完美的滿足了我的需求。我可以配置發出群發簡訊,並快速有效地處理回應。在繪製一個MVP並且考慮資料庫的時候,我想要一些易於分享的東西,不想浪費時間來構建視圖。偶然發現的gspread python庫,使我能夠讀寫谷歌電子表格。雖然不是最快的選擇,但它確實足夠靈活,並提供了一個易於訪問和可讀的輸出。

對於初始的R.S.V.P,我創建了一個包含以下信息的電子表格:

Name(名字);

Telephone_number(電話號碼);

Confirmation_status(確認狀態);

Contact detail status(聯繫的具體狀態)

Message_count (發送給客人的郵件數量,稍後會派上用場)

主要數據輸入完成後,我使用gspread來遍歷列表,並向每一個具有與之相關聯的手機號碼的客人發送簡訊:Sheets.py


因為簡訊可以看起來很簡單,所以我添加了一些unicode來增加趣味。下面是幸運的受邀者接收到的簡訊模版:

接下來,我使用Flask作為我的web伺服器,並將我的Twilio消息請求URL指向/messages url並創建簡單的if語句來解析回復 (yes,,no):hello_guest.py

第一條消息是在2月19日上午8:37的時候發出的,3分鐘後(即上午8:40)收到了第一條確認簡訊。上午9:38,我已經收到了23條確認回復,已經達到32%的接受率!初始群發簡訊兩天後,我們收到了58%的客人的確認信息!儘管取得了明顯的成功,但我的未婚妻並不完全青睞我作為婚禮邀請服務(SAAWIS?)的簡訊,所以,我決定在我的應用程式中添加一些其他功能。

這個功能就是統計!我可以計算現場出席名單並按要求退回,給予新娘關於客戶名單是如何塑造的即時反饋。代碼很簡單,因為我已經在電子表格中設置了一些基本的計數器,因此剩下的只是抓取這些單元格的內容,並將其添加到簡訊中的事情:hello_guest.py

以下是最終的簡訊,不是很漂亮,但很有用:

現在Lauren可以即時跟蹤出席率的情況,這大大緩解了她的壓力。從那時起,所有的事情都通過系統來運作,SMS被儘可能多的融入到婚禮的方方面面。有些是顯而易見的,例如當婚禮網站上線時,發送通知簡訊,分享禮物列表以及其他我至今仍然感到驕傲的事情。

在建立R.S.V.P名單之後,經常被推遲的部分是讓客人確認他們的食物選擇。你可能會驚訝,讓人們選擇免費的食物是能有多困難。第一步是發送另一條簡訊,告訴那些確認參加婚禮的客人訪問網站,並通過一個谷歌表單選擇他們喜歡的食物。相當標準的流程,然而,表單被設置為填充與參與者相同的工作簿。這意味著,我現在已經有接受邀請客人的電子表格,以及那些填寫了食物選擇表格的客人名單。通常我會等待客人慢慢選擇他們的飯菜,但因為我的婚禮是由Twilio驅動的,也就意味著我可以用最少的努力來跟蹤嘉賓狀態。

數據需要匹配訪客名稱上的兩個電子表格,並且在有匹配的時候更新客人的食物選擇狀態。這需要一些額外的工作,但一旦重排代碼,我就可以按需批量運行腳本,並通過簡訊獲取我的客人的最新狀態:food.py

現在有一個確認的客人名單和越來越多的食物選擇名單,通過主要應用程式將這些統計數據公開是有意義的。所有需要做的就是抓取相關單元格的內容,並用簡訊回復:Hello_guest.py

讓婚禮餐飲者了解我們的進展,並提供有關誰沒有選擇的可操作數據是非常方便的。追蹤客人是另一個自動化選擇。簡單地遍歷參加者名單,找到沒有選擇用餐選項的頑皮客人,並向其發送信息!Chase.py 

大婚的日子來得比我們想像的還要快。現在唯一需要做的事就是發送最後一條簡訊,提醒客人基本的細節,並提醒他們帶把傘以防碰上一般的英國夏季的雨季:

婚禮永遠不是一件簡單的事情,它會讓你感到很多事情都不在你掌控之中。自動化讓我的生活變得更加輕鬆,它可以提供與我們的客人進行溝通的直接渠道,而且我通過各種不同的方式來跟蹤、推動以及回應客人。它幫助我們在婚禮的時間消耗方面變得積極主動,讓我們可以空出來時間去關注大日子的其他重要領域。

構建複雜問題的可擴展解決方案從來都不是件容易的事,即使在最終形式下,我的應用程式有時也會很脆弱。我已經計劃建立一個更為完整的解決方案,具有進度的數據可視化、語音集成,以及更少的依賴CLI腳本等。總的來說,我很滿意整個自動化的過程,沒有通訊系統是完美的。你需要實施最適合你的受眾的渠道,無論是簡訊、語音、聊天、視頻還是信號量等。

來源:http://www.freebuf.com/geek/132296.html

大數據福爾摩斯:偵破魔都共享單車被違章藏進了哪些小區


相關焦點

  • 婚禮小記:用Twilio,Python和Google打造我的自動化婚禮
    然後你需要隨時查看人們是否收到了請柬以及是否能夠來參加婚禮,這個可以用自動化的過程來實現,不是嗎?最後,邀請函通常是一次性的而且很容易丟失和放錯地方,而這些都是非常不環保的。回到列表的話題上,我要收集的列表內容一般分成下面幾個部分:你想要邀請人的名單回覆你請柬人的名單能夠確定參加婚禮的人的名單確定參加婚禮的人選擇的食物列表有個匯總的列表總是好的,因為列表實際上是預先定義好的要求和格式,這樣很有助於自動化完成它們。
  • Python接口測試實戰丨如何實現特殊字符集的自動化測試?
    在當前網際網路產品更新迭代的快節奏下,回歸測試的時間被嚴重壓縮,在金融領域和其他網際網路應用場景下,支付、轉帳、清算往往是核心功能,為了確保資金安全和快速到帳,接口在對用戶名、帳戶名中的特殊字符的正確處理顯得尤為重要。
  • Selenium2+python自動化45-18種定位方法(find_elements)
    (self, xpath)16.css複數定位find_elements_by_css_selector(self, css_selector這兩種就是快失傳了的find_element(self, by='id', value=None)find_elements(self, by='id', value=None)二、element和elements
  • 揭 秘 | 用Python寫了自動化交易程序,2年躺著賺了200萬?!
    一位匿名知乎網友爆料用Python寫了自動化交易程序,2年躺著賺了200萬,相當於普通程式設計師10年的工資……「除了不會生孩子,什麼都會」的Python,不僅能躺著賺錢,衝擊百萬年薪不是夢。為了學以致用,真正能應用於項目開發或產品開發,我們還必須學習企業應用開發中必須要掌握的網絡和資料庫的知識。在此的學習就不光是python語言本身的學習了,如果之前沒有學習和掌握很網絡和資料庫知識,在此階段我們可以藉此機會補習一把。3周——到此階段,我們已經是真正入門了。
  • 如何用PYTHON代碼寫出音樂
    我一直在做這樣的嘗試,就是通過人工智慧算法實現機器自動的作詞和編曲(在這裡預告下,通過深度學習寫歌詞已經實現了,之後會分享給大家),本文我們主要聊下如何寫曲。說到用代碼寫曲子,有一個東西大家一定要了解就是MIDI。MIDI是一種樂器數字接口,是編曲界最廣泛的音樂標準格式。MIDI並不是真正意義上的音樂文件,大家可以把它理解成樂譜,需要有環境編譯MIDI文件,才可以生成音樂。
  • 利用Python開發App實戰
    最近想到嘗試用python開發一款app,google搜索了一番後,發現確實有路可尋,目前也有了一些相對成熟的模塊,於是便開始了動手實戰,過程中發現這其中有很多坑,好在最終依靠google解決了,因此小記一番。
  • 初學者如何用「python爬蟲」技術抓取網頁數據?
    在當今社會,網際網路上充斥著許多有用的數據。我們只需要耐心觀察並添加一些技術手段即可獲得大量有價值的數據。而這裡的「技術手段」就是指網絡爬蟲。 今天,小編將與您分享一個爬蟲的基本知識和入門教程:什麼是爬蟲?網絡爬蟲,也叫作網絡數據採集,是指通過編程從Web伺服器請求數據(HTML表單),然後解析HTML以提取所需的數據。
  • 用Python開源機器人和5美元,我在Instagram上搞到了2500個真粉兒
    前不久,我開始同時學習python和Selenium WebDriver(自動化測試工具軟體),想看看我能否在Instagram上獲得一些粉絲,我驚訝的發現我的第一個試運行的腳本程序竟然很有效! 只是通過對一些圖片增加標籤,我就得到了一些點zan、評論和甚至不少粉絲,而且粉絲的數量上升的非常快。
  • 深圳Python培訓班打造行業高標準Python人才
    Python火的原因1、python相比別的高級語言集成度更高,除了執行的效率低些,開源可以調用的類庫實在太多了,要實現一個功能,如果換作傳統的程式語言,需要實現基本的功能模塊,但直接調用類庫很方便的搞定,特別適合零基礎的學習, 幾行代碼就能實現很強大的功能。
  • 今天教你如何用 Python 搶票
    每到年末,票就變得特別難搞,今年因為疫情管控可能要比往年好一點,但依舊不好搶,,,對於路途相對較遠的小夥伴,一旦錯過了最佳放票時機,之後搶到票的的可能性很小,因為跟你一起競爭搶票的大部分都不是人而是自動化程序,在一秒之內就能完成購票下單的那種(當然,也是在有票的前提下)今天呢,給大家介紹一個 12306搶票 相關的開源項目,並手把手教大家把程序跑起來,希望我們大家都能搶到回家的票
  • 人生苦短,我用Python
    我看麻省理工授課教授讀的是『拍賞』,我覺得國內大多是讀『拍森』吧。2017年python排第一也無可爭議,比較AI第一語言,在當下人工智慧大數據大火的情況下,python無愧第一語言的稱號,至於C、C++、java都是萬年的老大哥了,在代碼量比較方面,小編相信java肯定是完爆其它語言的。
  • 如何用python製作動態二維碼,來哄女朋友開心?
    大家好,我是朱小五教你如何用python製作動態二維碼,來哄女朋友開心?2、安裝MyQR庫直接用需要注意的是MyQR依賴於python3,在python2的環境下可能無法正常運行。adpop=1', #輸入連結或者句子作為參數,掃描二維碼後顯示 version=5, #控制邊長,範圍是1到40,數字越大邊長越大,默認邊長是取決於你輸入的信息的長度和使用的糾錯等級。
  • Pytest丨如何使用全功能的Python測試框架?小白必看
    關注我,每周分享軟體測試技術乾貨、面試經驗,想要進入軟體測試學習交流群的可以直接私信我哦~~我們在寫自動化的過程中,用例的斷言也是至關重要的,斷言可以幫助我們判斷用例測試點是否成功和失敗。當然在我們這麼強大的pytest框架中,斷言也是比較強大的。為什麼?繼續往下看。
  • 10行Python代碼教你免費觀看無廣告版的《慶餘年》騰訊視頻
    哈嘍大家好,我是鵬哥。今天想秀下Python強大的主題是 —— 用10行代碼搞定各類app的廣告。本來這周是要發個關於如何用python打造屬於自己的iphone快捷方式的,結果因為本周一直沉迷在《慶餘年》中不能自拔,所以下周吧!
  • 如何用 Python 寫一個安卓 APP ?
    22點24分準時推送,第一時間送達  編輯:技術君 | 來源:youerning  上一篇:  正文  前言  用 Python 寫安卓 APP 肯定不是最好的選擇,目前用Java和 kotlin
  • 如何在Visual Studio開發工具安裝python庫
    那麼,在Visual Studio開發工具中,如何安裝python第三方庫呢?下面利用實例說明:操作步驟:1、打開Visual Studio 2019開發工具,創建python項目添加新建項,然後選擇空python文件3、點擊工具菜單,然後選擇python,接著是python環境
  • python + wxpy, 和你聊天的可能是我的機器人小表弟
    之前看到一篇有關於python的文章是寫自動給女友每天晚上說晚安,就是在python裡用WXPY包連接微信,然後登陸(還是要你用手機掃描二維碼,
  • 如何在Mac上安裝更新的Python 3.6.x
    本文將討論如何通過覆蓋兩種不同的方法在Mac上快速輕鬆地安裝Python 3,從而在Mac上獲得更新的Python 3安裝。一、如何在Mac OS中安裝更新的Python 3也許最簡單的安裝Python 3的方法是使用python.org中的Python包安裝程序。
  • 如何訪問google申請Google帳號的方法
    對於google公司來說,google帳號(用戶或帳戶)和gmail郵箱(帳號)都是同一個概念,可以通用使用google郵箱的格式來登錄使用。鑑於目前網際網路中google的強勢,很多人目前還沒有使用過google的帳號,並且google在市面上很多產品,都要求有google帳號來方便管理,下面就來介紹一下如何申請google帳號先找到一個能切換IP位址的工具,進入官網下載好壓縮包客戶端之後解壓到桌面上,雙擊裡面的exe圖標輸入已經註冊好的用戶名和密碼,點登陸進入軟體界面,選擇節點,點啟動加速
  • Python到底是個啥?為什麼這麼多人都要學?
    Hello,大家好,我是橘子呀~從今天開始跟大家一起學習Python,之後會不定期更新Python的相關文章。言歸正傳,今天我想跟大家分享一下python是什麼以及學習python對你有什麼幫助。一定要耐心看完喲~ 或許對現在的你有一定的啟發。