Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- titles = []
- for(i=1; i<$(".message").length; i++) {
- if($($(".message")[i]).html().indexOf("<") == -1) {
- titles.push($($(".message")[i]).html())
- }
- }
- var terminals = {};
- var startwords = [];
- var wordstats = {};
- for (var i = 0; i < titles.length; i++) {
- var words = titles[i].split(' ');
- terminals[words[words.length-1]] = true;
- startwords.push(words[0]);
- for (var j = 0; j < words.length - 1; j++) {
- if (wordstats.hasOwnProperty(words[j])) {
- wordstats[words[j]].push(words[j+1]);
- } else {
- wordstats[words[j]] = [words[j+1]];
- }
- }
- }
- var choice = function (a) {
- var i = Math.floor(a.length * Math.random());
- return a[i];
- };
- var make_title = function (min_length) {
- word = choice(startwords);
- var title = [word];
- while (wordstats.hasOwnProperty(word)) {
- var next_words = wordstats[word];
- word = choice(next_words);
- title.push(word);
- if (title.length > min_length && terminals.hasOwnProperty(word)) break;
- }
- if (title.length < min_length) return make_title(min_length);
- return title.join(' ');
- };
- var markov_app = function (e) {
- var message = e.attributes.text;
- if (message.indexOf("<" == -1) && e.attributes.name != wgUserName) {
- titles.push(message);
- }
- // Recalculate for each new message
- var terminals = {};
- var startwords = [];
- var wordstats = {};
- for (var i = 0; i < titles.length; i++) {
- var words = titles[i].split(' ');
- terminals[words[words.length-1]] = true;
- startwords.push(words[0]);
- for (var j = 0; j < words.length - 1; j++) {
- if (wordstats.hasOwnProperty(words[j])) {
- wordstats[words[j]].push(words[j+1]);
- } else {
- wordstats[words[j]] = [words[j+1]];
- }
- }
- }
- }
- mainRoom.sendCustomMessage = function(t) {
- if (t.length && t.length <= this.maxCharacterLimit) {
- var e = new models.ChatEntry({
- roomId: this.roomId,
- name: wgUserName,
- text: t
- });
- 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({
- temp: !0,
- avatarSrc: wgAvatarUrl
- }), this.model.chats.add(e))), $("body").removeClass("warn limit-near limit-reached")
- }
- };
- markov_repeater = setInterval(function() {
- mainRoom.sendCustomMessage(make_title(Math.floor(12 * Math.random()) +1));
- }, 30 * 1000);
- mainRoom.model.chats.bind('afteradd', function(e) {markov_app(e)});
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement