Skip to content

Latest commit

 

History

History
178 lines (119 loc) · 5.46 KB

README_zh.md

File metadata and controls

178 lines (119 loc) · 5.46 KB
LOGO

Tweetcord

Discord的Twitter通知機器人

English | 繁體中文

📝簡介

Tweetcord是一個Discord機器人,它使用tweety-ns將指定Twitter用戶的即時推文更新傳送到你的Discord伺服器。只需設置想要關注的Twitter用戶和Discord頻道,Tweetcord就會自動將推文轉發到指定頻道,確保你不會錯過重要的更新。🐦

✨功能

截圖

👇每當關注的用戶發布新推文時,你的伺服器也會收到通知。

指令

👉 /add notifier username channel | mention type

參數 類型 描述
username str 你想要開啟通知的Twitter用戶的用戶名
channel discord.TextChannel 機器人發送通知的頻道
mention discord.Role 通知時提及的身分組
type str 設定是否啟用轉推和引用的通知 (0.4.1版本的新功能)

👉 /remove notifier username channel

參數 類型 描述
username str 你想要關閉通知的Twitter用戶的用戶名
channel discord.TextChannel 設置為發送通知的頻道

👉 /list users

  • 列出所有當前伺服器開啟通知的Twitter用戶

👉 /sync (0.4版本的新功能)

  • 將新Twitter帳戶的通知與資料庫同步。如果你更改了bot使用的Twitter帳戶,請使用此指令

👉 /customize message username channel | default (0.4版本的新功能)

參數 類型 描述
username str 你想要設定自定義通知訊息的Twitter用戶的用戶名
channel discord.TextChannel 機器人發送通知的頻道
default bool 是否要還原至預設的設定 (預設是false)

自定義通知訊息為 f-string 格式,目前支援4種特別的變數可供使用,將在下面說明:

  • {action} : 發文者的動作, 包括 tweeted, retweetedquoted (暫不支持中文)
  • {author} : 發文者的顯示名稱
  • {mention} : 發送到discord時提及的身份組
  • {url} : 推文的連結

📥安裝

在運行機器人之前,你需要安裝必要的模組。

pip install -r requirements.txt

⚡使用

📢本教學適用於0.3.2或更高版本。(建議:0.3.5或更高版本)

1. 創建並配置.env文件

BOT_TOKEN=YourDiscordBotToken
TWITTER_TOKEN=YourTwitterAccountAuthToken
DATA_PATH=./data/

你可以從cookies中獲取你的token,或是你可以探索其他獲取它的方法。

2. 配置configs.yml文件

所有與時間相關的配置都以秒為單位。

prefix: ''                          # 機器人命令的前綴。
activity_name: ''                   # 機器人顯示的活動名稱。
tweets_check_period: 10             # 檢查推文的頻率(不建議將此值設置得太低,以避免速率限制)。
tweets_updater_retry_delay: 300     # 當Tweets Updater遇到異常(例如速率限制)時的重試間隔。
tasks_monitor_check_period: 60      # 檢查每個任務是否正常運行的間隔,如果某個任務停止了,嘗試重新啟動。
tasks_monitor_log_period: 14400     # 將當前運行中的任務列表輸出到執行日誌的間隔。
auto_turn_off_notification: true    # (v0.4或更新版本) 如果某個使用者的所有通知都已停用,決定是否取消追蹤該使用者。
auto_unfollow: true                 # (v0.4或更新版本) 如果某個使用者的所有通知都已停用,決定是否停用該使用者的通知(Twitter端)。
use_fx: false                       # (v0.4.1或更新版本) 是否使用FixTweet來嵌入內容而不是使用內建的嵌入
default_message: |                  # (v0.4.1或更新版本) 全域設定預設的訊息格式
  {mention}**{author}** just {action} here: 
  {url}

3. 運行機器人並邀請至你的伺服器

python bot.py

🔧機器人權限設定 2147666944

  • 讀取訊息(Read Messages/View Channels)
  • 發送訊息(Send Messages)
  • 嵌入連結(Embed Links)
  • 附加檔案(Attach Files)
  • 提及 @everyone、@here 和所有身分組(Mention Everyone)
  • 使用應用程式命令(Use Slash Commands)

Note

如果想將機器人架到伺服器上,這裡推薦一個基本免費的服務:fly.io.

⚙️如果你使用fly.io的話你可能會需要的一些配置檔案
  • dockerfile
FROM python:3.10.9
WORKDIR /bot
COPY requirements.txt /bot/
RUN pip install -r requirements.txt
COPY . /bot/
CMD python bot.py
  • fly.toml
app = "你的APP名稱"
primary_region = "你的APP地區"

[env]
  DATA_PATH = "/data/"

[mounts]
  source = "你的APP的VOLUME名稱"
  destination = "/data"

4. 玩得開心

現在你可以回到Discord,並使用 /add notifier 指令來設置你想要接收更新的Twitter用戶!

💪貢獻者

感謝所有貢獻者。