font-family: 'Microsoft JhengHei', 'Consolas', 'Verdana', 'Google Sans Flex', 'Cascadia Code', sans-serif; max-width: 900px; margin: 2rem auto; background-color: var(--bg-card); color: var(--text-main); line-height: 1.8; border-radius: 20px; box-shadow: 0 12px 40px rgba(0, 0, 0, 0.5); padding: 36px 40px 48px; border: 1px solid var(--border-light); }
/* 標題與分隔線 */ .my-article h1 { color: #ffffff; border-bottom: 2px solid #555; padding-bottom: 12px; font-size: 28px; line-height: 1.5; margin-bottom: 24px; font-weight: 700; text-align: center; } .my-article h2 { color: var(--color-yellow); margin-top: 50px; font-size: 24px; text-align: center; font-weight: 700; background: #1a1a1c; padding: 12px; border-radius: 8px; border: 1px solid #444; } .my-article h3 { color: var(--color-blue); font-size: 20px; margin-top: 24px; margin-bottom: 12px; font-weight: 700; border-left: 4px solid var(--color-blue); padding-left: 12px; }
/* 引用框 (Blockquotes) */ .my-article .quote-info { border-left: 4px solid #777; background: #1a1a1a; padding: 16px 20px; border-radius: 8px; color: #ddd; margin: 20px 0; box-shadow: inset 0 2px 8px rgba(0,0,0,0.2); } .my-article .quote-warn { border-left: 4px solid var(--color-orange); background: #1a1a1a; padding: 16px 20px; border-radius: 8px; color: #fff; margin: 20px 0; box-shadow: inset 0 2px 8px rgba(0,0,0,0.2); } .my-article .quote-focus { border-left: 4px solid var(--color-yellow); background: #1a1a1a; padding: 16px 20px; border-radius: 8px; color: #fff; margin: 20px 0; box-shadow: inset 0 2px 8px rgba(0,0,0,0.2); }
/* 清單 (Lists - 強制使用 ul 取代 ol) */ .my-article .step-list { list-style: none; padding-left: 0; margin-bottom: 20px; color: #e0e0e0; } .my-article .step-list li { margin-bottom: 24px; font-size: 16.5px; line-height: 1.7; } .my-article .feature-list { list-style: none; padding-left: 0; } .my-article .feature-list li { margin-bottom: 12px; color: #ccc; padding-left: 28px; position: relative; } .my-article .feature-list li::before { content: "✔️"; position: absolute; left: 0; top: 0; }
/* 表格 (Tables) */ .my-article .table-wrap { overflow-x: auto; margin: 30px 0; border-radius: 10px; border: 1px solid var(--border-dark); } .my-article table { width: 100%; min-width: 100%; border-collapse: collapse; text-align: left; font-size: 15px; word-break: break-word; } .my-article thead { background-color: #2a2a2a; color: var(--color-yellow); } .my-article th, .my-article td { padding: 14px 16px; border: 1px solid var(--border-dark); } .my-article tbody { background-color: #111111; color: var(--text-muted); } .my-article tbody tr:nth-child(even) { background-color: rgba(255, 255, 255, 0.04); } .my-article tbody tr:hover { background-color: rgba(77, 171, 247, 0.15); transition: 0.2s ease; }
/* 連結與分隔線 */ .my-article a { color: var(--color-blue); text-decoration: none; font-weight: 600; border-bottom: 1px solid transparent; transition: 0.2s; } .my-article a:hover { color: #7ac0ff; border-bottom-color: var(--color-blue); } .my-article hr { border: 0; border-top: 1px solid var(--border-dark); margin: 40px 0; } .my-article .divider-icon { text-align: center; font-size: 24px; margin: -25px 0 30px; letter-spacing: 10px; }
/* 手機版 RWD */ @media (max-width: 600px) { .my-article { padding: 20px 16px; margin: 1rem; border-radius: 16px; } .my-article h1 { font-size: 22px; } .my-article h2 { font-size: 20px; } .my-article .table-wrap { overflow-x: auto; } }
🚀 三戰 FlexGet!CentOS 8 升級 Python 3 後的 BT 全自動追劇管家調教指南
🔥 一句話總結: 隨著 CentOS 8 的普及與 Python 3 的全面接管,我們最愛的 BT 自動下載神器 FlexGet 也迎來了架構上的變動。本篇將帶你重新打通任督二脈,讓你的伺服器繼續擔任 24 小時不知疲倦的超級追劇管家!
老讀者們應該都知道,我過去曾寫過兩篇關於 FlexGet 的實戰文章:
時光飛逝,隨著 CentOS 8 釋出已經超過一年(目前版本已來到 8.2.2004),相信許多熱血的玩家都已經打算,或是早就把系統給升級了!🚀🚄🏎🐱👤
💡 白話文教室:為什麼升級 CentOS 8 就要「三戰」FlexGet?
你可以把升級伺服器作業系統,想像成「搬到全新的高科技智慧住宅」。而在新家裡,系統預設的溝通語言已經從舊版的 Python 2 全面升級為 Python 3。為了讓我們的「數位採購管家(FlexGet)」能聽懂新家的指令繼續幫我們全自動抓 BT 種子,我們必須重新幫他報名語言學校,更新套件並微調設定檔。這就是我們今天要進行的任務!
在開始動手之前,請先確保你已經完成以下 先備動作,如果還沒,可以回頭參考這些打底教學:
- 2010年11月22日 – [CentOS]更新Python 3.XX [3]
- 2009年12月4日 – [CentOS]安裝BT軟體Transmission [4]
- 2019年1月16日 – [CentOS]在VPS上安裝BT軟體qBittorrent [2]
🛠️ 實戰環節:升級與環境建置
-
❶ 更新 Python 3 並安裝 FlexGet 相依套件
第一步,我們要幫新家的管家準備好最新的工具箱。Pip3 就像是 Python 專屬的「軟體應用商店」,我們透過它來取得最新版的 FlexGet 與資料庫套件。12345sudo pip3 install -U piphash -d pip3sudo pip3 install -U setuptools wheelpip3 install --user pyzipcode3 pysqlite3pip3 install --ignore-installed flexget -
❷ 建立連結與配置 FlexGet 設定檔
安裝完成後,我們要幫系統建立一個捷徑,讓它隨時找得到 FlexGet。接著建立專屬的設定檔 config.yml。12345# sudo unlink /usr/bin/flexgetsudo ln -s /usr/local/bin/flexget /usr/bin/flexget/sbin/ldconfigmkdir -p /root/.flexget/vi /root/.flexget/config.yml
🚨 老司機警告:YAML 格式的縮排陷阱!
在編寫 .yml 檔案時,絕對不能用 Tab 鍵來縮排,必須使用「空白鍵 (Space)」! 只要多空一格或少空一格,程式就會直接罷工報錯。
以下是 config.yml 的內容範例,請根據你的環境修改:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
templates: freespace: free_space: path: /home/admin/web space: 10240 tr: transmission: host: localhost port: 37210 username: Transmission設定檔中的rpc-username password: Transmission設定檔中的rpc-password tasks: CHD: rss: https://chdbits.org/torrentrss.php?rows=10&cat401=1&sta3=1&aud6=1&search=2013&search_mode=2&linktype=dl&passkey=ooxx verify_ssl_certificates: no accept_all: no regexp: accept: - (CHD|HDC) - (1080p|1080P) from: title template: - freespace - tr |
📊 設定檔參數白話文解析
| ⚙️ 參數名稱 | 📖 實際作用與白話分解 |
|---|---|
| templates: | 這是給管家的「通用標準作業程序 (SOP)」。定義好一次後,下方的任務就能重複套用。 |
| free_space: | 安全機制!確保指定路徑 /home/admin/web 還有大於 10240 MB 的硬碟空間,避免把伺服器塞爆。 |
| transmission: | 告訴 FlexGet 抓到種子後,要交給本機的 Transmission 軟體負責下載,需正確填寫 username 與 password。 |
| tasks: (CHD) | 這就是「日常採購清單」。rss 填入你要監控的種子論壇訂閱網址。 |
| regexp: | 🎯 精準過濾器:透過正規表示式,告訴管家只下載標題包含 CHD/HDC 且畫質為 1080p 的神級片源,其他雜魚一律略過! |
🩺 驗收成果與自動化排程
-
❸ 測試 FlexGet 運作是否成功
SOP 寫好之後,我們要先讓管家進行一次「無風險的彩排」。先檢查語法,再進行模擬測試(不會真的下載檔案)。12flexget checkflexget --test execute如果執行完畢後,畫面上出現 ACCEPTED 相關字眼,就代表測試成功,管家已經成功辨識並準備攔截種子囉 😉
參考原圖:
-
❹ 設定定時排程 (Cronjob)
最後一步,我們要利用 Linux 系統的 crontab 功能,設定一個「隱形鬧鐘」。讓伺服器 每 10 分鐘 就自動喚醒 FlexGet,去各大論壇巡邏一次 RSS 看有沒有新片出爐。12crontab -l | { cat; echo "*/10 * * * * /usr/bin/flexget --cron execute > /dev/null 2>&1"; } | crontab -crontab -l
🎉 大功告成! 從現在開始,你的 CentOS 8 伺服器已經完美結合 Python 3 版本的 FlexGet。你唯一要做的,就是下班回家打開播放器,享受管家幫你全自動抓好的 1080p 高畫質大片啦!📺


