用於基本社區管理任務自動化的 5 個 Python 腳本

如果某些事情不得不重複做三遍,嘗試使其自動化。

我 之前寫過關於社區管理員的工作,如果你問 10 位社區管理員,你會得到 12 個不同的答案。不過,大多數情況下,你做的是社區需要你在任何特定時刻做的事情。而且很多事情可能是重複的。

當我還是系統管理員時,我遵循一個規則:如果某些事必須做三遍,我會嘗試使其自動化。當然,如今,使用諸如 Ansible 這樣的強大工具,就有了一整套科學的方法。

我每天或每週要做的一些事情涉及在一些地方查找內容,然後生成信息的摘要或報告,然後發佈到別處。這樣的任務是自動化的理想選擇。這些並不是什麼 難事,當我與同事共享其中一些腳本時,總是至少有一個能證明這是有用的。

在 GitHub 上,我有幾個每週都要使用的腳本。它們都不是很複雜,但每次都爲我節省幾分鐘。其中一些是用 Perl 寫的,因爲我快 50 歲了(這些是我早些年寫的)。有些是用 Python 寫的,因爲幾年前,我決定要學習 Python。

以下是概述:

tshirts.py

這個簡單的 tshirts.py 腳本會根據你要定製的活動 T 恤的數量,然後告訴你尺寸分佈是什麼。它將這些尺寸分佈在一條正態曲線(也稱爲 “鐘形曲線”)上,以我的經驗,這和一個正常的會議觀衆的實際需求非常吻合。如果在美國使用,則可能需要將腳本中的值調整的稍大一些;如果在歐洲使用,則可能需要將腳本中的值稍稍縮小一些。你的情況也許不同。

用法:

[rbowen@sasha:community-tools/scripts]$ ./tshirts.py                                                                                                                                                          
How many shirts? 300
For a total of 300 shirts, order:

30.0 small
72.0 medium
96.0 large
72.0 xl
30.0 2xl

followers.py

followers.py 腳本爲我提供了我關心的 Twitter 賬號的關注者數量。

該腳本只有 14 行,沒什麼複雜的,但是它可能節省我十分鐘的加載網頁和查找數字的時間。

你需要編輯 feed 數組以添加你關心的帳戶:

feeds = [
        'centosproject',
        'centos'
        ];

注意:如果你在英語國家以外的地方運行它,則可能無法正常工作,因爲它只是一個簡單的屏幕抓取腳本,它讀取 HTML 並查找其中包含的特定信息。因此,當輸出使用其他語言時,正則表達式可能不匹配。

用法:

[rbowen@sasha:community-tools/scripts]$ ./followers.py                                                                                                                                                                          
centosproject: 11,479 Followers
centos: 18,155 Followers

get_meetups

get_meetups 腳本S 另一種類別的腳本 —— API腳本。這個特定的腳本使用 meetup.com 網站的 API 來尋找在特定區域和時間範圍內特定主題的聚會,以便我可以將它報告給我的社區。你所依賴的許多服務都提供了 API,因此你的腳本可以查找信息,而無需手動查找網頁。學習如何使用這些 API 既令人沮喪又耗時,但是最終將獲得可以節省大量時間的技能。

免責聲明:meetup.com 已於 2019 年 8 月更改了他們的 API,我還沒有將這個腳本更新到新的API,所以它現在實際上並沒有工作。在接下來的幾周內請關注此版本的修復版本。

centos-announcements.pl

centos-announcements.pl 腳本要複雜得多,而且對我的用例來說非常特殊,但你可能有類似的情況。在本例中該腳本查看郵件列表存檔(centos-announce 郵件列表),並查找具有特定格式的郵件,然後生成這些郵件的報告。報告有兩種不同的格式:一種用於我的每月新聞通訊,另一種用於安排 Twitter 信息(藉助於 Hootsuite)。

我使用 Hootsuite 爲 Twitter 安排內容,它們具有便捷的 CSV(逗號分隔值)格式,你可以一次批量安排整整一週的推文。從各種數據源(比如:郵件列表、博客、其他網頁)自動生成 CSV 格式可以節省大量時間。但是請注意,這可能只應該用於初稿,然後你可以對其進行檢查和編輯,以便最終不會自動發佈你不想要內容的推文。

reporting.pl

reporting.pl 腳本也是相當特定的,以滿足我的特殊需求,但是這個概念本身是通用的。我每月向 CentOS SIG(特殊興趣小組)發送郵件,這些郵件計劃在給定的月份報告。該腳本只是告訴我本月有哪些 SIG,並記錄需要發送給他們的電子郵件。

但是,因以下兩個原因,實際上並未發送該電子郵件。第一,我希望在消息發送之前對其進行編輯。第二,雖然發送電子郵件的腳本在過去很有效,但如今,很可能被當做垃圾郵件而被過濾。

總結

在這個存儲庫中還有一些其他腳本,這些腳本或多或少是針對我的特定需求的,但是我希望其中至少有一個腳本對你有用,並且希望這些腳本的多樣性能激勵你去自動化一些你自己的東西。我也希望看到你的自動化腳本存儲庫;在評論中鏈接他們!


via: https://opensource.com/article/20/3/automating-community-management-python

作者:Rich Bowen 選題:lujun9972 譯者:stevenzdg988 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章