ghpwsmsdqfskqodsa

Piłsudski mówi głosem anonów

Nov 11th, 2020 (edited)
727
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function randomcharacter(list) {
  2.     var keys = Object.keys(list);
  3.     var random = Math.floor(Math.random() * (keys.length));
  4.     return list[keys[random]];
  5. }
  6.  
  7. var character_list = {
  8.     pilsudski: {
  9.         url: "https://i.imgur.com/BFERwbz.png",
  10.         width: 280,
  11.         height: 294
  12.     },
  13.  
  14.     dmowski: {
  15.         // url: "https://i.imgur.com/tQRC7Rt.png",
  16.         url: "https://i.imgur.com/4Sq9ud2.png", // wersja z wygładzonym bokiem
  17.         width: 228,
  18.         height: 284
  19.     },
  20.  
  21.     paderewski: {
  22.         url: "https://i.imgur.com/ANVJUhk.png",
  23.         // url: "https://i.imgur.com/noURYPy.png", // inne zdjęcie
  24.         width: 214,
  25.         height: 281
  26.     },
  27. }
  28.  
  29. var last_character_url = "";
  30.  
  31. function insertpilsudski(character_list, randomCharacter=false) {
  32.     dialog = document.createElement('div');
  33.     dialog.classList.add("postac_czerwona_dialog");
  34.  
  35.     if(randomCharacter) {
  36.         var character = randomcharacter(character_list);
  37.         last_character_url = character.url;
  38.     }
  39.     else
  40.         var character = character_list.pilsudski; // domyślna postać
  41.  
  42.     dialog.style.cssText = `
  43.     position: fixed;
  44.     bottom: ${character.height+20}px;
  45.     right: 65px;
  46.     width:250px;
  47.     color: #030303;
  48.     background-color: #d4c0a6;
  49.     padding: 6px;
  50.     border-radius: 4px;
  51.     box-shadow: 2px 2px 4px #000000;
  52.     `;
  53.  
  54.     pil = document.createElement('div');
  55.     pil.classList.add("postac_czerwona");
  56.  
  57.     pil.style.cssText = `
  58.     position: fixed;
  59.     bottom: 0px;
  60.     right: 85px;
  61.     width: ${character.width}px;
  62.     height: ${character.height}px;
  63.     background: url("${character.url}");
  64.     `;
  65.  
  66.     /* ponowne losowanie posta po kliknięciu na dymek */
  67.     dialog.addEventListener("click", insertrandompost);
  68.     dialog.style.cursor =  "pointer";
  69.  
  70.     /* ponowne losowanie postaci po kliknięciu */
  71.     if(randomCharacter) {
  72.         pil.addEventListener("click", changecharacter);
  73.         pil.style.cursor = "pointer";
  74.     }
  75.  
  76.     document.body.appendChild(pil);
  77.     document.body.appendChild(dialog);
  78. }
  79.  
  80. function randompost() {
  81.     var posts = document.querySelectorAll('.post:not(#quote-preview)');
  82.     var random = Math.floor(Math.random() * (posts.length));
  83.  
  84.     post = posts[random].querySelector('.postMessage').innerText;
  85.     post = post.replace(/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)/g, ''); // usuwanie linków
  86.     post = post.replace(/>>(\/[.+]+\/)?[0-9]{1,9}( \(OP\))?/g, ''); // usuwanie backlinków
  87.     post = post.replace(/&/g, '&amp;').replace(/</g, '&lt;'); // zamiana tagów html
  88.     post = post.replace(/(^>.*)/gm, '<span style="color:#4f6a07">$1</span>'); // zielone strzałki
  89.     post = post.replace(/^\s+|\s+$/g, ''); // usuwanie enterów na początku
  90.     post = post.replace(/(\r\n|\r|\n){2,}/g, '$1\n'); // usuwanie nadmiarowych enterów
  91.     post = post.replace(/(?:\r\n|\r|\n)/g, '<br>'); // dodanie enterów do html
  92.  
  93.     return post;
  94. }
  95.  
  96. function insertrandompost() {
  97.     post = randompost();
  98.     i = 0
  99.     while(post == '' || post.length > 650) {
  100.         if(i >= 200) {
  101.             post = "Nie mam nic do powiedzenia.";
  102.             break;
  103.         }
  104.         post = randompost();
  105.         i++;
  106.     }
  107.     dialog.innerHTML = post;
  108. }
  109.  
  110. function changecharacter() {
  111.     var character = randomcharacter(character_list);
  112.  
  113.     while(character.url == last_character_url) { // zapobieganie duplikatom
  114.         var character = randomcharacter(character_list);
  115.     }
  116.  
  117.     var char_box = document.querySelector('.postac_czerwona');
  118.     var dialog = document.querySelector('.postac_czerwona_dialog');
  119.    
  120.     char_box.style.width = `${character.width}px`;
  121.     char_box.style.height = `${character.height}px`;
  122.     char_box.style.background = `url("${character.url}")`;
  123.     dialog.style.bottom = `${character.height+20}px`;
  124.  
  125.     last_character_url = character.url;
  126. }
  127.  
  128. window.onload = () => {
  129.     if(document.querySelector('.post:not(#quote-preview)') != null) {
  130.         insertpilsudski(character_list, randomCharacter=true);
  131.         insertrandompost();
  132.     }
  133. }
Advertisement
Add Comment
Please, Sign In to add comment