Advertisement
Guest User

Untitled

a guest
Dec 1st, 2016
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.97 KB | None | 0 0
  1. console.log("Bot running...");
  2. var fs = require("fs")
  3. var path = require("path");
  4. var request = require('request');
  5. var tmi = require('tmi.js');
  6. var option = {
  7. option: {
  8. debug: true
  9. },
  10. connection: {
  11. cluster: "aws",
  12. reconnect: true
  13. },
  14. identity: {
  15. username: "belierbot",
  16. password: "oauth:0a59ed5nmg2utqn4jpo678f8fj7256"
  17. },
  18. channels: ["Belier_TV"]
  19. };
  20.  
  21. var client = new tmi.client(option);
  22. client.connect();
  23.  
  24. var modos = ['ChokaPink', 'Mr_Freezeex', 'Zorowen_Sama'];
  25.  
  26. function getRandFromArray(arr) {
  27. return arr[Math.floor(Math.random()*arr.length)];
  28. };
  29.  
  30. client.on("chat", function(channel, user, message, self) {
  31. if(message === "ca va BelierBot ?" || message === "ça va BelierBot ?" || message === "Ca va BelierBot ?") {
  32. client.say("Belier_TV", " Ne me compare pas a Moobot s'il te plait." + " " + user["display-name"] + ".");
  33. return;
  34. }
  35. if(message === "!info" || message === "!?" || message === "!BelierBot") {
  36. client.say("Belier_TV", " Toutes les commandes sont ici : http://belier-tv.fr/info.html");
  37. return;
  38. }
  39. if(message === "!songrequest") {
  40. client.say("Belier_TV", " On est pas chez mémé !");
  41. return;
  42. }
  43. if(message === "Je t'aime Belier_TV") {
  44. client.say("Belier_TV", " Attention, ChokaPink va être jalouse !");
  45. return;
  46. }
  47. if(message === "BelierBot est tu un bot ?") {
  48. client.say("Belier_TV", " Quoi, moi, un bot ? Non... BelierBot has disconnected.");
  49. return;
  50. }
  51. if(message === "Qui suis-je ? ") {
  52. client.say("Belier_TV", " Tu est " + user["display-name"] + ", Tu perd la tête ?");
  53. return;
  54. }
  55. if(message === "Tu fait quoi BelierBot ?") {
  56. client.say("Belier_TV", " Je répond aux curieux comme toi " + user["display-name"]);
  57. return;
  58. }
  59. if(message === "Qui est le meilleur Modo ?" || message === "qui est le meilleur modo ?") {
  60. if (user.mod) {
  61. client.say("Belier_TV", " C'est toi " + " " + user["display-name"] + " tu le sais bien. <3");
  62. } else {
  63. client.say("Belier_TV", " Au hasard, je pense que c'est " + getRandFromArray(modos) + ".");
  64. }
  65. }
  66. if(message === "pute" || message === "salope" || message === "enculé" || message === "fils de pute" || message === "fpd" || message === "putain") {
  67. client.say("Belier_TV", " Pas d'insulte s'il te plait " + user["display-name"]);
  68. return;
  69. }
  70. });
  71.  
  72.  
  73.  
  74. var msg = ["N'oubliez pas de visiter le site : belier-tv.fr", "Rejoignez moi sur Twitter : twitter.com/Belier_TV et sur Facebook : facebook.com/belierTV", "Pensez a Follow pour ne rien louper et profiter pleinement des avantage que cela apporte !", "Pour interagir avec moi => !info"];
  75.  
  76. setInterval(function() {
  77. client.action("Belier_TV", " : " + getRandFromArray(msg));
  78. }, 300000);
  79.  
  80. //............................................................................... RGAPI-f490753d-6a7a-497e-9428-4fd2bd3af27f (Riot api/league-api)
  81.  
  82.  
  83. var league_api = require('league-api');
  84. var league = new league_api('RGAPI-f490753d-6a7a-497e-9428-4fd2bd3af27f');
  85.  
  86. league.getLeagueEntriesBySummonerId('euw', '34869316', function(err, data) {
  87. client.on("chat", function(channel, user, message, self) {
  88. if(message === "!elo") {
  89. client.say("Belier_TV", " : " + (data[34869316][0].entries[0].playerOrTeamName) + " est actuellement " + (data[34869316][0].tier) + " " + (data[34869316][0].entries[0].division) + " " + (data[34869316][0].entries[0].leaguePoints) + " LP")
  90. }
  91. })
  92. });
  93.  
  94. //................................................................................. XP systéme
  95.  
  96. /*
  97. pts start when follow
  98.  
  99. + 15 pts / connexion / live
  100. + 50 pts / dl extention
  101. + 200 pts / sub
  102. + 50 pts / 1€
  103. + 6 pts / 5 msg on chat
  104. ................ DONE
  105. + 1 pts / 30sec
  106. + 1 pts / 1min
  107. + 50 pts / 1h (at lvl 50)
  108. */
  109.  
  110. var users = {
  111. data : [],
  112. getUserData : function(username) {
  113. for (var i = this.data.length - 1; i >= 0; i--)
  114. if (this.data[i].username == username)
  115. return this.data[i];
  116. return null;
  117. },
  118. isInit: function(username) {
  119. return getUserData(username) == null;
  120. },
  121. sort: function() {
  122. this.data.sort(function(a,b) {
  123. return b.points - a.points;
  124. });
  125.  
  126. for (var i = this.data.length - 1; i >= 0; i--)
  127. this.data[i].rank = i+1;
  128. },
  129. addPoint: function(user, points) {
  130. if (user.username == selfName)
  131. return;
  132.  
  133. user.points += points;
  134. user.level += users.isLevelingUp(user);
  135. },
  136. getPointsNeeded: function(level) {
  137. return Math.ceil((level^3)/2);
  138. },
  139. isLevelingUp: function(user) {
  140. return user.points >= users.getPointsNeeded(1+user.level);
  141. },
  142. isIgnoredUser: function(username, self) {
  143. return self || username == "beliertv" || username == "belier-bot";
  144. },
  145. saveToFile: function() {
  146. this.sort();
  147. fs.writeFileSync(path.join(__dirname, "data.json"), JSON.stringify(users.data), "utf8");
  148. },
  149. /* resetXp: function(user) {
  150. if(users.points > uses.getPointNeeded(1+user.level)) {
  151. users.getPointsNeeded() = 0;
  152. }
  153. }, */
  154. loadFromFile: function() {
  155. fs.readFile(path.join(__dirname, "data.json"), "utf8", function(err, data) {
  156. if (err) console.error(err);
  157.  
  158. if(data == "" || data == null)
  159. return;
  160.  
  161. users.data = JSON.parse(data);
  162. });
  163. }
  164. };
  165.  
  166. var selfName = "BelierBot";
  167. var viewers = [];
  168. users.loadFromFile();
  169.  
  170. setInterval(function() {
  171. request('http://tmi.twitch.tv/group/user/belier_tv/chatters', function (error, response, body) {
  172. if (!error && response.statusCode == 200) {
  173. var json = JSON.parse(body);
  174. viewers = json.chatters.viewers.concat(json.chatters.moderators);
  175. }
  176. })
  177. }, 1000);
  178.  
  179. setInterval(function() {
  180. for (var i = viewers.length - 1; i >= 0; i--) {
  181. var user = users.getUserData(viewers[i]);
  182. if (user != null)
  183. users.addPoint(user, 3);
  184. }
  185. users.sort();
  186. }, 60000);
  187.  
  188.  
  189. client.on("join", function (channel, username, self) {
  190.  
  191. if (users.isIgnoredUser(username, self))
  192. return;
  193.  
  194. var user = users.getUserData(username);
  195.  
  196. if (user == null)
  197. users.data.push({
  198. username : username,
  199. points: 0,
  200. level: 1,
  201. rank: users.data.length
  202. });
  203. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement