iT邦幫忙

2023 iThome 鐵人賽

DAY 26
0
Software Development

30天來打造一個方便的訂房機器人系列 第 26

[Day 26]今日輸入做得好,明天查找沒煩惱

  • 分享至 

  • xImage
  •  

今天我們先把輸入做好,這樣我們就可以在之後的搜尋網站上面更加容易的套用到我們的變數上

建立一個hotel.py檔案

import discord
from discord.ext import commands
from core.classes import Cog_Extension


from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from bs4 import BeautifulSoup
import time


#discord.client
class SEARCH(Cog_Extension):
    ......
    
    
async def setup(bot):
    await bot.add_cog(SEARCH(bot))

建立一個一問一答的輸入

這邊會用到self.bot.wait_for(),可以用來等待()內的程式執行完後再接著執行之後的程式,要注意await這是個協成函數,每一段根bot有關的程式都要在前面加上這個函數,(必須要加)

@commands.command()
async def booking(self, ctx: discord.message):
    
        await ctx.send(f"請輸入目的地:")
        ss = await self.bot.wait_for('message')
        await ctx.send(f"入住日期yyyy-mm-dd:")
        checkin = await self.bot.wait_for('message')
        await ctx.send(f"退房日期yyyy-mm-dd:")
        checkout = await self.bot.wait_for('message')
        await ctx.send(f"大人人數:")
        adults = await self.bot.wait_for('message')
        await ctx.send(f"小孩人數:")
        children = await self.bot.wait_for('message')
        await ctx.send(f"房間數:")
        room = await self.bot.wait_for('message')
        await ctx.send('請稍等......')

小插曲(避免機器人偵測到自己的發言)

def check(m: discord.Message):
        return m.channel == ctx.channel and m.author != self.bot.user

將這段function加在booking裡面

@commands.command()
    async def booking(self, ctx: discord.message):

        def check(m: discord.Message):
            return m.channel == ctx.channel and m.author != self.bot.user
        
        # while True:
        await ctx.send(f"請輸入目的地:")
        ss = await self.bot.wait_for('message', check=check)
        await ctx.send(f"入住日期yyyy-mm-dd:")
        checkin = await self.bot.wait_for('message', check=check)
        await ctx.send(f"退房日期yyyy-mm-dd:")
        checkout = await self.bot.wait_for('message', check=check)
        await ctx.send(f"大人人數:")
        adults = await self.bot.wait_for('message', check=check)
        await ctx.send(f"小孩人數:")
        children = await self.bot.wait_for('message', check=check)
        await ctx.send(f"房間數:")
        room = await self.bot.wait_for('message', check=check)
        await ctx.send('請稍等......')

https://ithelp.ithome.com.tw/upload/images/20231006/20161505M3YMaxzrKR.png
OK這樣我們明天就可以把飯店的基本資訊加上去了


上一篇
[Day 25] LOADING...
下一篇
[Day 27]小插曲: await協程函數的魔力
系列文
30天來打造一個方便的訂房機器人30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言