目前大部分導覽頁類開源專案的可自訂度都不高,個人想要關注的資訊又過於分散,因此決定自己寫一個可以由使用者高度自訂的導覽頁,並整合自己所需的資訊和功能。
恢復更新啦!過去的兩年忙於打工,一直沒有太多精力,最近會抽時間修一修
前端使用Vue.js,後端使用Python,MariaDB+Redis提供資料儲存。前端框架使用Element UI,後端框架使用Flask,後端ORM使用Peewee。
? 如果有任何BUG/需求/建議,歡迎附上復現步驟/想法並提Issues!
歡迎star!
?個人用了好幾年的機場,速度快價格便宜,良心推薦,真的非常好用!戳此連結!
位元組跳動社招內推直接戳此連結投遞即可,校招內推碼:AWN958P,歡迎轉發擴散!
dev分支為開發中分支,運行可能會有問題,建議使用master分支進行部署測試
docker已經在搞啦~
首先需要Python3、Pip、MySQL(測試時使用的是MariaDB)和Redis環境
申請SeverChan的key用於推送提醒到微信;和風天氣的key用於獲取天氣信息;默認發送郵箱和口令,參考QQ郵箱的口令獲取方式
在具備環境後,使用python3運行根目錄下的start.py並根據提示進行操作
目錄 | 內容 |
---|---|
/backend | 後端程式碼 |
/backend/run.py | 後端入口文件 |
/frontend | 前端程式碼 |
/dist | 前端編譯的產物 |
/upload | 儲存用戶上傳的文件 |
/wallpapers | 存放爬取的必應壁紙 |
可以點選這裡來使用vscode暫時查閱代碼
入口:首頁
功能:輸入內容後跳到搜尋網址,進入頁面焦點自動置於搜尋框內,輸入文字可以帶出提示(需要在資料表search_engines中配置對應引擎的回呼函數,增減引擎的話同樣是在資料庫中增加數據)
入口:登陸後左上角hover使用者名稱-控制台
功能:提供在console表中註冊的前端元件入口,方便日後權限控製或進行排序等操作,如需增加前端模組,除了編寫前端業務外,還需要在console表中增加一筆記錄
入口:登陸後左上角hover使用者名稱-控制台-腳本運行平台。
功能:用於後台程式的統一驅動。前端表單均由配置產生,無需接觸前端程式碼,透過填寫配置產生的表單來提交腳本至後端運行腳本,並展示運行結果,而且具有定時運行腳本、對先前運行的任務進行回放、記錄運行耗時、記錄運行日誌、客製化運行記錄表格等人性化功能
注意:
模組:
編輯腳本:
初始選項:
組件選項:
print()
來列印需要輸出的文字;此外,透過一定的資料格式,可以選擇器元件的選項進行初始化,請參閱下方實例: import json
d = {
'code' : 200 , # 状态码,非必填,无实际作用
'data' : {
'msg' : 'hello n world qwe n qewqweewqwe' , # 展示的文本,非必须,会被解析为html,使用"n"换行
'value' : '123' , # 非必须,当传递value时,会将组件内的值替换成传回的值
'options' : [ # 非必须,当传递options时,会将选择器组件内的选项替换成传回的选项
{
'label' : '234' , # 标签,用于选择器组件展示的值
'value' : '234' # 值,用于选择器组件选择时实际代表和传递的值
},
]
}
}
print ( json . dumps ( d ))
入口:登陸後左上角hover使用者名稱-控制台-帳戶和權限
功能:使用"使用者-角色-權限"模型編寫的介面層級的權限控制系統,介面使用一個裝飾器即可以對權限進行控制。預設使用者請求介面時,請求IP必須與登入時使用的IP一致,這是一種較為嚴格的策略,在"/backend/app/privilege/privilege_control.py:24"可以關閉
模組:
使用者設定:新增使用者、停用使用者、刪除使用者、修改使用者角色、修改使用者密碼
角色對應權限設定:新增角色、停用角色、刪除角色、修改角色名稱、修改角色對應權限
權限設定:新增權限、停用權限、刪除權限、修改權限
入口:登陸後左上角hover使用者名稱-控制台-修改主頁元件
功能: 拖曳來修改主頁顯示的方式。組件的父級定義為"組件集",當有且只有一個組件集的時候,頁面不展示組件集標題,僅展示它所包含的組件,當有兩個及兩個以上的組件集時,展示組件集及其所包含的組件
按鈕:使用左右拖曳的方式來編輯元件集的順序,使用元件集右側圓形加號按鈕來新增元件集,使用每個元件集內部的編輯按鈕來修改元件集的名稱,使用每個元件集內部的刪除按鈕來刪除組件集;組件集內的組件使用上下拖曳的方式來編輯順序,使用每個組件集內的方形加號按鈕來添加組件,使用組件右側的刪除按鈕來刪除組件。元件詳情不支援修改,可以手動改庫(widget)來對其進行修改
入口:登陸後左上角hover用戶名-網盤/圖床
網盤:
一個簡易的網盤功能,並支援透過下載連結分享,檔案上傳不限制大小,下載不限制速度,但是大檔案上傳時需要多等一會直到loading結束。檔案儲存於根目錄的upload資料夾,並建立名稱為日期的子資料夾。
按鈕:介面上方為上傳檔案按鈕,可點選並選擇檔案或拖曳檔案至瀏覽器上傳檔案;下方檔案清單的按鈕有:1.下載按鈕-點選會下載檔案;2.分享按鈕(未分享時出現)-點擊後會產生分享鏈接,分享給其他人後,其他人粘貼至瀏覽器即可觸發該文件的下載,分享鏈接經過加密和壓縮,真實下載鏈接會被壓縮為短鏈接,方便使用,且鏈接帶有鑑權token,保證基本的安全性;3.複製分享鏈接按鈕(分享後出現)-點擊後複製分享鏈接至剪貼板;4.取消分享按鈕(分享後出現)-將分享連結置為失效並取消分享;5.刪除按鈕-將檔案邏輯刪除;6.修改檔案名稱按鈕,可以對檔案名稱進行修改
圖床:
如不登入則展示IP所在地的天氣資訊(受限於第三方API,IP位置為國外時,支援不好),登入後可以進行自訂,展示範圍為IP+自訂位置的資訊。此外,當請求資料時,為了保障速度,首先會使用緩存,快取資料有效期為3小時(在backendappweatherweather_function.py:16修改),如果沒有有效緩存,則會要求外部API以取得資料並存為緩存
按鈕:新增-登入後新增城市;排序-可拖曳對自訂的城市進行排序或刪除;推送-推送有三種異常天氣可選,分別為雨雪天氣、溫度驟升/驟降、空氣質量,且需要推送到位置和展示的位置是獨立的,可以分別設置
登陸後可以自訂,不登入時展示的書籤是在資料庫中修改(bookmarks.user_id==0)
按鈕:新增-登陸後新增書籤;設定-登陸後拖曳排序、刪除或修改書籤的圖示
尋找蘋果軟體商店的應用程式並監控其價格,當小於設定的閾值時,提醒使用者。
記錄便籤,並可定時推送便籤內容至微信/郵件。由於不想把功能做的太複雜,提交的推送是不允許撤銷的,但可以多次設置,即:設置的推送可以隨意加但不能減。此外,便籤還可以透過"時間機器"回溯至之前的版本,適用於誤刪等情況。
按鈕:滑鼠hover省略號,可以彈出三個按鈕:編輯和刪除-對選中的便籤進行編輯或刪除,提交後將所有便簽保存為一個新版本;提醒-點擊後彈出編輯提醒對話框,可以通過微信/郵件的方式提醒便條內容,最小顆粒度為五分鐘。下方的圓形按鈕分別為新增按鈕和時間機器按鈕,功能不再贅述
使用translators實現,使用的是阿里的服務,當在左側輸入區輸入文字後,一段間隔後,會根據上方選擇的語言進行翻譯。
系統使用「腳本運行平台」驅動腳本來每天爬取一張必應壁紙,小組件上則滾動展示7天內的壁紙,點擊圖片可以下載原圖。
監控黃金價格,並且可以設定閾值,當價格超過閾值時發送提醒。需要在"腳本運行平台"中配置定時任務,爬蟲在爬取資料的時候會跳過國內黃金不開盤的時間。
爬取滬深股市、港股、美股股票數據,並可設定超過門檻後提醒功能。
爬取基金數據,並且可以設定超過閾值後提醒功能。
聚合20幾個網站的信息,透過定時任務每小時採集一次,並可以透過點擊標題來進行手動刷新,部分內容截圖如下。
注意:截至2020年11月,百度、微博、煎蛋、搜狗明確禁止個人用戶爬取任何信息,請在運行項目時嚴格刪除相關代碼。
由於網站規則可能會變動,請在執行專案時依序檢查本專案使用的資料來源,當robots協定禁止個人使用者爬取時,刪除相關程式碼!
遵守robots協議,遵守爬蟲道德,建立更好的網路環境。
?本專案的開發所依賴的大量的優秀開源專案以及網站服務:
使用快取資料和限制頻次等方法對程式碼進行了最佳化,以避免爬取資料對網站造成較大的壓力。
所取得資料僅供學習參考使用,如有侵權,請立即聯絡刪除。
?如果這個專案對你有啟發或幫助,不妨支持一下開發者
MPL-2.0