Îïèñàíèå ïðèíöèïà íàïèñàíèÿ ñêðèïòîâ íà C#

Îáùàÿ èíôîðìàöèÿ

 ïðîãðàììå åñòü íåñêîëüêî ìåñò ãäå ïîääåðæèâàþòñÿ ñêðèïòû.  êàæäîì èç ìåñò èñïîëüçóþòñÿ ðàçíûå àðãóìåíòû. Íî îáùèé ïðèíöèï âåçäå îäèííàêîâûé:
  • Áîò
  • Óäàëåííîå óïðàâëåíèå
  • Êàñòîìíûå ìåòêè

Ïåðå÷åíü äîñòóïíûõ êîëëåêöèé

ChatDB - äàííûå ïî ôîëëîâåðàì, ïîäïèñ÷èêàì, äîíàòó è ïðî÷èå íàêîïèòåëüíûå äàííûåListCounters - ñ÷åò÷èêè
ListFollowers - ñïèñîê ïîäïèñ÷èêîâ
  • public int Index;
  • public DateTime DT;
  • public ProgramProps.SiteEnum Site;
  • public string Name;
  • public bool isTest = false;
* ListSubscribers - ñïèñîê ïëàòíûõ ïîäïèñ÷èêîâ
  • public int Index;
  • public DateTime DT;
  • public ProgramProps.SiteEnum Site;
  • public string Name;
  • public string Text = "";
  • public bool isTest = false;
* ListDonates - ñïèñîê äîíàòîâ, ïî çàïèñÿì
  • public int Index;
  • public DateTime DT;
  • public ProgramProps.SiteEnum Site;
  • public string Name;
  • public float Sum;
  • public string Text;
  • public bool isTest = false;
* ListDonateSum - ïðîñóììèðîâàííûé ñïèñîê
  • public int Index;
  • public ProgramProps.SiteEnum Site;
  • public string Name;
  • public float Sum;
  • public bool isTest = false;
Stats - ñïèñêè ñòàòèñòèêè îíëàéíà
  • OnlineGoodgame
  • OnlineTwitch
  • OnlineCybergame
  • OnlineYoutube
  • OnlineAzubu
  • OnlineHitbox
  • OnlineSum
  • public int Online;
  • public DateTime DT;
Ranks - äàííûå ïî ðàíãàì * ListChatters - äàííûå ïî ÷àòòåðàì
  • public string Nickname = "";
  • public string Rank = "";
  • public int RankOrder = -1;
  • public string RankImage = "";
  • public int MessageQty = 0;
  • public int SubscribeQty = 0;
  • public float DonateQty = 0;
  • public int IndCondition = 0;
  • public int CreditsQty = 0;
  • public bool CondTime = false;
  • public int TimeQty = 0;
  • public int TimeToCredits = 0;
  • public int MessagesToCredits = 0;
* ListConditions - ñòðóêòóðà óñëîâèé ïîëó÷åíèÿ ðàíãà
  • public bool Active = false;
  • public string Rank = "";
  • public int RankOrder = -1;
  • public string RankImage = "";
  • public string RankImagePreview = "";
  • public bool CondMessage = false;
  • public int MessageQty = 0;
  • public bool CondSubscribe = false;
  • public int SubscribeQty = 0;
  • public bool CondDonate = false;
  • public float DonateQty = 0;
Labels - äàííûå ïî ìåòêàì è ïðî÷èå ñòàòèñòè÷åñêèå äàííûå
  • Viewers_Twitch,
  • Viewers_Goodgame,
  • Viewers_Cybergame,
  • Viewers_ReallTV,
  • Viewers_Youtube,
  • Viewers_VIDI,
  • Viewers_All,
  • Followers_Last,
  • Followers_Last_Day,
  • Followers_Last_Week,
  • Followers_Last_Month,
  • Followers_Goal,
  • Followers_Goal_Day,
  • Followers_Goal_Week,
  • Followers_Goal_Month,
  • Subscriber_Last,
  • Subscriber_Last_Day,
  • Subscriber_Last_Week,
  • Subscriber_Last_Month,
  • Subscriber_Goal,
  • Subscriber_Goal_Day,
  • Subscriber_Goal_Week,
  • Subscriber_Goal_Month,
  • Donate_Last,
  • Donate_Last_Day,
  • Donate_Last_Week,
  • Donate_Last_Month,
  • Donate_Top1,
  • Donate_Top1_Day,
  • Donate_Top1_Week,
  • Donate_Top1_Month,
  • Donate_Top2,
  • Donate_Top2_Day,
  • Donate_Top2_Week,
  • Donate_Top2_Month,
  • Donate_Top3,
  • Donate_Top3_Day,
  • Donate_Top3_Week,
  • Donate_Top3_Month,
  • Donate_Top4,
  • Donate_Top4_Day,
  • Donate_Top4_Week,
  • Donate_Top4_Month,
  • Donate_Top5,
  • Donate_Top5_Day,
  • Donate_Top5_Week,
  • Donate_Top5_Month,
  • Donate_Goal,
  • Donate_Goal_Day,
  • Donate_Goal_Week,
  • Donate_Goal_Month,
  • Donate_All,
  • Donate_All_Day,
  • Donate_All_Week,
  • Donate_All_Month,
  • Counter1,
  • Counter2,
  • Counter3,
  • Counter4,
  • Counter5,
  • Counter6,
  • Counter7,
  • Counter8,
  • Counter9,
  • Counter10,
  • CurrentTrack
Other - ïðî÷èå äàííûå êîòîðûå íå óäàåòñÿ êëàññèôèöèðîâàòü íà òåêóùèé ìîìåíò
  • * CurrentTrack

Ñêðèïòû äëÿ áîòà

Äëÿ ñêðèïòîâ èñïîëüçóåòñÿ ïðîñòðàíñòâî èìåí - RutonyChat.
Âûçûâàåìàÿ ôóíêöèÿ èìååò èìÿ RunScript è çàêëþ÷åíà â êëàññ Script.
Àðãóìåíòû:
  • site - èìÿ ñàéòà ñ êîòîðîãî áûë îñóùåñòâåí âûçîâ
  • username - èìÿ âûçâàâøåãî ïîëüçîâàòåëÿ
  • param - äîïîëíèòåëüíàÿ èíôîðìàöèÿ äëÿ òî÷íîé íàñòðîéêè ñêðèïòà ïîëüçîâàòåëåì
Âàæíî. Çàïóñêàåìûé ñêðèïò íè÷åãî íå âîçâðàùàåò. Âñå âûçîâû ïî îòñûëêå ñîîáùåíèé îñóùåñòâÿëåòñÿ ìåòîäàìè
  • RutonyBot.TwitchBot.Say(<string>);
  • RutonyBot.GoodGameBot.Say(<string>);
Âàæíî. Âûçîâ ñêðèïòà îñóùåñòâëÿåòñÿ â òåëå îñíîâíîé ïðîãðàììå. À íå â îòäåëüíîì ïîòîêå. Ïîýòîìó äîñòóïíû âñå êëàññû è êîëëåêöèè ñàìîé ïðîãðàììû, äëÿ ïðÿìîé ðàáîòû ñ íèìè. Ýòî ñëåäóåò ó÷èòûâàòü ïðè ñîçäàíèè ïàóç, îíè äîëæíû áûòü ðåàëèçîâàíû îòäåëüíûìè ïîòîêàìè.
using System; using System.Windows.Forms; namespace RutonyChat { public class Script { public void RunScript(string site, string username, string text, string param) { RutonyBot.TwitchBot.Say(string.Format("Param: {0}", param)); /* Ïðèìåð ïîëó÷÷åíèÿ ðàíãà ïîëüçîâàòåëÿ è âûâîá åãî ñòàòèñòèêè RankControl.ChatterRank cr = RankControl.ListChatters.Find(r => r.Nickname == username); if (cr != null) { RutonyBot.TwitchBot.Say( string.Format("{0} íàïèñàë {1} ñîîáùåíèÿ(é)", username, cr.MessageQty) ); } */ // Âûâîä ñîîáùåíèÿ //MessageBox.Show("Ýòî ñîîáùåíèå îòêðûòî èç ÷àòà :D"); } } }

Ñêðèïòû äëÿ Óäàëåííîãî óïðàâëåíèÿ

Äëÿ ñêðèïòîâ èñïîëüçóåòñÿ ïðîñòðàíñòâî èìåí - RutonyChat.
Âûçûâàåìàÿ ôóíêöèÿ èìååò èìÿ RunScript è çàêëþ÷åíà â êëàññ Script.
Àðãóìåíòû:
  • username - èìÿ âûçâàâøåãî ïîëüçîâàòåëÿ, â ñëó÷àå òðèããåðîâ ïî ñîáûòèþ
  • param - äîïîëíèòåëüíàÿ èíôîðìàöèÿ äëÿ òî÷íîé íàñòðîéêè ñêðèïòà ïîëüçîâàòåëåì, â ñëó÷àå ñ äîíàòîì, òàì áóäåò ñóììà
Âàæíî. Âûçîâ ñêðèïòà îñóùåñòâëÿåòñÿ â òåëå îñíîâíîé ïðîãðàììå. À íå â îòäåëüíîì ïîòîêå. Ïîýòîìó äîñòóïíû âñå êëàññû è êîëëåêöèè ñàìîé ïðîãðàììû, äëÿ ïðÿìîé ðàáîòû ñ íèìè. Ýòî ñëåäóåò ó÷èòûâàòü ïðè ñîçäàíèè ïàóç, îíè äîëæíû áûòü ðåàëèçîâàíû îòäåëüíûìè ïîòîêàìè.
using System; using System.Windows.Forms; namespace RutonyChat { public class Script { public void RunScript(string username, string param) { MessageBox.Show("Ýòî ñîîáùåíèå îòêðûòî èç ÷àòà :D"); } } }

Ñêðèïòû äëÿ êàñòîìíûõ ìåòîê

Äëÿ ñêðèïòîâ èñïîëüçóåòñÿ ïðîñòðàíñòâî èìåí - RutonyChat.
Âûçûâàåìàÿ ôóíêöèÿ èìååò èìÿ RunScript è çàêëþ÷åíà â êëàññ Script.
Àðãóìåíòû:
  • param - äîïîëíèòåëüíàÿ èíôîðìàöèÿ äëÿ òî÷íîé íàñòðîéêè ñêðèïòà ïîëüçîâàòåëåì
Âàæíî. Çàïóñêàåìûé ñêðèïò âîçâðàùàåò çíà÷åíèå êîòîðîå áóäåò ïîìåùåíî â ìåòêó.
Âûçîâ ñêðèïòà îñóùåñòâëÿåòñÿ â òåëå îñíîâíîé ïðîãðàììå. À íå â îòäåëüíîì ïîòîêå. Ïîýòîìó äîñòóïíû âñå êëàññû è êîëëåêöèè ñàìîé ïðîãðàììû, äëÿ ïðÿìîé ðàáîòû ñ íèìè. Ýòî ñëåäóåò ó÷èòûâàòü ïðè ñîçäàíèè ïàóç, îíè äîëæíû áûòü ðåàëèçîâàíû îòäåëüíûìè ïîòîêàìè.
using System; using System.Windows.Forms; namespace RutonyChat { public class Script { public string RunScript(string site, string username, string text, string param) { RutonyBot.TwitchBot.Say(string.Format("Param: {0}", param)); ChatDB.DonateClass LastDon = ChatDB.ChatData.ListDonates.FindLast(r => r.isTest == false); if (LastDon != null) { return LastDon.Name; } } } }
Ïîäåëèòüñÿ
VK Telegram