// ==UserScript== // @name Kbin Easy Emoticon // @namespace http://tampermonkey.net/ // @version 0.6.3 // @description easy way to add emoticons to your text with / commands // @author minnieo // @match https://kbin.social/* // @match https://fedia.io/* // @match https://karab.in/* // @match https://www.kbin.cafe/* // @icon https://upload.wikimedia.org/wikipedia/commons/2/24/Lenny_face.png // @grant none // @license GNU GPLv3 // @downloadURL none // ==/UserScript== // thanks for using!! ❤︎❤︎❤︎❤︎❤︎❤︎❤︎ (function() { 'use strict'; let eventListener; const emoticons = { '/shrug': '¯\\\\_(ツ)\\_/¯', '/lenny': '( ͡° ͜ʖ ͡°)', '/lenshrug': '¯\\_( ͡° ͜ʖ ͡°)_/¯', '/flipoff': '( ͡° ͜ʖ ͡°)╭∩╮', '/lenwink': '( ͡~ ͜ʖ ͡°)', '/welp': 'ツ', '/lensexy': '(͠≖ ͜ʖ͠≖)', '/tableflip': '(╯°□°)╯︵ ┻━┻', '/tableback': '┬─┬ノ( º _ ºノ)', '/bear': 'ʕ •ᴥ•ʔ', '/1bear': 'ʕっ• ᴥ • ʔっ', '/3hearteyes': '(♡ヮ♡)', '/happy': '╰(´꒳`)╯', '/rawr': '૮ ˙Ⱉ˙ ა', '/blush': '( ⸝⸝´꒳`⸝⸝)', '/1blush': '(o/////o " )', '/2blush': '⁄(⁄ ⁄•⁄-⁄•⁄ ⁄)⁄', '/1happy': '( ˶ˆ꒳ˆ˵ )', '/3blush': '(⸝⸝⸝• ω •⸝⸝⸝) ♡', '/smirk': '( ͡º ꒳ ͡º)', '/givelove': '(˘︶˘).。.:*♡', '/kiss': '( ˘ ³˘)♥', '/frown': '( •̀ - •́ )', '/wink': '(˵ •̀ ᴗ - ˵ ) ✧', '/awesome': '৻( •̀ ᗜ •́ ৻)', '/tough': 'ᕙ( •̀ ᗜ •́ )ᕗ', '/pleased': '(ㅅ´ ˘ `)', '/cry': '(╥﹏╥)', '/bummed': '( • ᴖ • 。 )', '/wave': '◝(ᵔᵕᵔ)◜', '/decor': '♡⟡˙⋆', '/2decor': ' ⋆˙⟡♡', '/heart': '❤︎', '/1heart': '♡', '/star': '★', '/flower': '✿', '/concern': '(。•́︿•̀。)', '/4blush': '(⸝⸝ᵕᴗᵕ⸝⸝)', '/3happy': '(ノ^ヮ^)ノ', '/4happy': 'ᐠ( ᐛ )ᐟ', '/unhappy': '(¬_¬")', 'comfort': '( ´・・)ノ(._.`)', '/look': 'ಠ_ಠ', '/5happy': 'ᕕ( ᐛ )ᕗ', '/depress': '(◞‸◟)', '/shy': '( っ- ‸ - c)', '/bash': '(/▽\)', '/lenblush': '( ͡°⁄ ⁄ ͜⁄ ⁄ʖ ⁄ ⁄ ͡°)', '/heh': '╮( ̄▽ ̄)╭', '/energy': '༼ つ ◕_◕ ༽つ', '/1welp': '(งツ)ว', '/plead': '( •̯́ ^ •̯̀)', '/glad': '✧⁺⸜(●′▾‵●)⸝⁺✧', '/stoic': '( ་ ⍸ ་ )', '/cheer': '✽-(ˆ▽ˆ)/✽ ✽\\(ˆ▽ˆ)-✽', '/rush': '(•⌓• )⁼³₌₃', '/um': '(•-• )', '/evil': '(¬‿¬)', '/sparkles': '(ノ◕ヮ◕)ノ*:・゚✧', '/blank': '(。。\\)', '/sus': '눈_눈', '/2heh': '( ̄▽ ̄)"', '/smug': '( ¬ω¬)', '/3welp': '╮(╯-╰)╭', '/nunnun': '(๑╹ᆺ╹)', '/squint': '(≖_≖ )', '/donger': 'ヽ༼ຈل͜ຈ༽ノ', '/2donger': 'ヽ༼° ل͜ °༽ノ', '/3donger': 'ヽ༼⊙ل͜⊙༽ノ', '/4donger': 'ヽ༼≖ل͜≖༽ノ', '/5donger': 'ヽ༼ ・ ل͜ ・ ༽ノ', '/6donger': 'ヽ༼◉ل͜◉༽ノ', '/7donger': 'ヽ༼ ºلº ༽ノ', '/hmpf': '(︶^︶)', '/2awesome': '(◉ω◉)', '/2blank': '(・へ・)', '/3blank': '( ´_ゝ`)', '/4blank': "'ㅅ'", '/5blank': '(_ _;)', '/2um': '(⚆_⚆)', '/2cheer': '( ´▽`)o自自o(´▽` )', '/patpat': '( ´▽`)ノ(´・ω・`)', '/dance': '♪┏(・o・)┛♪', '/why': 'щ(゚Д゚щ)', '/6blank': '( ゚ヮ゚)...' }; function emoticonGen() { eventListener = (e) => { if (e.target.tagName === 'TEXTAREA') { emoticonMake(e.target); console.log('working'); } }; document.addEventListener('input', eventListener) } function emoticonMake(param) { let text = param.value; for (const [command, emoticon] of Object.entries(emoticons)) { text = text.replace(new RegExp(command, 'g'), `${emoticon} `); } param.value = text; } emoticonGen(); })();