Muri iki kiganiro, turaza kuvuga intoki Kurema A bot kuko avuza umuziki mu amacakubiri. Ushobora gusa Gukoporora yose ishyikirizwa code, na Kwandika ubwawe niba utunze JavaScript ubumenyi. Mu bot yaremwe na twe, ariko ku byiciro bimwe Umukoresha n'ubu dushobora guhangana n'ibibazo bitandukanye, bityo inama witonze gusoma amabwiriza yacu gusa, ahubwo kuboneka ku kode Mugaragaza ikosa niba hari nko.
Niba zivamwo ko ayo mayagwa ari nawe kugorana kuko cyangwa bibereye izindi mpamvu, gukoresha yiteguye-buja Bots gukina music. Ikiganiro ku link ikurikira uzosanga amakuru arambuye kuri ibi na ushobora bikorwa Igikorwa.
Soma Byinshi:
Wongera A bot by'umuzika Seriveri mu amacakubiri
Play music binyuze bot mu amacakubiri
Intambwe ya 1: Gukora porogaramu nshya
Buri bot kuko kujugunya itegerezwa kuba yanditswe ku portal mugaragaro kuko mu bijyanye. Bityo inyungu kugera Igenamiterere ngombwa isano Uruhushya kandi Imyifatire rusange bot yose, ushobora kwigana link uruhushya mu Seriveri bwite no gukoresha ikimenyetso kidasanzwe, bikaba bikenewe kuko iterambere ikindi amategeko.
Genda rubuga mugaragaro amacakubiri Mukoraporogaramu Portal
- Koresha link haruguru gufungura portal wa nyamukuru page for mu bijyanye, LOG in mu amacakubiri konti bwite na Kanda ku "New isaba" Kuri Kurema A Gishya Porogaramu.
- Kwinjira izina rye, yabahaye umwihariko, kuko niba hari Bots benshi Na: i Izina, ntibiza kuba bishoboka Kurema - itangazo rya renaming bimenyeshwa.
- Ku kurangiza, Gufungura Ibikubiyemo ku rubuga na Guhitamo "Bot" category.
- Ahateganye "Kubaka-A-Bot" Ikurikiranyanyuguti Kanda ku "Ongera Bot".
- Kwemeza Uretse mu bot kuko Porogaramu Byahiswemo.
- Biciye Ibikubiyemo bamenyereye, kujya «OAuth2».
- Iki gice ashinzwe Ibigenga rusange ya bot na uruhushya yayo. Mu "Scopes" igitsitaza, kwizihiza "Bot" gika.
- Kurutonde rwuruhukira, menya neza gukora ihuriro ryimiyoboro yijwi nubushobozi bwo kuvuga, nkuko bibaye ngombwa kugirango habeho uruzitizi.
- Bot igomba gushobora gusoma no kohereza ubutumwa, ntukibagirwe gukora amahitamo mugice hamwe ninyandiko yo kuganira. Nibyo, urashobora gutanga uruhushya rwose, ariko ubu buryo ntibutangaje, cyane mugihe ukora bot kubakoresha.
- Mugihe ubyemereye uruhushya birangiye, fungura umurongo wa Bot ya mbere ya Bot kuri seriveri, kuko ubundi ongeraho kugeza bigaragaye.
- Kurikiza iyi link hanyuma uhitemo seriveri yikizamini aho ushaka kugenzura bot.
- Emeza ufashwe hanyuma utegereze amakuru yerekeye uruhushya rwiza.
Noneho ufite bot hamwe nikimenyetso cyihariye, kandi bot bimaze kongerwa kuri seriveri, ariko mugihe muburyo bwa interineti. Kugirango utangire, bigomba gukora ibindi bikorwa kuri mudasobwa yaho, kubera ko mugihe tudapakurura boring boting kubikorwa bya interineti.
Intambwe ya 2: Ibikorwa byo gutegura
Ibikorwa kwitegura harimo kurema ububiko zisabwa Idosiye, ishyirwaho rya ibikoresho no dependencies bo. Ntakintu kigoye muribi, ukeneye gusa gukora ibikorwa byose, ukurikiza witonze amakosa murwego urwo arirwo rwose.
- Kora ububiko hamwe nizina rya bot. Urashobora guhitamo ahantu hose, ariko ububiko bwumukoresha bwumukoresha bukwiranye nibi.
- Kora dosiye ebyiri muri yo: "Confin.json" na "indangagaciro.Js". Mugihe cyambere cyohereje ibibo muri rusange - prefix yayo yihariye, no mumasegonda yose - kode yose hamwe namategeko nibikorwa bisanzwe byiki gikoresho.
- Kuberako imirimo ya bot izakenera node.j. Iki gikoresho cyagenewe gutangira inyandiko kuri mudasobwa yaho. Kurikiza ihuza hepfo hanyuma ukuremo ishyirwaho rya Windows.
Download node.js mu rubuga mugaragaro
- Tegereza gukuramo dosiye zikoreshwa mubikorwa, iyikore kandi utsinde inzira yo kwishyiriraho, ukurikira amabwiriza yerekanwe kuri ecran.
- Nyuma yibyo, fungura "umuyobozi" woroshye kuri wewe, kurugero, winjiza CMD muri "Run" ufite akamaro (Bikore "(Bikora" (Itangira gutsindira + r urufunguzo + r urufunguzo + r urufunguzo + r urufunguzo rwa
- Shyiramo module yo gukorana nubwishingizi bwa Api, bwitwa "ubwumvikane.js". Kugirango ukore ibi, mu idirishya rya konsole rifungura, andika NPM ishyireho ubwumvikane.js ffmpeg-binaring opsscript ytdl-core - uhita wongeramo ibishishwa byose.
- Tegereza kumenyesha kuri ecran ku buryo bwiza, utafunze idirishya rya konsole iriho. Niba amakosa agaragara, wige kode yabo kandi ukoreshe moteri ishakisha kugirango ubone icyemezo cyakazi kuri forumu cyangwa kurubuga rwemewe.
Nkigisubizo, urugo rwumukoresha rugomba kugaragara dosiye zijyanye na node.js kandi wongeyeho nyuma ya module. Ongera utangire mudasobwa kugirango Bot idafite ikibazo cyo gutangira, hanyuma ujye ku ntambwe ikurikira.
Intambwe ya 3: Guhindura ibikoresho bya Bot
Usanzwe uzi ko muri dosiye iboneza ya bot hazabaho imirongo yose ya kode ifite inshingano zambere (ikimenyetso mbere yo kwinjira kuri seriveri kuri seriveri) hamwe nikimenyetso cyihariye gisobanura gusaba muri API. Kugira ngo dusohoze ibindi bikorwa byose, turasaba gukuramo gahunda hamwe na JS Syntax Inkunga cyangwa umwanditsi wanditseho inyandiko niba ibi bitarakozwe mbere. Ingingo iri kumurongo hepfo uzashobora kumenyera ibisubizo bikwiye kuboneka.
Soma byinshi: Guhitamo ibidukikije byiterambere kuri programming
Mugihe ukimara gushyirwaho kuri mudasobwa kandi witeguye gukora, urashobora gutangira neza guhindura dosiye iboneza, kwinjira mu bakoresha bashinzwe.
- Koresha dosiye ya Config.js ukoresheje umwanditsi wanditse cyangwa iterambere, shyiramo kode hepfo.
{
"Prefix": "!",
"Ikimenyetso": "Toke-Toke"
}
Hindura prefix mumagambo abiri kubyo wifuza cyangwa usige ikimenyetso cyo gutangaza. Urugero rwitegeko ukoresheje iki kimenyetso gisa nkiyi :! gukina.
- Jya kuri bot yawe ku kimenyetso cyiterambere, shakisha ikimenyetso cyihariye hanyuma uyikorera.
- Shyiramo igenzura rya Toke aho udasibye amagambo abiri.
- Save the impinduka no hafi Idosiye iyi. Inzira, ushobora gukora igikorwa kimwe mu ihame "ikaye".
Ku bikorwa iyi i Iboneza Idosiye ni yarangira, hari ukundi ukeneye imiti umurongo rukumbi code. Close ari, hatirengagijwe gukiza edits yaremye, kandi itangura nyandiko yakomeje bot kuko avuza umuziki.
Intambwe 4: Urubanza Guhera Bot
Ubwa mbere, turakeneye kwiyemeza neza ko bot rusange yiruka ku i Seriveri: na akaja ku Ubwoko online, bizaba ngombwa kwandika igice yayo nyamukuru ya Inyandikoporogaramu Kuri index.js, hanyuma gukoresha Node.js gutangira.
- Binyuze ibidukikije n'iterambere cyangwa Byahiswemo Umwandiko Muhinduzi, Gufungura Idosiye byavuzwe kuko Guhindura.
- Ongeramo Funga Bya Inyandikoporogaramu ashinzwe kwishingikiriza iyinjizaporogaramu na igaragaza Modire Byakoreshejwe:
Rimwe ku amacakubiri = Idusaba ( 'discord.js');
Rimwe ku {
Imbanziriza,
ikimenyetso
} = Idusaba ( './ config.json');
Rimwe ku YTDL = RIKENEYEHO ( 'YTDL-Z'INGENZI');
- Tubifashijwemwo butambwe zisanzwe bivugwa, Kurema A Umukiriya na Ifashayinjira, bikaba rikorwa na kwinjira babiri gusa imirongo Byoroheje:
Rimwe ku umukiriya = New discord.client ();
Client.login (ikimenyetso);
- Rigumye gusa Kugaragaza nyuma Imirongo fatizo kuko amatwi bot ku.
Client.ONCE ( 'witeguye', () => {
Console.log ( 'witeguye');
});
Client.Once ( 'ukongera', () => {
Console.log ( 'ukongera');
});
Client.ONCE ( 'gutandukanya', () => {
Console.log ( 'gutandukanya');
});
- Kwagura "File" Ibikubiyemo na Kuri Kubika Amahinduka yaremye.
- Kwiruka console kongera mu buryo kubonera.
- Kwinjira Node mu index.js command gutangiza bot IYANDIKA.
- Niba Idosiye ntabwo iherereye mu Umukoresha wa Home Ububiko, nyuma Node bazobwirizwa Kugaragaza A Byuzuye bo.
- Mugaragaro neza ya bot ku bigaragazwa na icandiko abonekera "witeguye".
- Open amacakubiri no guhindura neza ko bot ajya i Imimerere ya "online".
Intambwe ya 5: Kwandika coder nyamukuru ya bot by'umuzika
Inzira igoye cyane yagumye - kwandika kode yibanze kuri bot yumuziki. Hano hari urutonde rwimirimo igomba gukora: Gusoma Ubutumwa hamwe no gutunganya amategeko, ibisobanuro byizina ryindirimbo cyangwa aderesi yacyo, guhuza umuyoboro wijwi no gukina. Uruhushya kuri bot yose, rero ugomba rero kwerekana ibikorwa ukoresheje imikorere ya JavaScript, bikozwe muri dosiye imwe ".Js".
Ongeraho ikintu cyoroshye cyo gusoma ubutumwa:
Umukiriya.on ('Ubutumwa', Ubutumwa bwa Async => {
}
Igizwe n'imirongo ibiri gusa, ariko izemerera bot gufata ikibazo gifatika kandi gitunganywa neza. Birashobora kuvugwa ko iyi ari imwe mumakipe yingenzi kuri bots yubwoko ubwo aribwo bwose. Witondere kongeramo ubutumwa buva mubindi bots winjiye
niba (ubutumwa.uhige.Bot) kugaruka;
Ibi birinda amakimbirane mugihe ukoresheje bots nyinshi kuri seriveri icyarimwe. Ibikurikira, bizaba ngombwa kugenzura prefix kugirangotm yemeye itsinda cyangwa kuyasubiza.
niba (! Ubutumwa .Contint.startwith (prefix)) kugaruka;
Kugenzura amategeko mugaragaro rikorwa hakoreshejwe yoroheje NIBA operators, na design mu rubanza uburanga yacu nka iyi:
On Restrique = Quee.get (ubutumwa.guild.id);
Niba (ubutumwa. Komera.Startswith (`$ {prefix} gukina`)) {
Gukora (ubutumwa, seriveri);
Garuka;
} Ikindi niba (ubutumwa. Komera.Startswith (`$ {prefix} skip`)) {
Simbuka (ubutumwa, seriveri);
Garuka;
} Ikindi niba (ubutumwa. Komera.Startswith (`$ {prefix} guhagarika`)) {
Hagarara (ubutumwa, seriveri);
Garuka;
} Ikindi {
Ubutumwa.Cannel.send ('Ugomba gukoresha itegeko ririho!')
}
Nyamuneka menya ko kohereza ('') byohereza ubutumwa kubakoresha niba bihita binjira mu itegeko ridakora. Ubu butumwa ushobora Kwandika, guhindura icandiko mu Quotes.
Noneho bot bize gukora amategeko, ariko kugeza igihe hashobora guhura nabo, kubera ko ibikorwa bidasobanutse. Banza ongeramo umukino wo gukina, ushinzwe gukina. Kuriyo, array irakenewe hamwe nuburyo bukurikira:
Kumenyesha umurongo = ikarita nshya ();
Yohereje amategeko yose mumurongo kandi atuma indirimbo zo gukina gusa iyo iyambere irangiye. Ibikurikira, bizaba ngombwa gukora umurimo uzareba niba uyikoresha ahujwe numuyoboro wijwi kandi niba bot ari uburenganzira bujyanye.
Imikorere ya ASYNC ikorwa (ubutumwa, seriveri) {
ongs args = Ubutumwa .Contin.spot ('' ');
Raporo Yiza = Ubutumwa.megrol.Voicelnel;
Niba (! Ijwi) Garuka Ubutumwa.sel.se ('kumva umuziki, ugomba kuba mu muyoboro wijwi!');
Kugarura uruhushya = IJAMBO.ISAHARIKO (Ubutumwa.client.user);
Niba (! Uruhushya.has ('Guhuza') ||! Uruhushya.has ('vuga'))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
Garuka Ubutumwa.Kora. 'Nkeneye impushya zo kwinjira no kuvuga umuyoboro wijwi ryawe!');
}
}
Igikorwa gikurikira - Guhuza Isomero rya YTDL, kubera ko iyi Bot izasoma izina ryindirimbo kumurongo uva kuri YouTube, nyuma yakinnye kuri seriveri. Bizatwara kugirango ushiremo igice gito cya kode.
Kumva indirimbo = utegereje ytdl.getinfo (arg [1]);
Indirimbo Zindirimbo = {
Umutwe: Soliinfo.tle,
URL: Solinfo.VIDEO_URL,
};
Funga itaha code Emera gusobanukirwa niba hari indirimbo mu Umurizo cyangwa ushobora guhita Kwihuza Kuri umuyoboro ijwi gutangira musomyi.
Niba (! Serverqueue) {
} Mukamulindwa {
ServerQueue.Songs.push (Indirimbo);
Console.log (Serverqueue.songs);
Return Message.Channel.send ( `$ {Song.title} ko yongeweho ku Umurizo`!);
}
Next haje bike bigoye munyeshuri amaporogaramu amasezerano Igishusho ko yongeraho indirimbo mu urugamba na bituma kimwe buri gihe Injiza! Play, kureba Umurizo no guhitamo igikorwa iburyo. Mwirinde kugira comments byatanzwe, Emera Kuri guhangana dutumye yose.
// ndema amasezerano kuko Umurizo mu
Rimwe ku QueueContruct = {
TextChannel: Message.Channel,
VoiceChannel: VoiceChannel,
Isano: null,
Songs: [],
REBA UMUBUMBE WA: 5,
Playing: Ego,
};
// Set Umurizo na amasezerano yacu
queue.set (Message.Guild.ID, QueueContruct);
// Ongera n'itunganywa mu urugamba yacu rw'indirimbo
queuecontruct.songs.push (SONG);
kugerageza {
// hano turiko turagerageza ruzifatanya chat ijwi gukiza isano mu Igikoresho
var isano = tugitegereje voicechannel.join ();
queuecontruct.connection = w'Ukwihuza;
// Ahamagara mu musomyi Umumaro gutangira indirimbo
Play (Message.Guild, Queuecontruct.songs [0]);
} Gufata (bayoba) {
// Kwerekana Ikosa & Ubutumwa NIBA i bot badashobora kujya mu chat ijwi
Console.log (bayoba);
queue.delete (Message.Guild.ID);
Return Message.Channel.send (bayoba);
}
Na Umurizo ku, byose biragaragara, ariko nta gukina indirimbo, kuko nta nshingano mu gikorwa Play. Gukora mu Inyandikoporogaramu ni ngombwa kongera imiterere
Umumaro Play (Guild, SONG) {
Rimwe ku ServerQueue = queue.get (guild.id);
Niba (! Indirimbo) {
ServerQueue.VoiceChannel.Leave ();
queue.delete (guild.id);
Subira;
}
}
Playing bitangirana gukoresha PlayStream () Umumaro na runaka link to nzira.
Rimwe ku Dispatcher = ServerQueue.Connection.PlayStream (YTDL (Song.url))
.ku ( 'Iherezo, () => {
Console.log ( 'Music bizarangirira!');
// akuraho Byarangiye indirimbo kuva Umurizo mu
serverqueue.songs.shift ();
// yongera atuma musomyi Umumaro Na indirimbo ikurikira
Play (Guild, Serverqueue.songs [0]);
})
.ku ( 'ikosa', ikosa => {
Console.error (Ikosa),
});
dispatcher.setvolumelogarithmic (serverqueue.volume / 5);
Niba ushaka kongera indirimbo Blog Umumaro, nk'akarorero, iyo uhisemwo gukina playlist, mbere kwita gufata mu itegeko ibereye, hanyuma Ongera A c'icandikano nko:
Umumaro HITA (Message, Serverqueue) {
(! Message.member.voiceChannel) niba Return Message.Channel.send ( 'Ugomba kuba mu ijwi umuyoboro stop music!');
Niba (Serverqueue!) Return Message.Channel.send ( 'Nta ndirimbo ngo nshobore skip!');
ServerQueue.connection.dispatcher.end ();
}
Bagera Igishusho nyene ibikorwa mu stop Umumaro, ariko Funga na Inyandikoporogaramu aronka A Kureba bitandukanye gato:
Umumaro guhagarika (Message, Serverqueue) {
niba (! Message.member.VoiceChannel) Return Message.Channel.send ( '
Ugomba kuba mu muhora ijwi guhagarika music ');
ServerQueue.Songs = [];
ServerQueue.connection.dispatcher.end ();
}
Rimbura ko amakuru byatanzwe hejuru ni hakwiriye gusa Abakoresha abari basanzwe bafite ururimi JavaScript cyangwa bakora gusa mu kwiga no yiyemeje Kurema A bot by'umuzika. Niba ukora nta bwite ubumenyi muri rusange no ku bariyeri Na Inyandikoporogaramu udafise ikintu na kimwe avuga, gusa Ongeramo yose Inkomoko Inyandikoporogaramu mu Idosiye, gusimbura ubutumwa mu bot mu Burusiya (baba mu n'utwugarizo) no gukiza Amahinduka. All Inkomoko Inyandikoporogaramu ifite bwoko:
Rimwe ku amacakubiri = Idusaba ( 'discord.js');
Rimwe ku {
Imbanziriza,
ikimenyetso
} = Idusaba ( './ config.json');
Rimwe ku YTDL = RIKENEYEHO ( 'YTDL-Z'INGENZI');
Rimwe ku umukiriya = New discord.client ();
Rimwe ku Umurizo = New Map ();
Client.ONCE ( 'witeguye', () => {
Console.log ( 'witeguye');
});
Client.Once ( 'ukongera', () => {
Console.log ( 'ukongera');
});
Client.ONCE ( 'gutandukanya', () => {
Console.log ( 'gutandukanya');
});
Client.on ( 'Message', Async Message => {
niba (message.author.bot) kugaruka;
niba (Message.content.startSwith (Imbanziriza)!) Garuka;
Rimwe ku ServerQueue = Queue.Get (Message.Guild.ID);
niba (Message.Content.startSwith ( `$ {Imbanziriza} play`)) {
Kwica (Message, ServerQueue);
Subira;
} Mukamulindwa niba (message.content.startswith ( `$ {Imbanziriza} Skip`)) {
Jya (Message, ServerQueue);
Subira;
} Mukamulindwa Niba (message.content.startSwith ( `$ {Imbanziriza} stop`)) {
Stop (Message, Serverqueue);
Subira;
} Mukamulindwa {
Message.Channel.send ( 'ukeneye Kwinjira icyo kwizeye Command!')
}
});
ASYNC Umumaro kwica (UBUTUMWA, SERVERQUEUE) {
Rimwe ku args = message.content.split ( '');
Rimwe ku VoiceChannel = Message.Member.VoiceChannel;
niba Return Message.Channel.send ( 'ugomba kuba mu ijwi Channel ngo Play Music!') (VoiceChannel!);
Rimwe ku Uburenganzira = VoiceChannel.permissionSFOR (Message.Client.user);
Niba (! Permissions.has ( 'Kwihuza') ||! Permissions.has ( 'kuvuga')) {
Return Message.Channel.send ( 'I Need ku Uburenganzira bwo Join no kuvuga mu ijwi Channel wawe!');
}
Rimwe ku Songinfo = tugitegereje ytdl.getinfo (args [1]);
Rimwe ku Indirimbo = {
Title: Songinfo.title,
URL: Songinfo.Video_URL,
};
Niba (! Serverqueue) {
Rimwe ku QueueContruct = {
TextChannel: Message.Channel,
VoiceChannel: VoiceChannel,
Isano: null,
Songs: [],
REBA UMUBUMBE WA: 5,
Playing: Ego,
};
queue.set (Message.Guild.ID, QueueContruct);
queuecontruct.songs.push (SONG);
kugerageza {
var isano = tugitegereje voicechannel.join ();
queuecontruct.connection = w'Ukwihuza;
Play (Message.Guild, Queuecontruct.songs [0]);
} Gufata (bayoba) {
Console.log (bayoba);
queue.delete (Message.Guild.ID);
Return Message.Channel.send (bayoba);
}
} Mukamulindwa {
ServerQueue.Songs.push (Indirimbo);
Console.log (Serverqueue.songs);
Return Message.Channel.send ( `$ {Song.title} ko yongeweho ku Umurizo`!);
}
}
Umumaro HITA (Message, Serverqueue) {
niba (message.member.voiceChannel!) Return Message.Channel.send ( 'Ugomba kuba mu Channel Voice guhagarika Music!');
niba (ServerQueue!) Return Message.Channel.send ( 'Nta Indirimbo ngo nshobore Itora!');
ServerQueue.connection.dispatcher.end ();
}
Umumaro guhagarika (Message, Serverqueue) {
niba (message.member.voiceChannel!) Return Message.Channel.send ( 'Ugomba kuba mu Channel Voice guhagarika Music!');
ServerQueue.Songs = [];
ServerQueue.connection.dispatcher.end ();
}
Umumaro Play (Guild, SONG) {
Rimwe ku ServerQueue = queue.get (guild.id);
Niba (! Indirimbo) {
ServerQueue.VoiceChannel.Leave ();
queue.delete (guild.id);
Subira;
}
Rimwe ku Dispatcher = ServerQueue.Connection.PlayStream (YTDL (Song.url))
.ku ( 'Iherezo, () => {
Console.log ( 'Music yarangiye!');
serverqueue.songs.shift ();
Play (Guild, Serverqueue.songs [0]);
})
.ku ( 'ikosa', ikosa => {
Console.error (Ikosa),
});
dispatcher.setvolumelogarithmic (serverqueue.volume / 5);
}
Client.login (ikimenyetso);
Ku kurangiza, ni byiza utangire mu bot, nyuma ushobora kujya Seriveri, Kwihuza Kuri umuyoboro ijwi winjire command cyose hazakomeza ku, kureba uko twakongera gukora kuri bot ku.
Niba hejuru ya bot ya bot idakwiriye kuri wewe, urashobora kubona kode yinkomoko kuri github imwe hanyuma uyikoporora kuri mudasobwa yawe. Ihame ryo kwiyandikisha no gutangiza rikomeje kuba kimwe, niba bibaye ngombwa, gusa guhindura amategeko yuzuye, hanyuma ukomeze kugerageza bot.
Muri iki kiganiro, ntabwo twagize ingaruka kuri bot kuri kwakira, kubikwirakwiza mu bandi bakoresha, bigatuma avatar no gukoresha ahantu hafunguye, aho ishobora kwemererwa. Ibi byose ni inzira zitandukanye zigomba gusezerana gusa mugihe wambaye ubuhanga bwawe kugirango ukore bots kandi biteguye gukwirakwiza imishinga kumurongo.