การทำซ้ำครั้งที่สองของ Tsoder แชทบอทสำหรับสตรีม Tsoding
โปรดทราบว่าเราไม่ได้ใช้แพ็คเกจ Haskell จาก nixpkgs การขึ้นต่อกันทั้งหมดควรจะดาวน์โหลดโดย cabal หรือ stack ในระหว่างการสร้าง
$ nix-shell
$ cabal sandbox init
$ cabal install happy-1.19.9
$ cabal install --only-dependencies --enable-tests
$ cabal build
$ cabal test
$ cabal run HyperNerd secret.ini database.db
ดู Local Builds สไตล์ Nix สำหรับข้อมูลเพิ่มเติม
$ nix-shell
$ cabal v2-build
$ cabal v2-test
$ cabal v2-run exe:HyperNerd secret.ini database.db
การพึ่งพาดั้งเดิม:
$ stack build
$ stack exec hlint .
$ stack exec HyperNerd secret.ini database.db
ไฟล์ secret.ini
ประกอบด้วยสามส่วนที่เป็นทางเลือก
[twitch]
nick = HyperNerd
channel = Tsoding
password =
clientId =
owner =
[discord]
authToken =
guild =
channels = [, , ... ]
[github]
apiKey =
ชื่อ | คำอธิบาย |
---|---|
nick | ชื่อเล่นของบอท |
owner | เจ้าของบอท. บอทจะจดจำชื่อนี้ในฐานะผู้มีอำนาจ แม้ว่าจะไม่ใช่ม็อดหรือผู้ถ่ายทอดสดก็ตาม |
password | รหัสผ่านที่สร้างโดย https://twitchapps.com/tmi/ oauth: คำนำหน้าเป็นส่วนหนึ่งของรหัสผ่าน |
channel | ช่องที่บอทจะเข้าร่วมตอนสตาร์ทอัพ |
clientId | รหัสไคลเอ็นต์สำหรับการเรียก Twitch API |
ชื่อ | คำอธิบาย |
---|---|
authToken | โทเค็นการรับรองความถูกต้องสำหรับบอท: https://github.com/reactiflux/discord-irc/wiki/Creating-a-discord-bot-&-getting-a-token |
guild | ID ของกิลด์ที่บอทฟัง |
channels | รายการรหัสของช่องที่บอทฟัง (รายการจะถูกแยกวิเคราะห์เป็นรายการ Haskell: [ ) |
ชื่อ | รายละเอียด |
---|---|
apiToken | https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line |
ด้วยความลับที่มีอยู่ในโวลุ่มที่กำหนดไว้ใน docker-compose.yaml
$ docker-compose up --build
$ docker build --target app -t hypernerd .
$ mkdir hypernerd-state
$ cp secret.ini hypernerd-state
$ docker create -v /absolute/path/to/hypernerd-state/:/tmp/hypernerd/
--name hypernerd-bot hypernerd
$ docker start -a hypernerd-bot
$ docker stop hypernerd-bot
$ docker exec -it hypernerd-bot sh
หากต้องการกระตุ้นการตอบสนองแบบลูกโซ่ของ Markov เพียงพูดถึงบอทในแชท
โมเดล Markov คือไฟล์ CSV ที่สร้างขึ้นจากบันทึกในไฟล์ฐานข้อมูลของบอทโดยใช้ยูทิลิตี้ Markov
CLI:
$ cabal exec Markov train database.db markov.csv
คำสั่งนี้จะสร้างไฟล์ markov.csv
$ cabal exec HyperNerd secret.ini database.db markov.csv
ไฟล์ markov.csv
ไม่ได้อัพเดตโดยอัตโนมัติ หากต้องการอัปเดตไฟล์ด้วยบันทึกใหม่ คุณต้องเรียกใช้ยูทิลิตี้ Markov
CLI อีกครั้ง
คุณสามารถกำหนดนามแฝงคำสั่งให้กับคำสั่งใดก็ได้:
!test
test
!addalias foo test
!foo
test
นามแฝงจะถูก "เปลี่ยนเส้นทาง" เพียงระดับเดียวเท่านั้น ซึ่งหมายความว่าไม่รองรับนามแฝงสกรรมกริยา:
!addalias bar foo
!bar
*nothing, because !bar is redirected to !foo, but further redirect from !foo to !test does not happen*
แรงจูงใจที่จะไม่สนับสนุนนามแฝงสกรรมกริยามีดังต่อไปนี้:
!addquote
-- เพิ่มใบเสนอราคาลงในฐานข้อมูลใบเสนอราคา ใช้ได้เฉพาะกับหมวดย่อยและม็อดเท่านั้น!delquote
-- ลบเครื่องหมายคำพูดด้วย id มีให้เฉพาะ Tsoding เท่านั้น!quote [quote-id]
-- สอบถามใบเสนอราคาจากฐานข้อมูลใบเสนอราคา สามารถสนับสนุนผลงานของผมได้ทาง