Advertisement
Guest User

Untitled

a guest
Jul 21st, 2017
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.59 KB | None | 0 0
  1. titles = []
  2.  
  3. for(i=1; i<$(".message").length; i++) {
  4. if($($(".message")[i]).html().indexOf("<") == -1) {
  5. titles.push($($(".message")[i]).html())
  6. }
  7. }
  8.  
  9. var terminals = {};
  10. var startwords = [];
  11. var wordstats = {};
  12.  
  13. for (var i = 0; i < titles.length; i++) {
  14. var words = titles[i].split(' ');
  15. terminals[words[words.length-1]] = true;
  16. startwords.push(words[0]);
  17. for (var j = 0; j < words.length - 1; j++) {
  18. if (wordstats.hasOwnProperty(words[j])) {
  19. wordstats[words[j]].push(words[j+1]);
  20. } else {
  21. wordstats[words[j]] = [words[j+1]];
  22. }
  23. }
  24. }
  25.  
  26. var choice = function (a) {
  27. var i = Math.floor(a.length * Math.random());
  28. return a[i];
  29. };
  30.  
  31. var make_title = function (min_length) {
  32. word = choice(startwords);
  33. var title = [word];
  34. while (wordstats.hasOwnProperty(word)) {
  35. var next_words = wordstats[word];
  36. word = choice(next_words);
  37. title.push(word);
  38. if (title.length > min_length && terminals.hasOwnProperty(word)) break;
  39. }
  40. if (title.length < min_length) return make_title(min_length);
  41. return title.join(' ');
  42. };
  43.  
  44. var markov_app = function (e) {
  45. var message = e.attributes.text;
  46. if (message.indexOf("<" == -1) && e.attributes.name != wgUserName) {
  47. titles.push(message);
  48. }
  49.  
  50. // Recalculate for each new message
  51. var terminals = {};
  52. var startwords = [];
  53. var wordstats = {};
  54.  
  55. for (var i = 0; i < titles.length; i++) {
  56. var words = titles[i].split(' ');
  57. terminals[words[words.length-1]] = true;
  58. startwords.push(words[0]);
  59. for (var j = 0; j < words.length - 1; j++) {
  60. if (wordstats.hasOwnProperty(words[j])) {
  61. wordstats[words[j]].push(words[j+1]);
  62. } else {
  63. wordstats[words[j]] = [words[j+1]];
  64. }
  65. }
  66. }
  67. }
  68.  
  69. mainRoom.sendCustomMessage = function(t) {
  70. if (t.length && t.length <= this.maxCharacterLimit) {
  71. var e = new models.ChatEntry({
  72. roomId: this.roomId,
  73. name: wgUserName,
  74. text: t
  75. });
  76. this.isMain() ? this.socket.send(e.xport()) : ((this.afterInitQueue.length < 1 || this.model.users.length < 2) && this.mainController.socket.send(this.model.privateRoom.xport()), this.isInitialized ? this.socket.send(e.xport()) : (this.afterInitQueue.push(e.xport()), e.set({
  77. temp: !0,
  78. avatarSrc: wgAvatarUrl
  79. }), this.model.chats.add(e))), $("body").removeClass("warn limit-near limit-reached")
  80. }
  81. };
  82.  
  83. markov_repeater = setInterval(function() {
  84. mainRoom.sendCustomMessage(make_title(Math.floor(12 * Math.random()) +1));
  85. }, 30 * 1000);
  86.  
  87. mainRoom.model.chats.bind('afteradd', function(e) {markov_app(e)});
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement