X to Wired

Replace 𝕏 to Wired(Inspired by Serial Experiments Lain).Tampermonkey userscript ONLY.

  1. // ==UserScript==
  2. // @name X to Wired
  3. // @description Replace 𝕏 to Wired(Inspired by Serial Experiments Lain).Tampermonkey userscript ONLY.
  4. // @namespace NTE
  5. // @version 3.0.0
  6. // @author Origin:yakisova41 Fork:NTE
  7. // @match https://Twitter.com/*
  8. // @match https://X.com/*
  9. // @icon https://www.google.com/s2/favicons?sz=64&domain=fauux.neocities.org
  10. // @grant unsafeWindow
  11. // @run-at document-start
  12. // @license MIT
  13. // ==/UserScript==
  14. "use strict";
  15.  
  16. const paths = {
  17. xLogoPath:
  18. "M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z",
  19. loadingXLogoPath:
  20. "M14.258 10.152L23.176 0h-2.113l-7.747 8.813L7.133 0H0l9.352 13.328L0 23.973h2.113l8.176-9.309 6.531 9.309h7.133zm-2.895 3.293l-.949-1.328L2.875 1.56h3.246l6.086 8.523.945 1.328 7.91 11.078h-3.246zm0 0",
  21. birdPath:
  22. "M10.6248 7.5891h3.0356v1.5178h1.5178v3.0356h-1.5178v1.5178h-3.0356v-1.5178h-1.5178v-3.0356h1.5178zm3.0356 7.5891h1.5178v7.5891h-1.5178zm-4.5535 0h1.5178v7.5891h-1.5178zm12.1426 1.5178h3.0356v3.0356h-3.0356zM0 16.6961h3.0356v3.0356H0zm16.6961-9.1069h1.5178v6.0713h-1.5178zm-10.6248 0h1.5178v6.0713h-1.5178zm3.0356-3.0356h6.0713v1.5178H9.1069zm1.5178-4.5535h3.0356v3.0356h-3.0356zm4.5535 22.7674h3.0356v1.5178h-3.0356zm-9.1069 0h3.0356v1.5178h-3.0356zm16.6961-13.6604h1.5178v3.0356h-1.5178zM0 9.1069h1.5178v3.0356H0zm18.2139 12.1426h1.5178v1.5178h-1.5178zm-13.6604 0h1.5178v1.5178h-1.5178zm13.6604-6.0713h1.5178v1.5178h-1.5178zm-13.6604 0h1.5178v1.5178h-1.5178zm15.1782-1.5178h1.5178v1.5178h-1.5178zm-4.5535 0h1.5178v1.5178h-1.5178zm-7.5891 0h1.5178v1.5178h-1.5178zM3.0356 13.6604h1.5178v1.5178H3.0356zm18.2139-1.5178h1.5178v1.5178h-1.5178zM1.5178 12.1426h1.5178v1.5178H1.5178zm19.7317-4.5535h1.5178v1.5178h-1.5178zM1.5178 7.5891h1.5178v1.5178H1.5178zm18.2139-1.5178h1.5178v1.5178h-1.5178zm-4.5535 0h1.5178v1.5178h-1.5178zm-7.5891 0h1.5178v1.5178h-1.5178zM3.0356 6.0713h1.5178v1.5178H3.0356zm15.1782-1.5178h1.5178v1.5178h-1.5178zm-13.6604 0h1.5178v1.5178h-1.5178z",
  23. verifiedPath:
  24. "M8.52 3.59c.8-1.1 2.04-1.84 3.48-1.84s2.68.74 3.49 1.84c1.34-.21 2.74.14 3.76 1.16s1.37 2.42 1.16 3.77c1.1.8 1.84 2.04 1.84 3.48s-.74 2.68-1.84 3.48c.21 1.34-.14 2.75-1.16 3.77s-2.42 1.37-3.76 1.16c-.8 1.1-2.05 1.84-3.49 1.84s-2.68-.74-3.48-1.84c-1.34.21-2.75-.14-3.77-1.16-1.01-1.02-1.37-2.42-1.16-3.77-1.09-.8-1.84-2.04-1.84-3.48s.75-2.68 1.84-3.48c-.21-1.35.14-2.75 1.16-3.77s2.43-1.37 3.77-1.16zm3.48.16c-.85 0-1.66.53-2.12 1.43l-.38.77-.82-.27c-.96-.32-1.91-.12-2.51.49-.6.6-.8 1.54-.49 2.51l.27.81-.77.39c-.9.46-1.43 1.27-1.43 2.12s.53 1.66 1.43 2.12l.77.39-.27.81c-.31.97-.11 1.91.49 2.51.6.61 1.55.81 2.51.49l.82-.27.38.77c.46.9 1.27 1.43 2.12 1.43s1.66-.53 2.12-1.43l.39-.77.82.27c.96.32 1.9.12 2.51-.49.6-.6.8-1.55.48-2.51l-.26-.81.76-.39c.91-.46 1.43-1.27 1.43-2.12s-.52-1.66-1.43-2.12l-.77-.39.27-.81c.32-.97.12-1.91-.48-2.51-.61-.61-1.55-.81-2.51-.49l-.82.27-.39-.77c-.46-.9-1.27-1.43-2.12-1.43zm4.74 5.68l-6.2 6.77-3.74-3.74 1.41-1.42 2.26 2.26 4.8-5.23 1.47 1.36z",
  25. homePath:
  26. "M21.591 7.146L12.52 1.157c-.316-.21-.724-.21-1.04 0l-9.071 5.99c-.26.173-.409.456-.409.757v13.183c0 .502.418.913.929.913h6.638c.511 0 .929-.41.929-.913v-7.075h3.008v7.075c0 .502.418.913.929.913h6.639c.51 0 .928-.41.928-.913V7.904c0-.301-.158-.584-.408-.758zM20 20l-4.5.01.011-7.097c0-.502-.418-.913-.928-.913H9.44c-.511 0-.929.41-.929.913L8.5 20H4V8.773l8.011-5.342L20 8.764z",
  27. homeActivePath:
  28. "M21.591 7.146L12.52 1.157c-.316-.21-.724-.21-1.04 0l-9.071 5.99c-.26.173-.409.456-.409.757v13.183c0 .502.418.913.929.913H9.14c.51 0 .929-.41.929-.913v-7.075h3.909v7.075c0 .502.417.913.928.913h6.165c.511 0 .929-.41.929-.913V7.904c0-.301-.158-.584-.408-.758z",
  29. oldHomePath:
  30. "M12 9c-2.209 0-4 1.791-4 4s1.791 4 4 4 4-1.791 4-4-1.791-4-4-4zm0 6c-1.105 0-2-.895-2-2s.895-2 2-2 2 .895 2 2-.895 2-2 2zm0-13.304L.622 8.807l1.06 1.696L3 9.679V19.5C3 20.881 4.119 22 5.5 22h13c1.381 0 2.5-1.119 2.5-2.5V9.679l1.318.824 1.06-1.696L12 1.696zM19 19.5c0 .276-.224.5-.5.5h-13c-.276 0-.5-.224-.5-.5V8.429l7-4.375 7 4.375V19.5z",
  31. oldHomeActivePath:
  32. "M12 1.696L.622 8.807l1.06 1.696L3 9.679V19.5C3 20.881 4.119 22 5.5 22h13c1.381 0 2.5-1.119 2.5-2.5V9.679l1.318.824 1.06-1.696L12 1.696zM12 16.5c-1.933 0-3.5-1.567-3.5-3.5s1.567-3.5 3.5-3.5 3.5 1.567 3.5 3.5-1.567 3.5-3.5 3.5z"
  33. };
  34.  
  35. const colors = {
  36. WiredColor: "rgb(210,115,138)",
  37. loadingBirdColor: "rgba(210,115,138,1.00)",
  38. };
  39.  
  40. // prettier-ignore
  41. const i18n = {"ar-x-fm":{"f70a36d0":"تغريد الكل","d25289b4":"مُعاد تغريدها بواسطة","bab1f8b0":"التغريدات","h99e9c95":"return[\"قام \",\" بإعادة تغريدها\"]","d2c7a41c":"غرّدي ردَكِ","e2414184":"return\"تغريد\"+n(e.count,\"ات\",\"ة\",\"ة\",\"ة\",\"تا\",\"ة\")+\" اقتباس\"","hb7b0cea":"return e.retweetCount+\" إعاد\"+n(e.retweetCount,\"ات\",\"ة\",\"ة\",\"ة\",\"تا\",\"ة\")+\" تغريد\"","bd7c039f":"تغريدات اقتباس","bea869b3":"غرّدي","hdf72269":"ردّ","e349147b":"ماذا يحدث؟","f3bbbb87":"التراجع عن التغريدة","c9d7235d":"اقتباس التغريدة","d6c85149":"إعادة التغريد","d91695cb":"return e.fullName+\" (@\"+e.screenName+\") غرّد:\\n\"+e.tweet","d6917e0c":"return\"عرض \"+e.count+\" تغريد\"+n(e.count,\"ات\",\"ة\",\"ة\",\"ة\",\"تين\",\"ة\")","e2414185":null,"hb7b0ceb":null,"bd7c0390":null,"bea869b4":null,"d17df548":null,"e349147c":null,"fa9ce7f4":null,"c9d7235e":null,"d6c8514a":null,"d6917e0d":null},"bg":{"f70a36d0":"Туитване на всички","d25289b4":"Ретуитнат от","bab1f8b0":"Туитове","h99e9c95":"return[\"\",\" ретуитна\"]","d2c7a41c":"Отговори с туит","e2414184":"return\"\"+n(e.count,\"Цитиране на туита\",\"Туитове с цитат\")","hb7b0cea":"return e.retweetCount+\" ретуит\"+n(e.retweetCount,\"\",\"а\")","bd7c039f":"Туитове с цитат","bea869b3":"Туит","hdf72269":"Отговор","e349147b":"Какво се случва?","f3bbbb87":"Отмяна на ретуитването","c9d7235d":"Цитиране на туита","d6c85149":"Ретуитване","d91695cb":"return e.fullName+\" (@\"+e.screenName+\") Tweeted:\\n\"+e.tweet","d6917e0c":"return\"Показване на \"+e.count+\" туит\"+n(e.count,\"\",\"а\")","e2414185":null,"hb7b0ceb":null,"bd7c0390":null,"bea869b4":null,"d17df548":null,"e349147c":null,"fa9ce7f4":null,"c9d7235e":null,"d6c8514a":null,"d6917e0d":null},"bn":{"f70a36d0":"সব টুইট করুন","d25289b4":"পুনঃ টুইট করেছেন","bab1f8b0":"টুইটগুলি","h99e9c95":"return[\"\",\" পুনঃ টুইট করেছেন\"]","d2c7a41c":"আপনার উত্তর টুইট করুন","e2414184":"return\"টুইট উদ্ধৃত\"+a(e.count,\" করুন\",\"িগুলো\")","hb7b0cea":"return e.retweetCount+\" পুনঃ\"+a(e.retweetCount,\" টুইট করুন\",\"টুইটগুলো\")","bd7c039f":"টুইট উদ্ধৃতিগুলো","hdf72269":"উত্তর","e349147b":"কী ঘটছে?","f3bbbb87":"পুনঃ টুইট পুর্বাবস্থায় ফেরান","c9d7235d":"টুইট উদ্ধৃত করুন","d6c85149":"পুনঃটুইট","d91695cb":"return e.fullName+\" (@\"+e.screenName+\") টুইট করেছেন: \"+e.tweet","d6917e0c":"return e.count+\" টুইট\"+a(e.count,\"\",\"গুলো\")+\" দেখান\"","e2414185":null,"hb7b0ceb":null,"bd7c0390":null,"bea869b4":null,"bea869b3":null,"d17df548":null,"e349147c":null,"fa9ce7f4":null,"c9d7235e":null,"d6c8514a":null,"d6917e0d":null},"ca":{"f70a36d0":"Tuita-ho tot","d25289b4":"Retuitat per","bab1f8b0":"Tuits","h99e9c95":"return[\"\",\" ha retuitat\"]","d2c7a41c":"Tuita una resposta","e2414184":"return\"\"+r(e.count,\"Cita el tuit\",\"Tuits amb cita\")","hb7b0cea":"return e.retweetCount+\" Retuit\"+r(e.retweetCount,\"\",\"s\")","bd7c039f":"Tuits amb cita","bea869b3":"Tuita","hdf72269":"Respon","e349147b":"Què passa?","f3bbbb87":"Desfés el retuit","c9d7235d":"Cita el tuit","d6c85149":"Retuit","d91695cb":"return e.fullName+\" (@\"+e.screenName+\") ha tuitat: \"+e.tweet","d6917e0c":"return\"Mostra \"+e.count+\" Tuit\"+r(e.count,\"\",\"s\")","e2414185":null,"hb7b0ceb":null,"bd7c0390":null,"bea869b4":null,"d17df548":null,"e349147c":null,"fa9ce7f4":null,"c9d7235e":null,"d6c8514a":null,"d6917e0d":null},"cs":{"f70a36d0":"Tweetnout vše","d25289b4":"Retweetnuto uživateli","bab1f8b0":"Tweety","h99e9c95":"return[\"Uživatel \",\" retweetnul\"]","d2c7a41c":"Tweetnout odpověď","e2414184":"return\"\"+n(e.count,\"Tweety s citací\",\"Tweety s citací\",\"Citovat Tweet\",\"Tweety s citací\")","hb7b0cea":"return e.retweetCount+\" Retweet\"+n(e.retweetCount,\"y\",\"y\",\"\",\"ů\")","bd7c039f":"Tweety s citací","bea869b3":"Tweet","hdf72269":"Odpovědět","e349147b":"Co se právě děje?","f3bbbb87":"Zrušit Retweet","c9d7235d":"Citovat Tweet","d6c85149":"Retweetnout","d91695cb":"return\"Uživatel \"+e.fullName+\" (@\"+e.screenName+\") tweetnul: \"+e.tweet","d6917e0c":"return\"Ukázat \"+e.count+\" \"+n(e.count,\"tweety\",\"tweety\",\"Tweet\",\"tweetů\")","e2414185":null,"hb7b0ceb":null,"bd7c0390":null,"bea869b4":null,"d17df548":null,"e349147c":null,"fa9ce7f4":null,"c9d7235e":null,"d6c8514a":null,"d6917e0d":null},"da":{"f70a36d0":"Tweet alt","d25289b4":"Retweetet af","bab1f8b0":"Tweets","h99e9c95":"return[\"\",\" retweetede\"]","d2c7a41c":"Tweet dit svar","e2414184":"return\"Cit\"+i(e.count,\"ér Tweet\",\"at-Tweets\")","hb7b0cea":"return e.retweetCount+\" Retweet\"+i(e.retweetCount,\"\",\"s\")","bd7c039f":"Citat-Tweets","bea869b3":"Tweet","hdf72269":"Svar","e349147b":"Hvad sker der?","f3bbbb87":"Fortryd Retweet","c9d7235d":"Citér Tweet","d6c85149":"Retweet","d91695cb":"return e.fullName+\" (@\"+e.screenName+\") tweetede: \"+e.tweet","d6917e0c":"return\"Vis \"+e.count+\" Tweet\"+i(e.count,\"\",\"s\")","e2414185":null,"hb7b0ceb":null,"bd7c0390":null,"bea869b4":null,"d17df548":null,"e349147c":null,"fa9ce7f4":null,"c9d7235e":null,"d6c8514a":null,"d6917e0d":null},"de":{"f70a36d0":"Alle Wiredn","d25289b4":"Retweetet von","bab1f8b0":"Tweets","h99e9c95":"return[\"\",\" hat retweetet\"]","d2c7a41c":"Wirede deine Antwort","e2414184":"return\"\"+r(e.count,\"Tweet zitieren\",\"Zitierte Tweets\")","hb7b0cea":"return e.retweetCount+\" Retweet\"+r(e.retweetCount,\"\",\"s\")","bd7c039f":"Zitierte Tweets","bea869b3":"Wiredn","hdf72269":"Antworten","e349147b":"Was gibt's Neues?","f3bbbb87":"Retweet rückgängig machen","c9d7235d":"Tweet zitieren","d6c85149":"Retweeten","d91695cb":"return e.fullName+\" (@\"+e.screenName+\") Tweeted:\\n\"+e.tweet","d6917e0c":"return e.count+\" Tweet\"+r(e.count,\"\",\"s\")+\" anzeigen\"","e2414185":null,"hb7b0ceb":null,"bd7c0390":null,"bea869b4":null,"d17df548":null,"e349147c":null,"fa9ce7f4":null,"c9d7235e":null,"d6c8514a":null,"d6917e0d":null},"el":{"f70a36d0":"Δημοσίευση όλων ως Tweet","d25289b4":"Έγινε Retweet από","bab1f8b0":"Tweet","h99e9c95":"return[\"Ο χρήστης \",\" έκανε Retweet\"]","d2c7a41c":"Κάντε Tweet με την απάντησή σας","e2414184":"return\"\"+n(e.count,\"Παράθεση Tweet\",\"Tweet με παράθεση\")","hb7b0cea":"return e.retweetCount+\" Retweet\"","bd7c039f":"Tweet με παράθεση","bea869b3":"Tweet","hdf72269":"Απάντηση","e349147b":"Τι συμβαίνει;","f3bbbb87":"Αναίρεση Retweet","c9d7235d":"Παράθεση Tweet","d6c85149":"Retweet","d91695cb":"return\"Ο χρήστης \"+e.fullName+\" (@\"+e.screenName+\") έγραψε το Tweet: \"+e.tweet","d6917e0c":"return\"Εμφάνιση \"+e.count+\" Tweet\"","e2414185":null,"hb7b0ceb":null,"bd7c0390":null,"bea869b4":null,"d17df548":null,"e349147c":null,"fa9ce7f4":null,"c9d7235e":null,"d6c8514a":null,"d6917e0d":null},"en-GB":{"f70a36d0":"Tweet all","d25289b4":"Retweeted by","bab1f8b0":"Tweets","h99e9c95":"return[\"\",\" Retweeted\"]","d2c7a41c":"Tweet your reply","e2414184":"return\"Quote Tweet\"+n(e.count,\"\",\"s\")","hb7b0cea":"return e.retweetCount+\" Retweet\"+n(e.retweetCount,\"\",\"s\")","bd7c039f":"Quote Tweets","bea869b3":"Tweet","hdf72269":"Reply","e349147b":"Let's all love Lain.","e349147c":"Let's all love Lain.","f3bbbb87":"Undo Retweet","c9d7235d":"Quote Tweet","d6c85149":"Retweet","d91695cb":"return e.fullName+\" (@\"+e.screenName+\") Tweeted: \"+e.tweet","d6917e0c":"return\"Show \"+e.count+\" Tweet\"+n(e.count,\"\",\"s\")","e2414185":null,"hb7b0ceb":null,"bd7c0390":null,"bea869b4":null,"d17df548":null,"e349147c":null,"fa9ce7f4":null,"c9d7235e":null,"d6c8514a":null,"d6917e0d":null},"en":{"f70a36d0":"Tweet all","d25289b4":"Retweeted by","bab1f8b0":"Tweets","h99e9c95":"return[\"\",\" Retweeted\"]","d2c7a41c":"Tweet your reply","e2414185":"return\"Quote Tweet\"+n(e.count,\"\",\"s\")","hb7b0ceb":"return e.retweetCount+\" Retweet\"+n(e.retweetCount,\"\",\"s\")","bd7c0390":"Quote Tweets","bea869b4":"Tweet","d17df548":"Reply","e349147b":"Let's all love Lain.","e349147c":"Let's all love Lain.","fa9ce7f4":"Undo Retweet","c9d7235e":"Quote Tweet","d6c8514a":"Retweet","d91695cb":"return e.fullName+\" (@\"+e.screenName+\") Tweeted:\\n\"+e.tweet","d6917e0d":"return\"Show \"+e.count+\" Tweet\"+n(e.count,\"\",\"s\")","e2414184":null,"hb7b0cea":null,"bd7c039f":null,"bea869b3":null,"hdf72269":null,"e349147b":null,"f3bbbb87":null,"c9d7235d":null,"d6c85149":null,"d6917e0c":null},"es":{"f70a36d0":"Twittear todo","d25289b4":"Retwitteado por","bab1f8b0":"Tweets","h99e9c95":"return[\"\",\" lo retwitteó\"]","d2c7a41c":"Twittea tu respuesta","e2414184":"return\"\"+r(e.count,\"Citar Tweet\",\"Tweets citados\")","hb7b0cea":"return e.retweetCount+\" Retweet\"+r(e.retweetCount,\"\",\"s\")","bd7c039f":"Tweets citados","bea869b3":"Twittear","hdf72269":"Responder","e349147b":"¿Qué está pasando?","f3bbbb87":"Deshacer Retweet","c9d7235d":"Citar Tweet","d6c85149":"Retwittear","d91695cb":"return e.fullName+\" (@\"+e.screenName+\") twitteó: \"+e.tweet","d6917e0c":"return\"Mostrar \"+e.count+\" Tweet\"+r(e.count,\"\",\"s\")","e2414185":null,"hb7b0ceb":null,"bd7c0390":null,"bea869b4":null,"d17df548":null,"e349147c":null,"fa9ce7f4":null,"c9d7235e":null,"d6c8514a":null,"d6917e0d":null},"fa":{"f70a36d0":"توییت به همه","d25289b4":"بازتوییت‌ شد توسط","bab1f8b0":"توييت‌ها","h99e9c95":"return[\"\",\" بازتوییت کرد\"]","d2c7a41c":"پاسختان را توییت کنید","e2414184":"return\"نقل‌توییت\"","hb7b0cea":"return e.retweetCount+\" بازتوییت\"","bd7c039f":"نقل‌توییت‌ها","bea869b3":"توییت","hdf72269":"پاسخ","e349147b":"چه خبر است؟","f3bbbb87":"لغو بازتوییت","c9d7235d":"نقل‌توییت","d6c85149":"بازتوییت","d91695cb":"return e.fullName+\" (@\"+e.screenName+\") توییت کرد: \"+e.tweet","d6917e0c":"return\"نمایش \"+e.count+\" تو\"+f(e.count,\"یی\",\"يي\")+\"ت\"","e2414185":null,"hb7b0ceb":null,"bd7c0390":null,"bea869b4":null,"d17df548":null,"e349147c":null,"fa9ce7f4":null,"c9d7235e":null,"d6c8514a":null,"d6917e0d":null},"eu":{"f70a36d0":"Txiotu guztiak","d25289b4":"Bertxiotua:","bab1f8b0":"Txioak","h99e9c95":"return[\"\",\" erabiltzaileak bertxiotu du\"]","d2c7a41c":"Txiokatu erantzuna","e2414184":"return\"Quote Tweet\"+n(e.count,\"\",\"s\")","hb7b0cea":"return e.retweetCount+\" bertxio\"","bd7c039f":"Aipatu txioak","bea869b3":"Txio","hdf72269":"Erantzun","e349147b":"Zer ari da gertatzen?","f3bbbb87":"Desegin birtxiokatzea","c9d7235d":"Txioa apaitu","d6c85149":"Bertxiotu","d91695cb":"return e.fullName+\"(e)k (@\"+e.screenName+\") Txiokatu du: \"+e.tweet","d6917e0c":"return\"Show \"+e.count+\" Tweet\"+n(e.count,\"\",\"s\")","e2414185":null,"hb7b0ceb":null,"bd7c0390":null,"bea869b4":null,"d17df548":null,"e349147c":null,"fa9ce7f4":null,"c9d7235e":null,"d6c8514a":null,"d6917e0d":null},"fi":{"f70a36d0":"Twiittaa kaikki","d25289b4":"Uudelleentwiitannut","bab1f8b0":"Twiitit","h99e9c95":"return[\"\",\" uudelleentwiittasi\"]","d2c7a41c":"Twiittaa vastauksesi","bd7c039f":"Twiitin lainaukset","bea869b3":"Twiittaa","hdf72269":"Vastaa","e349147b":"Mitä tapahtuu?","f3bbbb87":"Kumoa uudelleentwiittaus","c9d7235d":"Twiitin lainaus","d6c85149":"Uudelleentwiittaa","e2414184":null,"e2414185":null,"hb7b0ceb":null,"hb7b0cea":null,"bd7c0390":null,"bea869b4":null,"d17df548":null,"e349147c":null,"fa9ce7f4":null,"c9d7235e":null,"d6c8514a":null,"d91695cb":null,"d6917e0c":null,"d6917e0d":null},"fr":{"f70a36d0":"Tout tweeter","d25289b4":"Retweeté par","bab1f8b0":"Tweets","h99e9c95":"return[\"\",\" a retweeté\"]","d2c7a41c":"Tweetez votre réponse.","e2414185":"return\"\"+s(e.count,\"Citer le Tweet\",\"Tweets cités\")","hb7b0ceb":"return e.retweetCount+\" Retweet\"+s(e.retweetCount,\"\",\"s\")","bd7c0390":"Tweets cités","bea869b4":"Tweeter","d17df548":"Répondre","e349147c":"Quoi de neuf ?","fa9ce7f4":"Annuler le Retweet","c9d7235e":"Citer le Tweet","d6c8514a":"Retweeter","d91695cb":"return e.fullName+\" (@\"+e.screenName+\") a tweeté : \"+e.tweet","d6917e0d":"return\"Voir \"+e.count+\" Tweet\"+s(e.count,\"\",\"s\")","e2414184":null,"hb7b0cea":null,"bd7c039f":null,"bea869b3":null,"hdf72269":null,"e349147b":null,"f3bbbb87":null,"c9d7235d":null,"d6c85149":null,"d6917e0c":null},"ga":{"f70a36d0":"Tweetáil gach rud","d25289b4":"Atweetáilte ag","bab1f8b0":"Tweetanna","h99e9c95":"return[\"Rinne \",\" Atweetáil\"]","d2c7a41c":"Tweetáil do Fhreagra","bd7c0390":"Luaigh Tvuíteanna","bea869b4":"Tweet","d17df548":"Freagair","e349147c":"Cad atá ag tarlú?","fa9ce7f4":"Cuir an Atweet ar ceal","c9d7235e":"Cuir Ráiteas Leis","d6c8514a":"Atweetáil","e2414184":null,"e2414185":null,"hb7b0ceb":null,"hb7b0cea":null,"bd7c039f":null,"bea869b3":null,"hdf72269":null,"e349147b":null,"f3bbbb87":null,"c9d7235d":null,"d6c85149":null,"d91695cb":null,"d6917e0c":null,"d6917e0d":null},"gl":{"f70a36d0":"Chiar todo","d25289b4":"Rechouchiado por","bab1f8b0":"Chíos","h99e9c95":"return[\"\",\" rechouchiou\"]","d2c7a41c":"Chía a túa resposta","e2414184":"return\"Quote Tweet\"+r(e.count,\"\",\"s\")","hb7b0cea":"return e.retweetCount+\" rechouchío\"+t(e.retweetCount,\"\",\"s\")","bd7c039f":"Chíos citados","bea869b3":"Chío","hdf72269":"Responder","e349147b":"Que está a pasar?","f3bbbb87":"Desfacer rechouchío","c9d7235d":"Citar chío","d6c85149":"Rechouchiar","d91695cb":"return e.fullName+\" (@\"+e.screenName+\") chiou:\\n\"+e.tweet","d6917e0c":"return\"Show \"+e.count+\" Tweet\"+r(e.count,\"\",\"s\")","e2414185":null,"hb7b0ceb":null,"bd7c0390":null,"bea869b4":null,"d17df548":null,"e349147c":null,"fa9ce7f4":null,"c9d7235e":null,"d6c8514a":null,"d6917e0d":null},"gu":{"f70a36d0":"બધાને ટ્વીટ કરો","d25289b4":"આમની દ્વારા પુનટ્વીટ કરવામાં આવી","bab1f8b0":"ટ્વીટ્સ","h99e9c95":"return[\"\",\"એ પુનટ્વીટ કરી\"]","d2c7a41c":"તમારા પ્રત્યુતરને ટ્વીટ કરો","e2414184":"return\"અવતરણની સાથે ટ્વીટ\"+n(e.count,\" કરો\",\"્સ\")","hb7b0cea":"return e.retweetCount+\" પુનટ્વીટ\"+n(e.retweetCount,\"\",\"્સ\")","bd7c039f":"અવતરણની સાથે ટ્વીટ્સ","bea869b3":"ટ્વીટ","hdf72269":"પ્રત્યુતર","e349147b":"શું ચાલી રહ્યું છે?","f3bbbb87":"પુનટ્વીટને પૂર્વવત કરો","c9d7235d":"અવતરણની સાથે ટ્વીટ કરો","d6c85149":"પુનટ્વીટ","d91695cb":"return e.fullName+\" (@\"+e.screenName+\") એ ટ્વીટ કરી: \"+e.tweet","d6917e0c":"return\"બતાવો \"+e.count+\" ટ્વીટ\"+n(e.count,\"\",\"્સ\")","e2414185":null,"hb7b0ceb":null,"bd7c0390":null,"bea869b4":null,"d17df548":null,"e349147c":null,"fa9ce7f4":null,"c9d7235e":null,"d6c8514a":null,"d6917e0d":null},"he":{"f70a36d0":"צייץ הכל","d25289b4":"צויץ מחדש על־ידי","bab1f8b0":"ציוצים","h99e9c95":"return[\"\",\" צייץ מחדש\"]","d2c7a41c":"צייץ את התשובה שלך","e2414184":"return\"צי\"+c(e.count,\"וץ ציטוט\",\"טוט ציוץ\",\"וץ ציטוט\",\"וץ ציטוט\")","hb7b0cea":"return e.retweetCount+\" ציו\"+c(e.retweetCount,\"צים\",\"ץ\",\"צים\",\"צים\")+\" מחדש\"","bd7c039f":"ציוצי ציטוט","bea869b3":"צייץ","hdf72269":"השב","e349147b":"מה קורה?","f3bbbb87":"ביטול ציוץ מחדש","c9d7235d":"ציטוט ציוץ","d6c85149":"צייץ מחדש","d91695cb":"return e.fullName+\" (@\"+e.screenName+\") צייץ: \"+e.tweet","d6917e0c":"return\"הצג \"+e.count+\" ציו\"+c(e.count,\"צים\",\"ץ\",\"צים\",\"צים\")","e2414185":null,"hb7b0ceb":null,"bd7c0390":null,"bea869b4":null,"d17df548":null,"e349147c":null,"fa9ce7f4":null,"c9d7235e":null,"d6c8514a":null,"d6917e0d":null},"hi":{"f70a36d0":"सभी ट्वीट करें","d25289b4":"इनके द्वारा रीट्वीट किया गया","bab1f8b0":"ट्वीट","h99e9c95":"return[\"\",\" ने रीट्वीट किया\"]","d2c7a41c":"अपना जवाब ट्वीट करें","e2414185":"return\"कोट ट्वीट\"+n(e.count,\"\",\"्स\")","hb7b0ceb":"return e.retweetCount+\" रीट्वीट\"+n(e.retweetCount,\"\",\"्स\")","bd7c0390":"कोट ट्वीट्स","bea869b4":"ट्वीट करें","d17df548":"जवाब दें","e349147c":"क्या हो रहा है?","fa9ce7f4":"रीट्वीट को पूर्ववत करें","c9d7235e":"ट्वीट क्वोट करें","d6c8514a":"रीट्वीट करें","d91695cb":"return e.fullName+\" (@\"+e.screenName+\") ने ट्वीट किया: \"+e.tweet","d6917e0d":"return e.count+\" ट्वीट\"+n(e.count,\"\",\"्स\")+\" दिखाएं\"","e2414184":null,"hb7b0cea":null,"bd7c039f":null,"bea869b3":null,"hdf72269":null,"e349147b":null,"f3bbbb87":null,"c9d7235d":null,"d6c85149":null,"d6917e0c":null},"hr":{"f70a36d0":"Tweetaj sve","d25289b4":"Korisnici koji su proslijedili Tweet","bab1f8b0":"Tweetovi","h99e9c95":"return[\"\",\" proslijedio/la je Tweet\"]","d2c7a41c":"Pošalji Tweet s odgovorom","e2414185":"return\"\"+t(e.count,\"citirana tweeta\",\"Citiraj Tweet\",\"citiranih tweetova\")","hb7b0ceb":"return e.retweetCount+\" proslijeđen\"+t(e.retweetCount,\"a tweeta\",\"i Tweet\",\"ih tweetova\")","bd7c0390":"Citirani tweetovi","bea869b4":"Tweet","d17df548":"Odgovori","e349147c":"Što se događa?","fa9ce7f4":"Poništi prosljeđivanje tweeta","c9d7235e":"Citiraj Tweet","d6c8514a":"Proslijedi tweet","d91695cb":"return e.fullName+\" (@\"+e.screenName+\") objavio/la je Tweet: \"+e.tweet","d6917e0d":"return\"Prikaži \"+e.count+\" \"+t(e.count,\"tweeta\",\"Tweet\",\"tweetova\")","e2414184":null,"hb7b0cea":null,"bd7c039f":null,"bea869b3":null,"hdf72269":null,"e349147b":null,"f3bbbb87":null,"c9d7235d":null,"d6c85149":null,"d6917e0c":null},"hu":{"f70a36d0":"Tweet küldése mindenkinek","d25289b4":"Retweetelte","bab1f8b0":"Tweetek","h99e9c95":"return[\"\",\" Retweetelte\"]","d2c7a41c":"Tweeteld válaszodat","e2414185":"return\"Tweet\"+n(e.count,\" idézése\",\"-idézés\")","hb7b0ceb":"return e.retweetCount+\" Retweet\"","bd7c0390":"Tweet-idézések","bea869b4":"Tweetelj","d17df548":"Válasz","e349147c":"Mi történik éppen most?","fa9ce7f4":"Retweet visszavonása","c9d7235e":"Tweet idézése","d6c8514a":"Retweet","d91695cb":"return e.fullName+\" (@\"+e.screenName+\") tweetelte: \"+e.tweet","d6917e0d":"return e.count+\" Tweet megjelenítése\"","e2414184":null,"hb7b0cea":null,"bd7c039f":null,"bea869b3":null,"hdf72269":null,"e349147b":null,"f3bbbb87":null,"c9d7235d":null,"d6c85149":null,"d6917e0c":null},"id":{"f70a36d0":"Tweet semua","d25289b4":"Di-retweet oleh","bab1f8b0":"Tweet","h99e9c95":"return[\"\",\" me-retweet\"]","d2c7a41c":"Tweet balasan Anda","bd7c039f":"Tweet Kutipan","bea869b3":"Tweet","hdf72269":"Balas","e349147b":"Apa yang sedang terjadi?","f3bbbb87":"Batalkan Retweet","c9d7235d":"Kutip Tweet","d6c85149":"Retweet","e2414184":null,"e2414185":null,"hb7b0ceb":null,"hb7b0cea":null,"bd7c0390":null,"bea869b4":null,"d17df548":null,"e349147c":null,"fa9ce7f4":null,"c9d7235e":null,"d6c8514a":null,"d91695cb":null,"d6917e0c":null,"d6917e0d":null},"it":{"f70a36d0":"Twitta tutto","d25289b4":"Ritwittato da","bab1f8b0":"Tweet","h99e9c95":"return[\"\",\" ha ritwittato\"]","d2c7a41c":"Twitta la tua risposta","e2414184":"return\"Tweet di citazione\"","hb7b0cea":"return e.retweetCount+\" Retweet\"","bd7c039f":"Tweet di citazione","bea869b3":"Twitta","hdf72269":"Rispondi","e349147b":"Che c'è di nuovo?","f3bbbb87":"Annulla Retweet","c9d7235d":"Cita Tweet","d6c85149":"Ritwitta","d91695cb":"return e.fullName+\" (@\"+e.screenName+\") ha twittato: \"+e.tweet","d6917e0c":"return\"Mostra \"+e.count+\" Tweet\"","e2414185":null,"hb7b0ceb":null,"bd7c0390":null,"bea869b4":null,"d17df548":null,"e349147c":null,"fa9ce7f4":null,"c9d7235e":null,"d6c8514a":null,"d6917e0d":null},"ja":{"f70a36d0":"すべてツイート","d25289b4":"リツイートしたユーザー","bab1f8b0":"ツイート","h99e9c95":"return[\"\",\"さんがリツイート\"]","d2c7a41c":"返信をツイート","e2414184":"return\"件の引用ツイート\"","hb7b0cea":"return e.retweetCount+\" 件のリツイート\"","bd7c039f":"引用ツイート","bea869b3":"ツイートする","hdf72269":"返信","e349147b":"いまどうしてる?","f3bbbb87":"リツイートを取り消す","c9d7235d":"引用ツイート","d6c85149":"リツイート","d91695cb":"return e.fullName+\"(@\"+e.screenName+\")さんがツイートしました: \"+e.tweet","d6917e0c":"return e.count+\" 件のツイートを表示\"","e2414185":null,"hb7b0ceb":null,"bd7c0390":null,"bea869b4":null,"d17df548":null,"e349147b":"レインを好きになりましょう。","e349147c":"レインを好きになりましょう。","fa9ce7f4":null,"c9d7235e":null,"d6c8514a":null,"d6917e0d":null},"kn":{"f70a36d0":"ಎಲ್ಲಾ ಟ್ವೀಟ್ ಮಾಡಿ","d25289b4":"ಮರುಟ್ವೀಟಿಸಿದವರು","bab1f8b0":"ಟ್ವೀಟ್‌ಗಳು","h99e9c95":"return[\"\",\" ಅವರು ಮರುಟ್ವೀಟಿಸಿದ್ದಾರೆ\"]","d2c7a41c":"ನಿಮ್ಮ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಟ್ವೀಟ್ ಮಾಡಿ","e2414185":"return\"\"+n(e.count,\"ಟ್ವೀಟ್ ಕೋಟ್ ಮಾಡಿ\",\"ಕೋಟ್ ಟ್ವೀಟ್‌ಗಳು\")","hb7b0ceb":"return e.retweetCount+\" ಮರುಟ್ವೀಟ\"+n(e.retweetCount,\"ಿಸಿ\",\"್‌ಗಳು\")","bd7c0390":"ಕೋಟ್ ಟ್ವೀಟ್‌ಗಳು","bea869b4":"ಟ್ವೀಟ್","d17df548":"ಪ್ರತಿಕ್ರಿಯಿಸಿ","e349147c":"ಏನಾಗುತ್ತಿದೆ?","fa9ce7f4":"ಮರುಟ್ವೀಟಿಸುವುದನ್ನು ರದ್ದುಮಾಡಿ","c9d7235e":"ಟ್ವೀಟ್ ಕೋಟ್ ಮಾಡಿ","d6c8514a":"ಮರುಟ್ವೀಟಿಸಿ","d91695cb":"return e.fullName+\" (@\"+e.screenName+\") Tweeted:\\n\"+e.tweet","d6917e0d":"return\"ತೋರಿಸಿ \"+e.count+\" ಟ್ವೀಟ್\"+n(e.count,\"\",\"‌ಗಳು\")","e2414184":null,"hb7b0cea":null,"bd7c039f":null,"bea869b3":null,"hdf72269":null,"e349147b":null,"f3bbbb87":null,"c9d7235d":null,"d6c85149":null,"d6917e0c":null},"ko":{"f70a36d0":"모두 트윗하기","d25289b4":"리트윗함","bab1f8b0":"트윗","h99e9c95":"return[\"\",\" 님이 리트윗함\"]","d2c7a41c":"내 답글을 트윗합니다.","e2414184":"return\"인용한 트윗\"","hb7b0cea":"return e.retweetCount+\" 리트윗\"","bd7c039f":"트윗 인용하기","bea869b3":"트윗","hdf72269":"답글","e349147b":"무슨 일이 일어나고 있나요?","f3bbbb87":"리트윗 취소","c9d7235d":"트윗 인용하기","d6c85149":"리트윗","d91695cb":"return e.fullName+\" (@\"+e.screenName+\") Tweeted:\\n\"+e.tweet","d6917e0c":"return\"보기 \"+e.count+\" 트윗\"","e2414185":null,"hb7b0ceb":null,"bd7c0390":null,"bea869b4":null,"d17df548":null,"e349147c":null,"fa9ce7f4":null,"c9d7235e":null,"d6c8514a":null,"d6917e0d":null},"mr":{"f70a36d0":"सर्व ट्विट करा","d25289b4":"यांनी पुन्हा ट्विट केले","bab1f8b0":"ट्विट्स","h99e9c95":"return[\"\",\" यांनी पुन्हा ट्विट केले\"]","d2c7a41c":"आपल्या प्रत्युत्तरावर ट्विट करा","e2414184":"return\"\"+r(e.count,\"ट्विट वर भाष्य करा\",\"भाष्य ट्विट्स\")","hb7b0cea":"return e.retweetCount+\" पुन\"+r(e.retweetCount,\"्हा ट्विट करा\",\"र्ट्विट्स\")","bd7c039f":"भाष्य ट्विट्स","bea869b3":"ट्विट","hdf72269":"प्रत्युत्तर","e349147b":"काय घडत आहे?","f3bbbb87":"पुनर्ट्विट पूर्ववत करा","c9d7235d":"ट्विट वर भाष्य करा","d6c85149":"पुन्हा ट्विट","d91695cb":"return e.fullName+\" (@\"+e.screenName+\") यांनी ट्विट केले: \"+e.tweet","d6917e0c":"return e.count+\" ट्विट\"+r(e.count,\"\",\"्स\")+\" दाखवा\"","e2414185":null,"hb7b0ceb":null,"bd7c0390":null,"bea869b4":null,"d17df548":null,"e349147c":null,"fa9ce7f4":null,"c9d7235e":null,"d6c8514a":null,"d6917e0d":null},"ms":{"f70a36d0":"Tweet semua","d25289b4":"Ditweet semula oleh","bab1f8b0":"Tweet","h99e9c95":"return[\"\",\" telah Tweet semula\"]","d2c7a41c":"Tweet balasan anda","bd7c039f":"Tweet Petikan","bea869b3":"Tweet","hdf72269":"Balas","e349147b":"Apakah yang sedang berlaku?","f3bbbb87":"Buat asal Tweet semula","c9d7235d":"Petik Tweet","d6c85149":"Tweet semula","e2414184":null,"e2414185":null,"hb7b0ceb":null,"hb7b0cea":null,"bd7c0390":null,"bea869b4":null,"d17df548":null,"e349147c":null,"fa9ce7f4":null,"c9d7235e":null,"d6c8514a":null,"d91695cb":null,"d6917e0c":null,"d6917e0d":null},"nb":{"f70a36d0":"Tweet alle","d25289b4":"Retweetet av","bab1f8b0":"Tweets","h99e9c95":"return[\"\",\" retweetet\"]","d2c7a41c":"Tweet svaret ditt","e2414185":"return\"sitat-Tweet\"+i(e.count,\"\",\"s\")","hb7b0ceb":"return e.retweetCount+\" Retweet\"+i(e.retweetCount,\"\",\"s\")","bd7c0390":"Sitat-Tweets","bea869b4":"Tweet","d17df548":"Svar","e349147c":"Hva skjer?","fa9ce7f4":"Angre Retweet","c9d7235e":"Sitat-Tweet","d6c8514a":"Retweet","d91695cb":"return e.fullName+\" (@\"+e.screenName+\") Tweetet: \"+e.tweet","d6917e0d":"return\"Vis \"+e.count+\" Tweet\"+i(e.count,\"\",\"s\")","e2414184":null,"hb7b0cea":null,"bd7c039f":null,"bea869b3":null,"hdf72269":null,"e349147b":null,"f3bbbb87":null,"c9d7235d":null,"d6c85149":null,"d6917e0c":null},"nl":{"f70a36d0":"Alles tweeten","d25289b4":"Geretweet door","bab1f8b0":"Tweets","h99e9c95":"return[\"\",\" heeft geretweet\"]","d2c7a41c":"Je antwoord tweeten","e2414185":"return\"\"+r(e.count,\"Citeer Tweet\",\"Geciteerde Tweets\")","hb7b0ceb":"return e.retweetCount+\" Retweet\"+r(e.retweetCount,\"\",\"s\")","bd7c0390":"Geciteerde Tweets","bea869b4":"Tweeten","d17df548":"Beantwoorden","e349147c":"Wat houdt je bezig?","fa9ce7f4":"Retweet ongedaan maken","c9d7235e":"Citeer Tweet","d6c8514a":"Retweeten","d91695cb":"return e.fullName+\" (@\"+e.screenName+\") Tweeted:\\n\"+e.tweet","d6917e0d":"return e.count+\" Tweet\"+r(e.count,\"\",\"s\")+\" weergeven\"","e2414184":null,"hb7b0cea":null,"bd7c039f":null,"bea869b3":null,"hdf72269":null,"e349147b":null,"f3bbbb87":null,"c9d7235d":null,"d6c85149":null,"d6917e0c":null},"pl":{"f70a36d0":"Tweetnij wszystko","d25289b4":"Podane dalej przez","bab1f8b0":"Tweety","h99e9c95":"return[\"\",\" podał/a dalej Tweeta\"]","d2c7a41c":"Wyślij Tweeta z odpowiedzią","e2414184":"return\"Cyt\"+n(e.count,\"aty z\",\"atów z\",\"uj\",\"atów z\")+\" Tweeta\"","hb7b0cea":"return e.retweetCount+\" Tweet\"+n(e.retweetCount,\"y podane\",\"ów podanych\",\" podany\",\"ów podanych\")+\" dalej\"","bd7c039f":"Cytatów z Tweeta","bea869b3":"Tweet","hdf72269":"Odpowiedz","e349147b":"Co się dzieje?","f3bbbb87":"Cofnij podanie dalej","c9d7235d":"Cytuj Tweeta","d6c85149":"Podaj dalej","d91695cb":"return e.fullName+\" (@\"+e.screenName+\") Napisał/a: \"+e.tweet","d6917e0c":"return\"Pokaż \"+e.count+\" Tweet\"+n(e.count,\"y\",\"ów\",\"a\",\"ów\")","e2414185":null,"hb7b0ceb":null,"bd7c0390":null,"bea869b4":null,"d17df548":null,"e349147c":null,"fa9ce7f4":null,"c9d7235e":null,"d6c8514a":null,"d6917e0d":null},"pt":{"f70a36d0":"Tweetar tudo","d25289b4":"Retweetado por","bab1f8b0":"Tweets","h99e9c95":"return[\"\",\" retweetou\"]","d2c7a41c":"Tweete sua resposta","e2414184":"return\"Tweet\"+r(e.count,\"\",\"s\")+\" de comentário\"","hb7b0cea":"return e.retweetCount+\" Retweet\"+r(e.retweetCount,\"\",\"s\")","bd7c039f":"Tweets com comentário","bea869b3":"Tweetar","hdf72269":"Responder","e349147b":"O que está acontecendo?","f3bbbb87":"Desfazer Retweet","c9d7235d":"Citar Tweet","d6c85149":"Retweetar","d91695cb":"return e.fullName+\" (@\"+e.screenName+\") tweetou: \"+e.tweet","d6917e0c":"return\"Mostrar \"+e.count+\" Tweet\"+r(e.count,\"\",\"s\")","e2414185":null,"hb7b0ceb":null,"bd7c0390":null,"bea869b4":null,"d17df548":null,"e349147c":null,"fa9ce7f4":null,"c9d7235e":null,"d6c8514a":null,"d6917e0d":null},"ro":{"f70a36d0":"Dă Tweeturi cu tot","d25289b4":"Redistribuit de către","bab1f8b0":"Tweeturi","h99e9c95":"return[\"\",\" a redistribuit\"]","d2c7a41c":"Dă un Tweet cu răspunsul","e2414184":"return\"\"+r(e.count,\"Tweeturi cu citat\",\"Tweet cu citat\",\"de Tweeturi cu citate\")","hb7b0cea":"return e.retweetCount+\" \"+r(e.retweetCount,\"Retweeturi\",\"Retweet\",\"de Retweeturi\")","bd7c039f":"Tweeturi cu citat","bea869b3":"Tweet","hdf72269":"Răspunde","e349147b":"Ce se întâmplă?","f3bbbb87":"Anulează Retweetul","c9d7235d":"Citează Tweetul","d6c85149":"Redistribuie","d91695cb":"return e.fullName+\" (@\"+e.screenName+\") a dat Tweetul: \"+e.tweet","d6917e0c":"return\"Afișează \"+e.count+\" \"+r(e.count,\"Tweeturi\",\"Dă Tweet\",\"Tweeturi\")","e2414185":null,"hb7b0ceb":null,"bd7c0390":null,"bea869b4":null,"d17df548":null,"e349147c":null,"fa9ce7f4":null,"c9d7235e":null,"d6c8514a":null,"d6917e0d":null},"ru":{"f70a36d0":"Твитнуть все","d25289b4":"Ретвитнул(а)","bab1f8b0":"Твиты","h99e9c95":"return[\"\",\" ретвитнул(а)\"]","d2c7a41c":"Твитнуть в ответ","e2414184":"return\"\"+n(e.count,\"твита с цитатами\",\"твитов с цитатами\",\"Цитировать твит\",\"Твиты с цитатами\")","hb7b0cea":"return e.retweetCount+\" ретвит\"+n(e.retweetCount,\"а\",\"ов\",\"\",\"а\")","bd7c039f":"Твиты с цитатами","bea869b3":"Твитнуть","hdf72269":"Ответить","e349147b":"Что происходит?","f3bbbb87":"Отменить ретвит","c9d7235d":"Цитировать","d6c85149":"Ретвитнуть","d91695cb":"return e.fullName+\" (@\"+e.screenName+\") твитнул(а): \"+e.tweet","d6917e0c":"return\"Показать \"+e.count+\" твит\"+n(e.count,\"а\",\"ов\",\"\",\"а\")","e2414185":null,"hb7b0ceb":null,"bd7c0390":null,"bea869b4":null,"d17df548":null,"e349147c":null,"fa9ce7f4":null,"c9d7235e":null,"d6c8514a":null,"d6917e0d":null},"sr":{"f70a36d0":"Твитуј све","d25289b4":"Ретвитовано од стране","bab1f8b0":"Твитови","h99e9c95":"return[\"\",\" ретвитује\"]","d2c7a41c":"Твитуј свој одговор","e2414185":"return\"твит\"+n(e.count,\"а\",\"\",\"(ов)а\")+\" са цитатом\"","hb7b0ceb":"return e.retweetCount+\" ретвит\"+n(e.retweetCount,\"а\",\"\",\"ова\")","bd7c0390":"твит(ов)а са цитатом","bea869b4":"Твитуј","d17df548":"Одговори","e349147c":"Шта се дешава?","fa9ce7f4":"Опозови ретвит","c9d7235e":"твит са цитатом","d6c8514a":"Ретвитуј","d91695cb":"return e.fullName+\" (@\"+e.screenName+\") Tweeted:\\n\"+e.tweet","d6917e0d":"return\"Прикажи \"+e.count+\" твит\"+n(e.count,\"а\",\"\",\"ова\")","e2414184":null,"hb7b0cea":null,"bd7c039f":null,"bea869b3":null,"hdf72269":null,"e349147b":null,"f3bbbb87":null,"c9d7235d":null,"d6c85149":null,"d6917e0c":null},"sk":{"f70a36d0":"Tweetnuť všetko","d25289b4":"Retweetnuté používateľom","bab1f8b0":"Tweety","h99e9c95":"return[\"Používateľ \",\" retweetol\"]","d2c7a41c":"Tweetnuť odpoveď","e2414184":"return\"Tweet\"+n(e.count,\"y\",\"u\",\"\",\"y\")+\" s citátom\"","hb7b0cea":"return e.retweetCount+\" retweet\"+n(e.retweetCount,\"y\",\"u\",\"\",\"ov\")","bd7c039f":"Tweety s citátom","bea869b3":"Tweetnuť","hdf72269":"Odpovedať","e349147b":"Čo sa deje?","f3bbbb87":"Zrušiť retweet","c9d7235d":"Tweet s citátom","d6c85149":"Retweetnuť","d91695cb":"return e.fullName+\" (@\"+e.screenName+\") Tweeted:\\n\"+e.tweet","d6917e0c":"return\"Zobraziť \"+e.count+\" Tweet\"+n(e.count,\"y\",\"u\",\"\",\"ov\")","e2414185":null,"hb7b0ceb":null,"bd7c0390":null,"bea869b4":null,"d17df548":null,"e349147c":null,"fa9ce7f4":null,"c9d7235e":null,"d6c8514a":null,"d6917e0d":null},"sv":{"f70a36d0":"Tweeta allt","d25289b4":"Retweetad av","bab1f8b0":"Tweets","h99e9c95":"return[\"\",\" Retweetade\"]","d2c7a41c":"Tweeta ditt svar","e2414184":"return\"citat-tweet\"+r(e.count,\"\",\"s\")","hb7b0cea":"return e.retweetCount+\" Retweet\"+r(e.retweetCount,\"\",\"s\")","bd7c039f":"Citat-tweets","bea869b3":"Tweeta","hdf72269":"Svara","e349147b":"Vad händer?","f3bbbb87":"Ångra retweeten","c9d7235d":"Citera Tweet","d6c85149":"Retweeta","d91695cb":"return e.fullName+\" (@\"+e.screenName+\") Tweetade: \"+e.tweet","d6917e0c":"return\"Visa \"+e.count+\" Tweet\"+r(e.count,\"\",\"s\")","e2414185":null,"hb7b0ceb":null,"bd7c0390":null,"bea869b4":null,"d17df548":null,"e349147c":null,"fa9ce7f4":null,"c9d7235e":null,"d6c8514a":null,"d6917e0d":null},"ta":{"f70a36d0":"அனைத்தையும் ட்விட் செய்","d25289b4":"இவரால் மறுட்விட் செய்யப்பட்டது","bab1f8b0":"கீச்சுகள்","h99e9c95":"return[\"\",\" மறுட்வீட் செய்துள்ளார்\"]","d2c7a41c":"உங்கள் பதிலை ட்விட் செய்யவும்","e2414185":"return\"\"+n(e.count,\"ட்விட்டை மேற்கோள் காட்டு\",\"மேற்கோள் கீச்சுகள்\")","hb7b0ceb":"return e.retweetCount+\" மறுகீச்சு\"+n(e.retweetCount,\"\",\"கள்\")","bd7c0390":"மேற்கோள் கீச்சுகள்","bea869b4":"ட்விட் செய்","d17df548":"பதிலளி","e349147c":"என்ன நிகழ்கிறது?","fa9ce7f4":"மறுகீச்சை செயல்தவிர்","c9d7235e":"ட்விட்டை மேற்கோள் காட்டு","d6c8514a":"மறுட்விட் செய்","d91695cb":"return e.fullName+\" (@\"+e.screenName+\") Tweeted:\\n\"+e.tweet","d6917e0d":"return e.count+\" கீச்சு\"+n(e.count,\"\",\"கள்\")+\"-ஐக் காண்பி\"","e2414184":null,"hb7b0cea":null,"bd7c039f":null,"bea869b3":null,"hdf72269":null,"e349147b":null,"f3bbbb87":null,"c9d7235d":null,"d6c85149":null,"d6917e0c":null},"th":{"f70a36d0":"ทวีตทั้งหมด","d25289b4":"ถูกรีทวีตโดย","bab1f8b0":"ทวีต","h99e9c95":"return[\"\",\" รีทวีต\"]","d2c7a41c":"ทวีตการตอบกลับของคุณ","e2414185":"return\"ทวีตและคำพูด\"","hb7b0ceb":"return e.retweetCount+\" รีทวีต\"","bd7c0390":"ทวีตและคำพูด","bea869b4":"ทวีต","d17df548":"ตอบกลับ","e349147c":"มีอะไรเกิดขึ้นบ้าง","fa9ce7f4":"ยกเลิกการรีทวีต","c9d7235e":"อ้างอิงทวีต","d6c8514a":"รีทวีต","d91695cb":"return e.fullName+\" (@\"+e.screenName+\") Tweeted:\\n\"+e.tweet","d6917e0d":"return\"แสดง \"+e.count+\" ทวีต\"","e2414184":null,"hb7b0cea":null,"bd7c039f":null,"bea869b3":null,"hdf72269":null,"e349147b":null,"f3bbbb87":null,"c9d7235d":null,"d6c85149":null,"d6917e0c":null},"tr":{"f70a36d0":"Hepsini Tweetle","d25289b4":"Retweetleyen(ler):","bab1f8b0":"Tweetler","h99e9c95":"return[\"\",\" Retweetledi\"]","d2c7a41c":"Yanıtını Tweetle","e2414184":"return\"Alıntı Tweet\"+r(e.count,\"\",\"ler\")","hb7b0cea":"return e.retweetCount+\" Retweet\"","bd7c039f":"Alıntı Tweetler","bea869b3":"Tweetle","hdf72269":"Yanıtla","e349147b":"Neler oluyor?","f3bbbb87":"Retweeti Geri Al","c9d7235d":"Tweeti Alıntıla","d6c85149":"Retweet","d91695cb":"return e.fullName+\" (@\"+e.screenName+\") Tweetledi: \"+e.tweet","d6917e0c":"return\"Göster \"+e.count+\" Tweet\"","e2414185":null,"hb7b0ceb":null,"bd7c0390":null,"bea869b4":null,"d17df548":null,"e349147c":null,"fa9ce7f4":null,"c9d7235e":null,"d6c8514a":null,"d6917e0d":null},"uk":{"f70a36d0":"Твітнути все","d25289b4":"Ретвіти","bab1f8b0":"Твіти","h99e9c95":"return[\"\",\" ретвітнув(ла)\"]","d2c7a41c":"Твітніть відповідь","e2414185":"return\"цитован\"+n(e.count,\"і твіти\",\"их твітів\",\"ий твіт\",\"ого твіта\")","hb7b0ceb":"return e.retweetCount+\" ретвіт\"+n(e.retweetCount,\"и\",\"ів\",\"\",\"а\")","bd7c0390":"Цитовані твіти","bea869b4":"Твіт","d17df548":"Відповісти","e349147c":"Що відбувається?","fa9ce7f4":"Скасувати ретвіт","c9d7235e":"Цитувати твіт","d6c8514a":"Ретвітнути","d91695cb":"return e.fullName+\" (@\"+e.screenName+\") Tweeted:\\n\"+e.tweet","d6917e0d":"return\"Показати \"+e.count+\" твіт\"+n(e.count,\"и\",\"ів\",\"\",\"а\")","e2414184":null,"hb7b0cea":null,"bd7c039f":null,"bea869b3":null,"hdf72269":null,"e349147b":null,"f3bbbb87":null,"c9d7235d":null,"d6c85149":null,"d6917e0c":null},"ur":{"f70a36d0":"سب کو ٹویٹ کریں","d25289b4":"ریٹویٹ منجانب","bab1f8b0":"ٹویٹس","h99e9c95":"return[\"\",\" نے ریٹویٹ کیا\"]","d2c7a41c":"اپنا جواب ٹویٹ کریں","e2414184":"return\"Quote Tweet\"+o(e.count,\"\",\"s\")","hb7b0cea":"return e.retweetCount+\" ریٹویٹ\"","bd7c039f":"ٹویٹ کو نقل کرو","bea869b3":"ٹویٹ کریں","hdf72269":"جواب دیں","e349147b":"کیا ہو رہا ہے؟","f3bbbb87":"ریٹویٹ کالعدم کریں","c9d7235d":"ٹویٹ اقتباس کریں","d6c85149":"ریٹویٹ","d91695cb":"return e.fullName+\" (@\"+e.screenName+\") نے ٹویٹ کی: \"+e.tweet","d6917e0c":"return\"Show \"+e.count+\" Tweet\"+o(e.count,\"\",\"s\")","e2414185":null,"hb7b0ceb":null,"bd7c0390":null,"bea869b4":null,"d17df548":null,"e349147c":null,"fa9ce7f4":null,"c9d7235e":null,"d6c8514a":null,"d6917e0d":null},"vi":{"f70a36d0":"Đăng Tweet tất cả","d25289b4":"Được Tweet lại bởi","bab1f8b0":"Tweet","h99e9c95":"return[\"\",\" đã Tweet lại\"]","d2c7a41c":"Tweet trả lời của bạn","bd7c039f":"Tweet trích dẫn","hdf72269":"Trả lời","e349147b":"Chuyện gì đang xảy ra?","f3bbbb87":"Hoàn tác Tweet lại","c9d7235d":"Trích dẫn Tweet","d6c85149":"Tweet lại","e2414184":null,"e2414185":null,"hb7b0ceb":null,"hb7b0cea":null,"bd7c0390":null,"bea869b4":null,"bea869b3":null,"d17df548":null,"e349147c":null,"fa9ce7f4":null,"c9d7235e":null,"d6c8514a":null,"d91695cb":null,"d6917e0c":null,"d6917e0d":null},"zh-Hant":{"f70a36d0":"推全部內容","d25289b4":"已被轉推","bab1f8b0":"推文","h99e9c95":"return[\"\",\" 已轉推\"]","d2c7a41c":"推你的回覆","e2414184":"return\"引用的推文\"","hb7b0cea":"return e.retweetCount+\" 則轉推\"","bd7c039f":"引用的推文","bea869b3":"推文","hdf72269":"回覆","e349147b":"讓我們都來愛上玲音吧","e349147c":"讓我們都來愛上玲音吧","f3bbbb87":"取消轉推","c9d7235d":"引用推文","d6c85149":"轉推","d91695cb":"return e.fullName+\" (@\"+e.screenName+\") 已推文:\"+e.tweet","d6917e0c":"return\"顯示 \"+e.count+\" 則推文\"","e2414185":null,"hb7b0ceb":null,"bd7c0390":null,"bea869b4":null,"d17df548":null,"e349147c":null,"fa9ce7f4":null,"c9d7235e":null,"d6c8514a":null,"d6917e0d":null},"zh":{"f70a36d0":"全部发推","d25289b4":"转推者","bab1f8b0":"推文","h99e9c95":"return[\"\",\" 转推了\"]","d2c7a41c":"发布你的回复","e2414184":"return\"引用推文\"","hb7b0cea":"return e.retweetCount+\" 转推\"","bd7c039f":"引用推文","bea869b3":"推文","hdf72269":"回复","e349147b":"让我们都来爱上玲音吧","e349147c":"让我们都来爱上玲音吧","f3bbbb87":"撤销转推","c9d7235d":"引用推文","d6c85149":"转推","d91695cb":"return e.fullName+\" (@\"+e.screenName+\") 发推说:\"+e.tweet","d6917e0c":"return\"显示 \"+e.count+\" 推文\"","e2414185":null,"hb7b0ceb":null,"bd7c0390":null,"bea869b4":null,"d17df548":null,"e349147c":null,"fa9ce7f4":null,"c9d7235e":null,"d6c8514a":null,"d6917e0d":null}};
  42.  
  43. /**
  44. * クッキーから設定言語を取得
  45. * 国際化データに含まれない言語の場合の初期値はen
  46. */
  47. function getLang() {
  48. const cookie = document.cookie;
  49. const cookieLang = cookie
  50. .split(";")
  51. .map((s) => s.split("="))
  52. .filter(([key, value]) => {
  53. return key === " lang";
  54. })[0][1];
  55.  
  56. if (Object.keys(i18n).includes(cookieLang)) {
  57. return cookieLang;
  58. } else if (cookieLang === "zh-cn") {
  59. return "zh";
  60. } else if (cookieLang === "zh-tw") {
  61. return "zh-Hant";
  62. } else if (cookieLang === "en-gb") {
  63. return "en-GB";
  64. } else {
  65. return "en";
  66. }
  67. }
  68.  
  69. /**
  70. * サイドメニューのツイートするボタン
  71. */
  72. function postToTweetSideNavNewTweetButton(langData) {
  73. const tweetButton = document.querySelector(
  74. 'a[data-testid="SideNav_NewTweet_Button"] > div > span > div > div > span > span'
  75. );
  76. const toTweet =
  77. langData.bea869b3 !== null ? langData.bea869b3 : langData.bea869b4;
  78.  
  79. if (tweetButton !== null && tweetButton.textContent !== toTweet) {
  80. tweetButton.textContent = toTweet;
  81. }
  82. }
  83.  
  84. /**
  85. * 小さいツイートするボタン
  86. */
  87. function postToTweetButtonInline(langData) {
  88. const tweetButton = document.querySelector(
  89. 'button[data-testid="tweetButtonInline"] > div > span > span'
  90. );
  91. const toTweet =
  92. langData.bea869b3 !== null ? langData.bea869b3 : langData.bea869b4;
  93.  
  94. const reply =
  95. langData.hdf72269 !== null ? langData.hdf72269 : langData.d17df548;
  96.  
  97. if (tweetButton !== null) {
  98. if (location.pathname === "/home") {
  99. if (tweetButton.textContent !== toTweet) {
  100. tweetButton.textContent = toTweet;
  101. }
  102. } else {
  103. if (tweetButton.textContent !== reply) {
  104. tweetButton.textContent = reply;
  105. }
  106. }
  107. }
  108. }
  109.  
  110. /**
  111. * ツイートボタン
  112. */
  113. function postToTweetButton(langData) {
  114. const tweetButton = document.querySelector(
  115. 'button[data-testid="tweetButton"] > div > span > span'
  116. );
  117.  
  118. const tweetAll = langData.f70a36d0;
  119.  
  120. const toTweet =
  121. langData.bea869b3 !== null ? langData.bea869b3 : langData.bea869b4;
  122.  
  123. const reply =
  124. langData.hdf72269 !== null ? langData.hdf72269 : langData.d17df548;
  125.  
  126. const pathSplited = location.pathname.split("/");
  127. if (pathSplited[2] === "status" && pathSplited[4] === "photo") {
  128. /**
  129. * photoページのときはtweetButtonが返信ボタンになるよ
  130. */
  131. if (tweetButton !== null && tweetButton.textContent !== reply) {
  132. tweetButton.textContent = reply;
  133. }
  134. } else {
  135. const isTweetAll =
  136. document.querySelector('label[data-testid="tweetTextarea_1_label"]') !==
  137. null;
  138.  
  139. if (isTweetAll) {
  140. if (tweetButton !== null && tweetButton.textContent !== tweetAll) {
  141. tweetButton.textContent = tweetAll;
  142. }
  143. } else {
  144. if (tweetButton !== null && tweetButton.textContent !== toTweet) {
  145. tweetButton.textContent = toTweet;
  146. }
  147. }
  148. }
  149. }
  150.  
  151. /**
  152. * 返信をツイート
  153. */
  154. function postToTweetReplyDraftEditorPlaceholder(langData) {
  155. const whatsHappen =
  156. langData.e349147c !== null ? langData.e349147c : langData.e349147b;
  157.  
  158. const placeholder = document.querySelector(
  159. `.public-DraftEditorPlaceholder-inner`
  160. );
  161.  
  162. // mobile
  163. const placeholderTextArea = document.querySelector(
  164. `textarea[data-testid="tweetTextarea_0"]`
  165. );
  166.  
  167. if (placeholder !== null) {
  168. if (
  169. location.pathname !== "/home" &&
  170. location.pathname !== "/compose/tweet"
  171. ) {
  172. if (placeholder.textContent !== langData.d2c7a41c) {
  173. placeholder.textContent = langData.d2c7a41c;
  174. }
  175. } else {
  176. if (placeholder.textContent !== whatsHappen) {
  177. placeholder.textContent = whatsHappen;
  178. }
  179. }
  180. }
  181.  
  182. if (placeholderTextArea !== null) {
  183. if (
  184. location.pathname !== "/home" &&
  185. location.pathname !== "/compose/tweet"
  186. ) {
  187. if (
  188. placeholderTextArea.getAttribute("placeholder") !== langData.d2c7a41c
  189. ) {
  190. placeholderTextArea.setAttribute("placeholder", langData.d2c7a41c);
  191. }
  192. }
  193. }
  194. }
  195.  
  196. /**
  197. * リツイートボタン、引用ツイートボタン
  198. */
  199. function postToTweetRetweetBtn(langData) {
  200. const retweetBtns = document.querySelectorAll(
  201. 'div[data-testid="retweetConfirm"] > div:nth-child(2) > div > span:not(.x-to-Wired-retweet)'
  202. );
  203.  
  204. const quoteBtns = document.querySelectorAll(
  205. 'a[href="/compose/tweet"] > div:nth-child(2) > div > span:not(.x-to-Wired-retweet)'
  206. );
  207.  
  208. const unRetweetBtns = document.querySelectorAll(
  209. 'div[data-testid="unretweetConfirm"] > div:nth-child(2) > div > span:not(.x-to-Wired-retweet)'
  210. );
  211.  
  212. const toRetweet =
  213. langData.d6c8514a !== null ? langData.d6c8514a : langData.d6c85149;
  214.  
  215. const toQuote =
  216. langData.c9d7235d !== null ? langData.c9d7235d : langData.c9d7235e;
  217.  
  218. const undoRetweet =
  219. langData.f3bbbb87 !== null ? langData.f3bbbb87 : langData.fa9ce7f4;
  220.  
  221. retweetBtns?.forEach((retweetBtn) => {
  222. retweetBtn.classList.add("x-to-Wired-retweet");
  223. retweetBtn.textContent = toRetweet;
  224. });
  225.  
  226. quoteBtns?.forEach((quoteBtn) => {
  227. quoteBtn.classList.add("x-to-Wired-retweet");
  228. quoteBtn.textContent = toQuote;
  229. });
  230.  
  231. unRetweetBtns?.forEach((unRetweetBtn) => {
  232. unRetweetBtn.classList.add("x-to-Wired-retweet");
  233. unRetweetBtn.textContent = undoRetweet;
  234. });
  235. }
  236.  
  237. /**
  238. * リツイートカウンター
  239. */
  240. function postToTweetRetweetCounter(langData) {
  241. const counterLinks = document.querySelectorAll(
  242. "article > div > div > div:nth-child(3) > div:nth-child(5) > div > a"
  243. );
  244.  
  245. const splitRetweets = (
  246. langData.hb7b0cea !== null ? langData.hb7b0cea : langData.hb7b0ceb
  247. ).split('"');
  248.  
  249. const retweet =
  250. splitRetweets[1].trim() +
  251. (splitRetweets[5] !== undefined ? splitRetweets[5] : "");
  252.  
  253. counterLinks.forEach((counterLink) => {
  254. const hrefSplit = counterLink.getAttribute("href").split("/");
  255. if (hrefSplit[4] === "retweets" && hrefSplit[5] === undefined) {
  256. const counter = counterLink.querySelector("a > span > span");
  257. if (counter !== null) {
  258. if (counter.textContent !== retweet) {
  259. counter.textContent = retweet;
  260. }
  261. }
  262. }
  263. });
  264. }
  265.  
  266. /**
  267. * 引用ツイートカウンター
  268. */
  269. function postToTweetQuoteCounter(langData) {
  270. const counterLinks = document.querySelectorAll(
  271. "article > div > div > div:nth-child(3) > div:nth-child(5) > div > a"
  272. );
  273.  
  274. const splitRetweets = (
  275. langData.e2414184 !== null ? langData.e2414184 : langData.e2414185
  276. ).split('"');
  277.  
  278. const quote =
  279. splitRetweets[1].trim() +
  280. (splitRetweets[5] !== undefined ? splitRetweets[5] : "");
  281.  
  282. counterLinks.forEach((counterLink) => {
  283. const hrefSplit = counterLink.getAttribute("href").split("/");
  284. if (hrefSplit[4] === "retweets" && hrefSplit[5] === "with_comments") {
  285. const counter = counterLink.querySelector("a > span > span");
  286. if (counter !== null) {
  287. if (counter.textContent !== quote) {
  288. counter.textContent = quote;
  289. }
  290. }
  291. }
  292. });
  293. }
  294.  
  295. /**
  296. * 上の「件のツイートを表示」
  297. */
  298. function postToTweetTopCountTweets(langData) {
  299. const showEPostsElem = document.querySelector(
  300. `div[data-testid="cellInnerDiv"] > div > button[role="button"] > div > div > span`
  301. );
  302.  
  303. const splitShowEPosts = (
  304. langData.d6917e0c !== null ? langData.d6917e0c : langData.d6917e0d
  305. ).split('"');
  306.  
  307. if (showEPostsElem !== null) {
  308. const parent =
  309. showEPostsElem.parentElement.parentElement.parentElement.parentElement
  310. .parentElement;
  311.  
  312. const key = Object.keys(parent).filter((key) => {
  313. return key.match(/^__reactProps\$/);
  314. })[0];
  315.  
  316. const count =
  317. parent[key].children._owner.memoizedProps.item.data.content.count;
  318.  
  319. const showEPosts =
  320. count +
  321. " " +
  322. splitShowEPosts[1].trim() +
  323. (splitShowEPosts[5] !== undefined ? splitShowEPosts[5] : "");
  324.  
  325. if (showEPostsElem.textContent !== showEPosts) {
  326. showEPostsElem.textContent = showEPosts;
  327. }
  328. }
  329. }
  330.  
  331. /**
  332. * Header
  333. */
  334. function postToTweetHeader(langData) {
  335. const header = document.querySelector(
  336. `h2[dir="ltr"]:not(#modal-header) > span`
  337. );
  338.  
  339. const toTweet =
  340. langData.bea869b3 !== null ? langData.bea869b3 : langData.bea869b4;
  341.  
  342. const quoteTweet =
  343. langData.c9d7235d !== null ? langData.c9d7235d : langData.bd7c0390;
  344.  
  345. const splitPath = location.pathname.split("/");
  346.  
  347. if (header !== null) {
  348. if (splitPath[2] === "status" && splitPath[4] !== "photo") {
  349. if (splitPath[4] === "retweets" && splitPath[5] === "with_comments") {
  350. if (header.textContent !== quoteTweet) {
  351. header.textContent = quoteTweet;
  352. }
  353. } else {
  354. if (header.textContent !== toTweet) {
  355. header.textContent = toTweet;
  356. }
  357. }
  358. }
  359. }
  360. }
  361.  
  362. /**
  363. * RetweetedBy popup
  364. */
  365. function postToTweetRetweetedByPopup(langData) {
  366. const header = document.querySelector(`h2[dir="ltr"]#modal-header > span`);
  367.  
  368. const splitPath = location.pathname.split("/");
  369. const retweetedBy = langData.d25289b4;
  370.  
  371. if (
  372. header !== null &&
  373. splitPath[4] === "retweets" &&
  374. header.textContent !== retweetedBy
  375. ) {
  376. header.textContent = retweetedBy;
  377. }
  378. }
  379.  
  380. /**
  381. * リポストしました
  382. */
  383. function postToTweetRetweeted(langData) {
  384. const retweeted = langData.h99e9c95.split('"')[3];
  385.  
  386. const retweetedSpans = document.querySelectorAll(
  387. `article span[data-testid="socialContext"]:not(.x-to-Wired-retweeted)`
  388. );
  389.  
  390. retweetedSpans?.forEach((retweetedSpan) => {
  391. retweetedSpan.classList.add("x-to-Wired-retweeted");
  392. if (retweetedSpan.childNodes[2] !== undefined) {
  393. retweetedSpan.childNodes[2].textContent = retweeted;
  394. }
  395. });
  396. }
  397.  
  398. /**
  399. * 上から出てくるやつ
  400. * "さんがツイートしました"
  401. */
  402. function postToTweetTweetedPill(langData) {
  403. const tweeted = langData.d91695cb
  404. .replaceAll(")", ")")
  405. .split(")")[1]
  406. .split(":")[0];
  407. const pill = document.querySelector(
  408. `div[data-testid="pillLabel"] > span > span > span`
  409. );
  410. if (pill !== null && pill.textContent !== tweeted) {
  411. pill.textContent = tweeted;
  412. }
  413. }
  414.  
  415. /**
  416. * プロフィールのタブのツイート
  417. */
  418. function postToTweetProfileTweets(langData) {
  419. const tweets = langData.bab1f8b0;
  420.  
  421. const profileTabPost = document.querySelector(
  422. 'div[role="tablist"] > div[role="presentation"]:nth-child(1) > a > div > div > span'
  423. );
  424.  
  425. const isProfilePage = document.querySelector('div[data-testid="UserProfileHeader_Items"]') !== null
  426.  
  427. if (profileTabPost !== null && profileTabPost.textContent !== tweets && isProfilePage) {
  428. setTimeout(() => {
  429. if (
  430. document.querySelector(
  431. `script[data-testid="UserProfileSchema-test"]`
  432. ) !== null
  433. ) {
  434. profileTabPost.textContent = tweets;
  435. }
  436. });
  437. }
  438. }
  439.  
  440. /**
  441. * Post を Tweet に変更
  442. */
  443. function postToTweet() {
  444. const langData = i18n[getLang()];
  445.  
  446. const ob = new MutationObserver(() => {
  447. postToTweetSideNavNewTweetButton(langData);
  448. postToTweetButtonInline(langData);
  449. postToTweetButton(langData);
  450. postToTweetReplyDraftEditorPlaceholder(langData);
  451. postToTweetRetweetBtn(langData);
  452. postToTweetRetweetCounter(langData);
  453. postToTweetHeader(langData);
  454. postToTweetRetweeted(langData);
  455. postToTweetRetweetedByPopup(langData);
  456. postToTweetTweetedPill(langData);
  457. postToTweetProfileTweets(langData);
  458. postToTweetQuoteCounter(langData);
  459. postToTweetTopCountTweets(langData);
  460. });
  461.  
  462. ob.observe(document.body, {
  463. subtree: true,
  464. childList: true,
  465. });
  466. }
  467.  
  468. /**
  469. * 国際化ファイルのテスト
  470. */
  471. function i18nTest() {
  472. const tests = [
  473. { name: "Tweet", keys: ["bea869b3", "bea869b4"] },
  474. { name: "Reply", keys: ["hdf72269", "d17df548"] },
  475. { name: "Let's all love Lain.", keys: ["e349147c", "e349147b"] },
  476. { name: "Retweet", keys: ["d6c8514a", "d6c85149"] },
  477. { name: "Quote Tweet", keys: ["c9d7235d", "c9d7235e"] },
  478. { name: "Quote Tweets", keys: ["c9d7235d", "bd7c0390"] },
  479. { name: "Undo Retweet", keys: ["f3bbbb87", "fa9ce7f4"] },
  480. { name: "Retweets (counter)", keys: ["hb7b0cea", "hb7b0ceb"] },
  481. { name: "{user} Retweeted", keys: ["h99e9c95"] },
  482. { name: "Retweeted by", keys: ["d25289b4"] },
  483. { name: "{user} Tweeted", keys: ["d91695cb"] },
  484. { name: "Tweets", keys: ["bab1f8b0"] },
  485. { name: "Tweet all", keys: ["f70a36d0"] },
  486. { name: "Show e.count tweets", keys: ["d6917e0c", "d6917e0d"] },
  487. ];
  488.  
  489. let errorExist = false;
  490.  
  491. Object.keys(i18n).forEach((langName) => {
  492. tests.forEach(({ name, keys }) => {
  493. let isPass = false;
  494.  
  495. keys.forEach((key) => {
  496. if (i18n[langName][key] !== null) {
  497. isPass = true;
  498. }
  499. });
  500.  
  501. if (!isPass) {
  502. errorExist = true;
  503. console.log(`❌${langName}: "${name}" Not Passed.`);
  504. }
  505. });
  506. });
  507.  
  508. if (errorExist) {
  509. console.log(
  510. "%c[X to Wired] Did not pass translation test%c",
  511. "color:white; background-color:purple; font-size: 20px",
  512. "",
  513. "\nIf you can provide an appropriate translation, please contact the issue on github\nhttps://github.com/yakisova41/xToWired/issues"
  514. );
  515. }
  516. }
  517.  
  518. /**
  519. * タイトルをWiredに変更
  520. */
  521. function titleChange(head) {
  522. const i = setInterval(() => {
  523. const titleEl = head.querySelector("title");
  524.  
  525. if (titleEl !== null) {
  526. clearInterval(i);
  527.  
  528. const titleOb = new MutationObserver(() => {
  529. if (titleEl.innerHTML === "X") {
  530. titleEl.innerHTML = "Wired";
  531. } else {
  532. const split = titleEl.innerHTML.split("/");
  533.  
  534. if (split[1] === " X") {
  535. split[1] = " Wired";
  536. titleEl.innerHTML = split.join("/");
  537. }
  538. }
  539. });
  540.  
  541. titleOb.observe(titleEl, {
  542. childList: true,
  543. });
  544. }
  545. }, 100);
  546. }
  547.  
  548. /**
  549. * cssを追加
  550. */
  551. function styleInject(head) {
  552. const style = document.createElement("style");
  553.  
  554. const verifiedSelector = `a[href="/i/verified-choose"] > div > div > svg > g > path`;
  555. const verifiedSelectorMobile = `a[href="/i/verified-choose"] > div > svg > g > path`;
  556. const xLogoSelector = `path[d="${paths.xLogoPath}"]:not(${verifiedSelector}):not(${verifiedSelectorMobile})`;
  557. const xLogoDarkmodeSelector = `div[style="text-overflow: unset; color: rgb(239, 243, 244);"] > svg > g > path:not(${verifiedSelector}):not(${verifiedSelectorMobile})`;
  558. const homeSelector = 'a[data-testid="AppTabBar_Home_Link"] > div > div > svg > g > path';
  559.  
  560. style.innerHTML = `
  561. .x-to-Wired {
  562. fill: inherit;
  563. color: ${colors.WiredColor};
  564. }
  565.  
  566. ${xLogoSelector}, path[d="${paths.loadingXLogoPath}"] {
  567. d:path("${paths.birdPath}");
  568. fill: inherit;
  569. color: ${colors.WiredColor};
  570. }
  571.  
  572. ${xLogoDarkmodeSelector} {
  573. color: rgb(239, 243, 244);
  574. }
  575.  
  576. div[aria-label="Loading…"] > svg > g > path {
  577. d:path("${paths.birdPath}");
  578. fill: inherit;
  579. color: ${colors.loadingBirdColor};
  580. }
  581.  
  582. ${verifiedSelector}, ${verifiedSelectorMobile} {
  583. d:path("${paths.verifiedPath}");
  584. }
  585.  
  586. ${homeSelector}:not(path[d="${paths.homePath}"]) {
  587. d:path("${paths.oldHomeActivePath}");
  588. }
  589.  
  590. ${homeSelector}:not(path[d="${paths.homeActivePath}"]) {
  591. d:path("${paths.oldHomePath}");
  592. }
  593. `;
  594. head.appendChild(style);
  595. }
  596.  
  597. /**
  598. * headが見つかったときの処理
  599. */
  600. function headFound(head) {
  601. // favicon change
  602. const faviconHref =
  603. "data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAABSUlEQVR4nO2aSw7CMAxEU9TrcDrgEsDp4EBl01UU1XXT+CF53q5qlIxGjvNxps/tWYJZjP9TiIqVS+Rg/4gMoAXQyABaAI0MoAXQzMCYoeu8RfoIkAG0AJojOaDey1tz2tr7W3j7d+WY9BEgA2gBNHtyQO+c7133rf7qb9f46SNABtACaFo5YPSc994Jeue4q336CJABtACauZy/btd4zwJn69nMCekjQAbQAmhkAC2ARgbQAmjm0nme3oHVv9W+F50FtpABtACa1n3A0PN349ti6P1E+giQAbQAmj11gdE5oSa0DpE+AmQALYCmdSdY07uOj6arDpE+AmQALYDG/Ubo+n642n/vL1d/3vbe8WrSR4AMoAXQTMviK91551gJ3tt7c1T6CJABtACaiLfCo9F9QA8ygBZAcyQHjK71hdYS00eADKAF0PwAJP01cHZopmUAAAAASUVORK5CYII=";
  604.  
  605. const ob = new MutationObserver((e) => {
  606. const shortcutIcon = head.querySelector('[rel="shortcut icon"]');
  607. if (shortcutIcon !== null) {
  608. if (shortcutIcon.getAttribute("href") !== faviconHref) {
  609. shortcutIcon.href = faviconHref;
  610. }
  611. }
  612. });
  613.  
  614. // wait rendering
  615. setTimeout(() => {
  616. ob.observe(head, {
  617. childList: true,
  618. subtree: true,
  619. });
  620. postToTweet();
  621. }, 100);
  622.  
  623.  
  624. styleInject(head);
  625. titleChange(head);
  626. // i18nTest();
  627.  
  628. }
  629.  
  630. /**
  631. * ゴミSafariはcssのpath d変更に対応していないため
  632. * 一つ一つのDOMを書き換えることで対応
  633. */
  634. function trashSafari() {
  635. const ob = new MutationObserver(() => {
  636. const pathElems = document.querySelectorAll(
  637. `path[d="${paths.xLogoPath}"]:not(.x-to-Wired):not(a[href="/i/verified-choose"] > div > div > svg > g > path, a[href="/i/verified-choose"] > div > svg > g > path), path[d="${paths.loadingXLogoPath}"]:not(.x-to-Wired)`
  638. );
  639. if (pathElems.length !== 0) {
  640. pathElems.forEach((path) => {
  641. path.setAttribute("d", paths.birdPath);
  642. path.classList.add("x-to-Wired");
  643. });
  644. }
  645.  
  646. const verifiedElems = document.querySelectorAll(
  647. `a[href="/i/verified-choose"] > div > div > svg > g > path:not(.x-to-Wired-noncolor), a[href="/i/verified-choose"] > div > svg > g > path:not(.x-to-Wired-noncolor)`
  648. );
  649. if (verifiedElems.length !== 0) {
  650. verifiedElems.forEach((path) => {
  651. path.setAttribute("d", paths.verifiedPath);
  652. path.classList.add("x-to-Wired-noncolor");
  653. });
  654. }
  655.  
  656. const homeicon = document.querySelector(`a[data-testid="AppTabBar_Home_Link"] > div > div > svg > g > path:not(.x-to-Wired-birdhome)`);
  657. if(homeicon !== null) {
  658. const d = homeicon.getAttribute("d");
  659. if(d === paths.homeActivePath) {
  660. homeicon.setAttribute("d", paths.oldHomeActivePath)
  661. }
  662. if(d === paths.homePath) {
  663. homeicon.setAttribute("d", paths.oldHomePath)
  664. }
  665.  
  666. homeicon.classList.add("x-to-Wired-birdhome");
  667. }
  668. });
  669.  
  670. ob.observe(document.body, {
  671. subtree: true,
  672. childList: true,
  673. });
  674.  
  675. document
  676. .querySelector('div[aria-label="Loading…"] > svg > g > path')
  677. .setAttribute("d", paths.birdPath);
  678. }
  679.  
  680. /**
  681. * PWAのmanifestをWiredに書き換える
  682. * !! 拡張機能でのみ動作
  683. */
  684. function replaceManifest(head) {
  685. document.querySelector('link[rel="manifest"]').remove();
  686. const manifestEl = document.createElement("link");
  687. manifestEl.setAttribute("rel", "manifest");
  688. manifestEl.setAttribute("crossorigin", "use-credentials");
  689. manifestEl.setAttribute(
  690. "href",
  691. );
  692. head.prepend(manifestEl);
  693. }
  694.  
  695. /**
  696. * スクリプトを実行
  697. */
  698. function main() {
  699. if (typeof GM_info !== "undefined") {
  700. // userscript
  701. let head;
  702. if (GM_info.scriptHandler === "Userscripts") {
  703. // ios
  704. head = document.head;
  705. trashSafari();
  706. } else {
  707. head = unsafeWindow.document.head;
  708. }
  709.  
  710. if (head !== null && head !== undefined) {
  711. headFound(head);
  712. } else {
  713. const i = setInterval(() => {
  714. const head = document.head;
  715. if (head !== undefined && head !== null) {
  716. clearInterval(i);
  717. headFound(head);
  718. }
  719. });
  720. }
  721. } else {
  722. // extension
  723. const i = setInterval(() => {
  724. const head = document.head;
  725. if (head !== null) {
  726. clearInterval(i);
  727. headFound(head);
  728. setTimeout(() => {
  729. replaceManifest(head);
  730. }, 100)
  731. }
  732. });
  733. }
  734. }
  735.  
  736. main();