根據上一篇來做一個延伸內容,
想做一個自動刷YT人數追蹤人數的顯示。
所以此篇會有兩個重點:
1.排程自動更新
2.Youtube API 取得追蹤人數
使用方法:
import discord
from discrod.ext import tasks
client = command.Bot()
@tasks.loop(minutes=1)
async def scheduleRun():
print('running')
@client.event
async def on_ready():
print(f"「{client.user}」已登入")
schduleRun.start()
client.run("Token")
執行:
import json
import urllib.request
def get_youtube_subscribers(channelID):
data = urllib.request.urlopen("https://www.googleapis.com/youtube/v3/channels/?part=statistics&id="+channelID+"&key="+os.getenv("SECRET_KEY")).read()
subs = json.loads(data)["items"][0]["statistics"]["subscriberCount"]
return f'YouTube 訂閱人數: {subs}'
SECRET_KEY 是金鑰
channelID 為目標youtube 頻道ID
在觸發命令時,需要輸入channelID 頻道ID
使用 Option 來宣告想要輸入的內容,
此次的內容為 字串、必填的 頻道編號。
from discord.commands import Option
@Bot.slash_command(name="channel", description="建立YT人數頻道")
async def create_channel(ctx, channelID: Option(str, "輸入頻道編號", name="頻道編號", required=True)):
try:
guild = Bot.get_guild(ctx.guild.id)
channel = await guild.create_voice_channel(get_youtube_subscribers(channelID), overwrites={ctx.guild.default_role: discord.PermissionOverwrite(connect=False)})
print(channel.id)
await ctx.respond("新增完成", ephemeral=True)
except Exception as errors:
print(f"Bot Error: {errors}")
await ctx.respond("發生錯誤: " + errors, ephemeral=True)
剩下下一篇處理