Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2017
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. input_field_id = "im_editable2000000120";
  2. dialog_url = "https://vk.com/im?sel=c120";
  3.  
  4. // Checks if the message is the task.
  5. function check(message) {
  6.     return (message.indexOf(") Подсказка: ") != -1)
  7. }
  8.  
  9. // From the bare HTML returns message text.
  10. function get_message_text(msg) {
  11.     while (msg.indexOf("<br>") != -1) {
  12.         msg = msg.replace("<br>", " ");
  13.     }
  14.     // Because VK developers are shit.
  15.     if (msg[0] == "<") {  // Old message type
  16.         msg = msg.slice(1);
  17.         return msg.slice(msg.indexOf(">") + 1, msg.indexOf("<"));
  18.     } else {              // New message type
  19.         return msg.slice(0, msg.indexOf("<"));
  20.     }
  21. }
  22.  
  23. // Returns 4 probable answers for the task.
  24. function get_answers(message) {
  25.     url = "http://baza-otvetov.ru/search/view/?q=";
  26.    
  27.     var xmlHttp = new XMLHttpRequest();
  28.     xmlHttp.open("GET", url + encodeURIComponent(message), false);
  29.     xmlHttp.send();
  30.    
  31.     res = xmlHttp.responseText;
  32.    
  33.     if (res.indexOf("По вашему запросу ничего не найдено") != -1) {
  34.         return "Nothing found";
  35.     }
  36.    
  37.     var answers = [];
  38.     for (var i = 0; i < 4; i++) {
  39.         res = res.slice(res.indexOf("Ответ: "));
  40.         ans = res.slice(14, res.indexOf("</h"));
  41.         answers.push(ans);
  42.         res = res.slice(res.indexOf("</h"));
  43.     }
  44.  
  45.     return answers;
  46. }
  47.  
  48. // Checks if any answer fits the task.
  49. function get_answer(message, answers) {
  50.     var len = message.split("•").length;
  51.     var fchar = message[message.indexOf("Подсказка: ") + 11];
  52.     for (var i = 0; i < 4; i++) {
  53.         if (answers[i][0] == fchar && answers[i].length == len) {
  54.             return answers[i];
  55.         }
  56.     }
  57.     return "";
  58. }
  59.  
  60. function pull_messages() {
  61.     var last_messages = document.getElementsByClassName("im-mess--text");
  62.     var last_message = get_message_text(last_messages[last_messages.length - 1].innerHTML);
  63.    
  64.     if (last_message != prev_message) {
  65.         prev_message = last_message;
  66.         if (check(last_message)) {
  67.             var answers = get_answers(last_message);
  68.             console.log("New problem. Answers: " + answers);
  69.            
  70.             var ans = get_answer(last_message, answers);
  71.             im = document.getElementById(input_field_id);
  72.             im.innerHTML = ans;
  73.         }
  74.     }
  75.    
  76.     if (document.URL == dialog_url) {
  77.         setTimeout(pull_messages, 200);
  78.     }
  79. }
  80.  
  81.  
  82. prev_message = "";
  83. if (document.URL == dialog_url) {
  84.     pull_messages();
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement