iT邦幫忙

2023 iThome 鐵人賽

DAY 25
0
SideProject30

python基礎及數據科學之應用系列 第 25

python基礎及數據科學之應用day 25[pycord資料庫介紹2]

  • 分享至 

  • xImage
  •  

day 25:

希望瀏覽數可以多點啦,更多人看我的教學後有所增長
/images/emoticon/emoticon11.gif

ctx.author的使用者的資訊

使用者的資訊 用途
ctx.author.id 以整數形式傳回使用者的ID
ctx.author.name 以字串形式傳回使用者的顯示名稱
ctx.author.discriminator 使用者名稱後面的四位數字
ctx.author.mention 傳回提及使用者的字串
ctx.author.avatar.url 傳回使用者頭像
ctx.author.top_role 傳回使用者在伺服器中的最高身份

範例:

import discord
from discord.ext import commands

# intents = discord.Intents.default()
bot = discord.Bot()

@bot.event
async def on_ready():
    print(f'Logged in as {bot.user.name} ({bot.user.id})')
    print('Bot is ready to receive commands')

@bot.command()
async def user_info(ctx):
    author_id = ctx.author.id
    author_name = ctx.author.name
    discriminator = ctx.author.discriminator
    mention = ctx.author.mention
    avatar_url = ctx.author.avatar.url
    created_at = ctx.author.created_at
    status = ctx.author.status

    info = f"User ID: {author_id}\n" \
           f"Username: {author_name}\n" \
           f"Discriminator: {discriminator}\n" \
           f"Mention: {mention}\n" \
           f"Avatar URL: {avatar_url}\n" \
           f"Account Created At: {created_at}\n" \
           f"Status: {status}\n"

    await ctx.send(info)
  
bot.run("token")

arg

from discord import File, Embed
import discord

bot = discord.Bot()

@bot.event
async def on_ready():
    print(f'Logged in as {bot.user.name} ({bot.user.id})')
    print('Bot is ready to receive commands')

@bot.command()
async def send_message(ctx, arg):
    await ctx.send(arg)
      
bot.run("token")

執行結果:
https://ithelp.ithome.com.tw/upload/images/20231010/20163173l1EF6yB4lU.png

透過此程式碼,您可以使用/send_message指令後接訊息內容將該訊息傳送到使用該命令的頻道。例如,如果您/send_message Hello, world!在機器人所在的 Discord頻道中輸入內容,它將發送訊息Hello, world! 到那個頻道。

如何傳送影像

這次用的圖片:
https://ithelp.ithome.com.tw/upload/images/20231010/20163173i7deBSZrBy.png

範例:

from discord import File
import discord
bot = discord.Bot()
@bot.event
async def on_ready():
    print(f'Logged in as {bot.user.name} ({bot.user.id})')
    print('Bot is ready to receive commands')
    
@bot.command()
async def send_image(ctx):
    channel = ctx.channel
    image_path = "e.png"
    with open(image_path, 'rb') as f:
        image = File(f)
        await channel.send(file=image)
      
bot.run("token")

執行結果:
https://ithelp.ithome.com.tw/upload/images/20231010/20163173jHche1pSfX.png

discord.file()

將圖像檔案包裝在物件中discord.File()。這會將圖像檔案準備為要傳送的附件。

在discord中嵌入訊息(embed message)

要使用Pycord發送嵌入訊息,您可以利用Embed自訂訊息的外觀和內容。

範例:

import datetime
import pytz
from discord import File, Embed
import discord


bot = discord.Bot()

@bot.event
async def on_ready():
    print(f'Logged in as {bot.user.name} ({bot.user.id})')
    print('Bot is ready to receive commands')

@bot.command()
async def send_embed(ctx):
    embed = Embed(title="python基礎及數據科學之應用day 25", url="https://ithelp.ithome.com.tw/articles/10321600", description="嵌入訊息", color=0x001eff)
    embed.set_thumbnail(url="https://www2.pyc.edu.hk/img/logo-green")
    embed.set_author(name="carsonleung")
  
    embed.add_field(name="Field1", value="value", inline=True)
    embed.add_field(name="Field2", value="value2", inline=True)

    #將時區設定為香港
    hong_kong_timezone = pytz.timezone('Asia/Hong_Kong')
    #取得香港現在時間
    current_time = datetime.datetime.now(tz=hong_kong_timezone)
    time = str(current_time.time())
  
    embed.set_footer(text="時間 : "+time) #列印香港目前時間
    
    await ctx.send(embed=embed)
      
bot.run("token")

執行結果:
https://ithelp.ithome.com.tw/upload/images/20231010/20163173i04rBEnjrZ.png

嘗試嵌入生成器,更快完成嵌入訊息

/images/emoticon/emoticon01.gif
如果我的文章對你有幫助或有更好的建議,可以追蹤我,可以按讚和不妨在留言區提出,明天再見吧。bye

reference:
https://guide.pycord.dev/getting-started/more-features


上一篇
python基礎及數據科學之應用day 24[pycord資料庫介紹]
下一篇
python基礎及數據科學之應用day 26[pycord資料庫介紹3]
系列文
python基礎及數據科學之應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言