قم بإنشاء روبوتات الدردشة بسهولة لـ Twitch.tv
التثبيت عبر NPM
$ npm install twitch-bot
const TwitchBot = require ( 'twitch-bot' )
const Bot = new TwitchBot ( {
username : 'Kappa_Bot' ,
oauth : 'oauth:dwiaj91j1KKona9j9d1420' ,
channels : [ 'twitch' ]
} )
Bot . on ( 'join' , channel => {
console . log ( `Joined channel: ${ channel } ` )
} )
Bot . on ( 'error' , err => {
console . log ( err )
} )
Bot . on ( 'message' , chatter => {
if ( chatter . message === '!test' ) {
Bot . say ( 'Command executed! PogChamp' )
}
} )
connected
join
part
message
timeout
subscription
ban
error
close
join()
)part()
say()
timeout()
ban()
close()
connected - ()
ينبعث هذا الحدث عندما يتصل الروبوت بخادم IRC.
Bot . on ( 'connected' , ( ) => ... )
join - ()
ينبعث هذا الحدث عندما يتم الانضمام إلى القناة بنجاح.
Bot . on ( 'join' , channel => ... )
part - ()
ينبعث هذا الحدث عند مغادرة القناة بنجاح.
Bot . on ( 'part' , channel => ... )
message - (chatter: Object)
ينبعث عند إرسال حدث PRIVSMSG
عبر IRC. يمكن العثور على سمات كائن الدردشة على موقع مطوري Twitch
Bot . on ( 'message' , chatter => ... )
{ color : '#3C78FD' ,
display_name : 'kritzware' ,
emotes : '88:18-25' ,
id : 'c5ee7248-3cea-43f5-ae44-2916d9a1325a' ,
mod : true ,
room_id : 44667418 ,
sent_ts : 1501541672959 ,
subscriber : true ,
tmi_sent_ts : 1501541673368 ,
turbo : false ,
user_id : 44667418 ,
user_type : 'mod' ,
badges : { broadcaster : 1 , subscriber : 0 } ,
channel : '#kritzware' ,
message : 'This is a message PogChamp' ,
username : 'Kritzware' }
timeout - (event: Object)
ينبعث عندما تنتهي مهلة المستخدم في الدردشة. تكون سمة ban_reason
null
عند عدم استخدام رسالة السبب.
kritzware: "/timeout {user} {duration} {reason}"
Bot . on ( 'timeout' , event => ... )
{ ban_duration : 10 , // seconds
ban_reason : 'Using a banned word' ,
room_id : 44667418 ,
target_user_id : 37798112 ,
tmi_sent_ts : 1503346029068 ,
type : 'timeout' ,
channel : '#kritzware' ,
target_username : 'blarev' }
subscription - (event: Object)
ينبعث عندما يشترك المستخدم في قناة ويختار مشاركة الاشتراك في الدردشة.
Bot . on ( 'subscription' , event => ... )
{
"badges" : {
"broadcaster" : 1 ,
"staff" : 1 ,
"turbo" : 1
} ,
"channel" : "#dallas" ,
"color" : "#008000" ,
"display_name" : "ronni" ,
"emotes" : null ,
"id" : "db25007f-7a18-43eb-9379-80131e44d633" ,
"login" : "ronni" ,
"message" : "Great stream -- keep it up!" , // null if no message given
"mod" : 0 ,
"msg_id" : "resub" ,
"msg_param_months" : 6 ,
"msg_param_sub_plan" : "Prime" ,
"msg_param_sub_plan_name" : "Prime" ,
"room_id" : 1337 ,
"subscriber" : 1 ,
"system_msg" : "ronni has subscribed for 6 months!" ,
"tmi_sent_ts" : 1507246572675 ,
"turbo" : 1 ,
"user_id" : 1337 ,
"user_type" : "staff"
}
ban - (event: Object)
ينبعث عندما يتم حظر المستخدم بشكل دائم من الدردشة. تكون سمة ban_reason
null
عند عدم استخدام رسالة السبب.
Bot . on ( 'ban' , event => ... )
kritzware: "/ban {user} {reason}"
{ ban_reason : 'Using a banned word' ,
room_id : 44667418 ,
target_user_id : 37798112 ,
tmi_sent_ts : 1503346078025 ,
type : 'ban' ,
channel : '#kritzware' ,
target_username : 'blarev' }
error - (err: Object)
ينبعث عند حدوث أي أخطاء في قناة Twitch IRC، أو عند محاولة الاتصال بالقناة.
Login authentication failed
يحدث هذا الخطأ عندما يكون اسم المستخدم أو المصادقة الخاصين بك على Twitch غير صحيح/غير صالح.
إجابة:
{ message: 'Login authentication failed' }
Improperly formatted auth
يحدث هذا الخطأ عندما لا يتم تنسيق كلمة مرور oauth بشكل صحيح. يجب أن يكون التنسيق الصالح هو "oauth:your-oauth-password-123"
.
إجابة:
{ message: 'Improperly formatted auth' }
Your message was not sent because you are sending messages too quickly
يحدث هذا الخطأ عندما يفشل إرسال الرسالة بسبب إرسال الرسائل بسرعة كبيرة. يمكنك تجنب ذلك عن طريق جعل الروبوت وسيطًا في القناة، إذا كان ذلك ممكنًا/مسموحًا به.
إجابة:
{ message : 'Your message was not sent because you are sending messages too quickly' }
Bot . on ( 'error' , err => ... )
{ message : 'Some error happened in the IRC channel' }
close - ()
يُطلق هذا الحدث عندما يتم تدمير اتصال irc عبر طريقة Bot.close()
.
Bot . on ( 'close' , ( ) => {
console . log ( 'closed bot irc connection' )
} )
join(channel: String)
محاولات الانضمام إلى القناة. في حالة النجاح، يصدر حدث "الانضمام".
Bot . on ( 'join' , channel => {
console . log ( `Bot joined ${ channel } ` )
} )
Bot . join ( 'channel2' )
part(channel: String)
محاولات الانفصال عن القناة. إذا نجحت، فسيتم إرسال حدث "الجزء".
Bot . on ( 'part' , channel => {
console . log ( `Bot left ${ channel } ` )
} )
Bot . part ( 'channel2' )
say(message: String, channel: []Channel, err: Callback)
أرسل رسالة في قناة Twitch المتصلة حاليًا. معلمة channels
غير مطلوبة عند الاتصال بقناة واحدة. يتم توفير رد اتصال اختياري للتحقق من صحة إرسال الرسالة بشكل صحيح.
Bot . say ( 'This is a message' )
Bot . say ( 'Pretend this message is over 500 characters' , err => {
sent : false ,
message : 'Exceeded PRIVMSG character limit (500)'
ts : '2017-08-13T16:38:54.989Z'
} )
// If connected to multiple channels
Bot . say ( 'message to #channel1' , 'channel1' )
Bot . say ( 'message to #channel2' , 'channel2' )
timeout(username: String, channel: []Channel, duration: int, reason: String)
مهلة المستخدم من الدردشة. معلمة channels
غير مطلوبة عند الاتصال بقناة واحدة. duration
الافتراضية هي 600 ثانية. رسالة reason
اختيارية.
Bot . timeout ( 'kritzware' , 10 )
// "kritzware was timed out for 10 seconds"
Bot . timeout ( 'kritzware' , 5 , 'Using a banned word' )
// "kritzware was timed out for 5 seconds, reason: 'Using a banned word'"
Bot . on ( 'message' , chatter => {
if ( chatter . message === 'xD' ) Bot . timeout ( chatter . username , 10 )
} )
ban(username: String, reason: String)
حظر مستخدم نهائيًا من الدردشة. معلمة channels
غير مطلوبة عند الاتصال بقناة واحدة. رسالة reason
اختيارية.
Bot . ban ( 'kritzware' )
// "kritzware is now banned from the room"
Bot . timeout ( 'kritzware' , 'Using a banned word' )
// "kritzware is now banned from the room, reason: 'Using a banned word'"
Bot . on ( 'message' , chatter => {
if ( chatter . message === 'Ban me!' ) Bot . ban ( chatter . username )
} )
close()
يغلق اتصال Twitch irc. ستتم إزالة الروبوت من قناة Twitch وخادم irc.
Bot . close ( )
يتطلب تشغيل مجموعة الاختبار وجود حسابين على الأقل على Twitch، وحساب مشرف واحد، وحساب عادي واحد. يجب أن تكون القناة المستخدمة هي نفسها - وهذا حتى يمكن اختبار طرق المهلة/الحظر باستخدام حساب التعديل. باستخدام هذين الحسابين، قم بتعيين متغيرات البيئة التالية:
TWITCHBOT_USERNAME = mod_username
TWITCHBOT_OAUTH = oauth : mod - oauth - token
TWITCHBOT_CHANNEL = mod_channel
TWITCHBOT_USERNAME_NON_MOD = non_mod_username
TWITCHBOT_OAUTH_NON_MOD = oauth : non - mod - oauth - token
TWITCHBOT_CHANNEL_NON_MOD = mod_channel
لتشغيل الاختبارات (المدعومة بـ Mocha)، استخدم الأمر التالي:
yarn test