您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Voegt vele emoticons toe op Bronies.nl, die te vinden zijn onder de quick-reply en volledige reply.
// ==UserScript== // @name BroniesNL Emotipons // @namespace Ossie/BroniesNL/Emotipons // @description Voegt vele emoticons toe op Bronies.nl, die te vinden zijn onder de quick-reply en volledige reply. // @include http://www.bronies.nl/e107_plugins/forum/* // @include https://www.bronies.nl/e107_plugins/forum/* // @include http://bronies.nl/e107_plugins/forum/* // @include https://bronies.nl/e107_plugins/forum/* // @require http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js // @version 6 // @grant none // ==/UserScript== //Associative array for all emoticons var emos = { 'applelie':'http://www.bronies.de/images/smilies/applelie.png', 'ajbemused':'http://www.fimfiction-static.net/images/emoticons/ajbemused.png', 'ajsmug':'http://www.fimfiction-static.net/images/emoticons/ajsmug.png', 'ajsleepy':'http://www.fimfiction-static.net/images/emoticons/ajsleepy.png', 'applejackconfused':'http://www.fimfiction-static.net/images/emoticons/applejackconfused.png', 'applejackunsure':'http://www.fimfiction-static.net/images/emoticons/applejackunsure.png', 'asmug':'http://cdn.broni.es/images/emotes/mlp-asmug.png', 'aawkward':'http://cdn.broni.es/images/emotes/mlp-aawkward.png', 'aglaring':'http://cdn.broni.es/images/emotes/mlp-aglaring.png', 'ablush':'http://cdn.broni.es/images/emotes/mlp-ablush.png', 'ashrug':'http://cdn.broni.es/images/emotes/mlp-ashrug.png', 'flutterrage':'http://www.fimfiction-static.net/images/emoticons/flutterrage.png', 'fluttercry':'http://www.fimfiction-static.net/images/emoticons/fluttercry.png', 'fluttershbad':'http://www.fimfiction-static.net/images/emoticons/fluttershbad.png', 'fluttershyouch':'http://www.fimfiction-static.net/images/emoticons/fluttershyouch.png', 'fluttershysad':'http://www.fimfiction-static.net/images/emoticons/fluttershysad.png', 'fluttershyyay':'http://www.fimfiction-static.net/images/emoticons/yay.png', 'fsmug':'http://cdn.broni.es/images/emotes/mlp-fsmug2.png', 'fstern':'http://cdn.broni.es/images/emotes/mlp-fstern.png', 'fpanic':'http://cdn.broni.es/images/emotes/mlp-fpanic.png', 'ffrown':'http://cdn.broni.es/images/emotes/mlp-ffrown.png', 'fpleaseno':'http://cdn.broni.es/images/emotes/mlp-fpleaseno.png', 'fbat':'http://i.imgur.com/o98UzQu.png', 'pinkiecrazy':'http://www.fimfiction-static.net/images/emoticons/pinkiecrazy.png', 'pinkiegasp':'http://www.fimfiction-static.net/images/emoticons/pinkiegasp.png', 'pinkiehappy':'http://www.fimfiction-static.net/images/emoticons/pinkiehappy.png', 'pinkiesad2':'http://www.fimfiction-static.net/images/emoticons/pinkiesad2.png', 'pinkiesick':'http://www.fimfiction-static.net/images/emoticons/pinkiesick.png', 'pinkiesmile':'http://www.fimfiction-static.net/images/emoticons/pinkiesmile.png', 'pido':'http://cdn.broni.es/images/emotes/mlp-pido.png', 'pparty':'http://cdn.broni.es/images/emotes/ppartytime.png', 'pgasp':'http://cdn.broni.es/images/emotes/mlp-pgasp.png', 'pjoy':'http://cdn.broni.es/images/emotes/mlp-pjoy.png', 'pscared':'http://cdn.broni.es/images/emotes/mlp-pscared.png', 'pplotting':'http://cdn.broni.es/images/emotes/mlp-pplotting.png', 'ppunamused':'http://i.imgur.com/XH3faPN.png', 'rainbowderp':'http://www.fimfiction-static.net/images/emoticons/rainbowderp.png', 'rainbowdetermined2':'http://www.fimfiction-static.net/images/emoticons/rainbowdetermined2.png', 'rainbowhuh':'http://www.fimfiction-static.net/images/emoticons/rainbowhuh.png', 'rainbowkiss':'http://www.fimfiction-static.net/images/emoticons/rainbowkiss.png', 'rainbowlaugh':'http://www.fimfiction-static.net/images/emoticons/rainbowlaugh.png', 'rainbowwild':'http://www.fimfiction-static.net/images/emoticons/rainbowwild.png', 'rdlaugh':'http://www.bronies.de/images/smilies/rdlaugh.png', 'rddealwithit':'http://www.bronies.de/images/smilies/dealwithit.png', 'rdwink':'http://i.imgur.com/HL1k4Uy.png', 'rdsexy':'http://cdn.broni.es/images/emotes/mlp-dsexy.png', 'rdsalute':'http://cdn.broni.es/images/emotes/mlp-dsalute.png', 'rdlulz':'http://cdn.broni.es/images/emotes/mlp-dlulz.png', 'rdstare':'http://cdn.broni.es/images/emotes/mlp-dstare.png', 'rdblush':'http://cdn.broni.es/images/emotes/mlp-dblush.png', 'rdflut':'http://cdn.broni.es/images/emotes/mlp-nsiwh.png', 'rdderp':'http://i.imgur.com/ii0O4Mw.png', 'rdsad':'http://i.imgur.com/38UHWxB.png', 'rdstache':'http://i.imgur.com/VsRloiY.png', 'rdsmile':'http://i.imgur.com/NB1Jxdz.png', 'raritycry':'http://www.fimfiction-static.net/images/emoticons/raritycry.png', 'raritydespair':'http://www.fimfiction-static.net/images/emoticons/raritydespair.png', 'raritystarry':'http://www.fimfiction-static.net/images/emoticons/raritystarry.png', 'raritywink':'http://www.fimfiction-static.net/images/emoticons/raritywink.png', 'rarityduck':'http://www.fimfiction-static.net/images/emoticons/duck.png', 'ryell':'http://cdn.broni.es/images/emotes/mlp-ryell.png', 'rsrs':'http://cdn.broni.es/images/emotes/mlp-rseriously.png', 'rwink':'http://cdn.broni.es/images/emotes/mlp-rwink.png', 'rpissed':'http://cdn.broni.es/images/emotes/mlp-rpissed.png', 'rsexy':'http://cdn.broni.es/images/emotes/mlp-rsexy.png', 'rteehee':'http://cdn.broni.es/images/emotes/mlp-rteehee.png', 'rclap':'http://cdn.broni.es/images/emotes/mlp-rclap.png', 'twilightangry2':'http://www.fimfiction-static.net/images/emoticons/twilightangry2.png', 'twilightblush':'http://www.fimfiction-static.net/images/emoticons/twilightblush.png', 'twilightoops':'http://www.fimfiction-static.net/images/emoticons/twilightoops.png', 'twilightsmile':'http://www.fimfiction-static.net/images/emoticons/twilightsmile.png', 'twilightfh':'http://www.fimfiction-static.net/images/emoticons/facehoof.png', 'tannoy':'http://cdn.broni.es/images/emotes/mlp-tannoy.png', 'tsupersad':'http://cdn.broni.es/images/emotes/mlp-tsupersad.png', 'tgrin':'http://cdn.broni.es/images/emotes/mlp-tgrin.png', 'tohdamn':'http://cdn.broni.es/images/emotes/mlp-tohdamn.png', 'tyay':'http://cdn.broni.es/images/emotes/mlp-tyell.png', 'twut':'http://cdn.broni.es/images/emotes/mlp-twut.png', 'tsmug':'http://cdn.broni.es/images/emotes/mlp-tssmug.png', 'twiface':'http://i.imgur.com/L9WqHHQ.png', 'twicane':'http://i.imgur.com/YpSKebb.png', 'applebloomcry':'http://www.fimfiction-static.net/images/emoticons/applecry.png', 'abdoc':'http://cdn.broni.es/images/emotes/mlp-ablupus.png', 'abhap':'http://cdn.broni.es/images/emotes/mlp-abhappy.png', 'coolphoto':'http://www.fimfiction-static.net/images/emoticons/coolphoto.png', 'pfpleased':'http://cdn.broni.es/images/emotes/mlp-pfpleased.png', 'scootangel':'http://www.fimfiction-static.net/images/emoticons/scootangel.png', 'schappy':'http://cdn.broni.es/images/emotes/mlp-schappy.png', 'scgotthis':'http://i.imgur.com/lOTf8qu.png', 'trixieshiftleft':'http://www.fimfiction-static.net/images/emoticons/trixieshiftleft.png', 'trixieshiftright':'http://www.fimfiction-static.net/images/emoticons/trixieshiftright.png', 'trixietest':'http://cdn.broni.es/images/emotes/mlp-trsmug2.png', 'derpy':'http://img854.imageshack.us/img854/7462/derppk.png', 'derpyderp1':'http://www.fimfiction-static.net/images/emoticons/derpyderp1.png', 'derpytongue2':'http://www.fimfiction-static.net/images/emoticons/derpytongue2.png', 'derpysg':'http://cdn.broni.es/images/emotes/mlp-dedealwith2.png', 'derpyhappy':'http://cdn.broni.es/images/emotes/mlp-dehappy.png', 'twistnerd':'http://www.fimfiction-static.net/images/emoticons/twistnerd.png', 'unsuresweetie':'http://www.fimfiction-static.net/images/emoticons/unsuresweetie.png', 'swshock':'http://cdn.broni.es/images/emotes/mlp-swshock.png', 'swlove':'http://cdn.broni.es/images/emotes/mlp-swlove.png', 'cheerilee':'http://www.bronies.de/images/smilies/cheerilee.png', 'chesmile':'http://i.imgur.com/Jkki3Ud.png', 'chsmug':'http://i.imgur.com/odkhzgd.png', 'trollestia':'http://www.bronies.de/images/smilies/trollestia.png', 'trollestia2':'http://www.fimfiction-static.net/images/emoticons/trollestia.png', 'celesyay':'http://cdn.broni.es/images/emotes/mlp-ceyay.png', 'lustare':'http://cdn.broni.es/images/emotes/mlp-lstare.png', 'luhappy':'http://cdn.broni.es/images/emotes/mlp-luhappy.png', 'lufun':'http://cdn.broni.es/images/emotes/mlp-lfun.png', 'lunatic':'http://i.imgur.com/IEV05oY.png', 'pcrolleye':'http://cdn.broni.es/images/emotes/mlp-pcrolleye.png', 'pchappy':'http://cdn.broni.es/images/emotes/mlp-pchappy.png', 'saface':'http://cdn.broni.es/images/emotes/mlp-sacontent.png', 'discord':'http://cdn.broni.es/images/emotes/mlp-discnotamused.png', 'qc':'http://cdn.broni.es/images/emotes/mlp-chrysexy.png', 'som':'http://cdn.broni.es/images/emotes/mlp-somcontent.png', 'moustache':'http://www.fimfiction-static.net/images/emoticons/moustache.png', 'uberspike':'http://cdn.broni.es/images/emotes/mlp-ssmug.png', 'spikesg':'http://cdn.broni.es/images/emotes/mlp-sdealwith.png', 'spikesrs':'http://cdn.broni.es/images/emotes/mlp-spsrsly.png', 'eeyup':'http://www.fimfiction-static.net/images/emoticons/eeyup.png', 'bmgrin':'http://cdn.broni.es/images/emotes/mlp-bmgrin.png', 'lyrawat':'http://bronies.de/images/smilies/lyra.png', 'lyrabon':'http://cdn.broni.es/images/emotes/mlp-lbbhug.png', 'octavia':'http://www.bronies.de/images/smilies/octaviaangry.png', 'octsup':'http://cdn.broni.es/images/emotes/mlp-osurprise.png', 'octhappy':'http://cdn.broni.es/images/emotes/mlp-ohappy.png', 'octhug':'http://i.imgur.com/y4hm0bd.png', 'octmad':'http://i.imgur.com/nlNfR64.png', 'octclap':'http://cdn.broni.es/images/emotes/mlp-oclap.png', 'bssmug':'http://cdn.broni.es/images/emotes/mlp-bssmug.png', 'bshappy':'http://cdn.broni.es/images/emotes/mlp-bshappy.png', 'zecgrin':'http://cdn.broni.es/images/emotes/mlp-zgrin.png', 'vsgrin':'http://cdn.broni.es/images/emotes/mlp-scratch.png', 'vssmug':'http://cdn.broni.es/images/emotes/mlp-vssmug.png', 'vshappy':'http://i.imgur.com/XGPW5t1.png', 'afoops':'http://cdn.broni.es/images/emotes/mlp-afoops.png', 'fluffle':'http://i.imgur.com/TejaU6g.png', 'bmmeh':'http://i.imgur.com/ff1KxNK.png', 'bmno':'http://i.imgur.com/cZYtY2H.gif', 'bmhappy':'http://i.imgur.com/IgrqU4e.png', 'brohoof':'http://www.bronies.de/images/smilies/brohoof.png', 'scemo':'http://i.imgur.com/67AHG4x.png', 'ttemo':'http://i.imgur.com/X0y9Gg7.png', 'heart':'http://images2.wikia.nocookie.net/callofduty4s/images/7/71/Spike_and_rarity_s_heart_shaped_fire_ruby_by_edwardten-d4jbvk5.png', 'heart2':'http://www.fimfiction-static.net/images/emoticons/heart.png', ':\')':'http://i.imgur.com/iLRw3RS.gif', }; //Demotify when writing a reply try{ if($('#post').length != 0) { demotify(); } } catch(err) {} //Show normal reply emoticon tools if($('#post').length != 0) { $('.button').click(emotify); $('#dataform').append(allEmoticons); $('.emotipon').click(insertEmoticon); } //Show quick reply emoticon tools if(document.location.href.indexOf('/forum_viewtopic.php') != -1) { if($('.forumheader3 form p .tbox').length != 0) { $('.forumheader3 form p .tbox').parent().append(toggleBox); $('.toggleemoticons').click(showToggleBox); $('.qemotipon').click(insertEmoticonQuick); $('.button').click(quickEmotify); } } //Replace emoticons after normal reply function emotify() { var text = $('#post').val(); for(emo in emos) { var search = "[" + emo + "]"; //var replace = "[img height=27]" + emos[emo] + "[/img]"; //New replace technique for resizing var replace = "[img style=max-height:27px]" + emos[emo] + "[/img]"; text = replaceAll(search, replace, text); } $('#post').val(text); } //Replace emoticons after quick reply function quickEmotify() { var text = $('.forumheader3 form p .tbox').val(); for(emo in emos) { var search = "[" + emo + "]"; //var replace = "[img height=27]" + emos[emo] + "[/img]"; //New replace technique for resizing var replace = "[img style=max-height:27px]" + emos[emo] + "[/img]"; text = replaceAll(search, replace, text); } $('.forumheader3 form p .tbox').val(text); } //Convert emoticons to tags when editing posts function demotify() { var text = $('#post').val(); for(emo in emos) { //Use both search techniques for backwards compatability var search = "[img height=27]" + emos[emo] + "[/img]"; var search2 = "[img style=max-height:27px]" + emos[emo] + "[/img]"; var replace = "[" + emo + "]"; text = replaceAll(search, replace, text); text = replaceAll(search2, replace, text); } $('#post').val(text); } //Show all emoticons function allEmoticons() { var html = ''; for(emo in emos) { html += '<img class="emotipon" src="'+emos[emo]+'" alt="'+emo+'" style="max-height:27px;"/>'; } return html; } //Show/hide emoticon box function showToggleBox(event) { if($('.emoticonbox').is(":visible")) { $('.emoticonbox').hide(); } else { $('.emoticonbox').show(); } } //HTML code for emoticon toggle box function toggleBox() { var html = '<img src="http://www.fimfiction-static.net/images/emoticons/yay.png" alt="Show/Hide Emotipons" class="toggleemoticons" style="max-height:27px;"></img><BR><div class="emoticonbox" style="color:#FFF;text-align:left;display:none;background:rgba(50,50,50,0.6);border:1px solid rgba(150,150,150,0.5);">'; for(emo in emos) { html += '<img class="qemotipon" src="'+emos[emo]+'" alt="'+emo+'" style="max-height:27px;"/>'; } html += '</div>' return html; } //Insert emoticon event (from normal reply) function insertEmoticon(event) { $('#post').insertAtCaret('['+$(this).attr("alt")+']') } //Insert emoticon event (from quick reply) function insertEmoticonQuick(event) { $('.forumheader3 form p .tbox').insertAtCaret('['+$(this).attr("alt")+']') } //Replace all occurences in text function replaceAll(str1, str2, text, ignore) { return text.replace(new RegExp(str1.replace(/([\,\!\\\^\$\{\}\[\]\(\)\.\*\+\?\|\<\>\-\&])/g, function(c){return "\\" + c;}), "g"+(ignore?"i":"")), str2); }; jQuery.fn.extend({ insertAtCaret: function(myValue){ return this.each(function(i) { if (this.selectionStart || this.selectionStart == '0') { var startPos = this.selectionStart; var endPos = this.selectionEnd; var scrollTop = this.scrollTop; this.value = this.value.substring(0, startPos)+myValue+this.value.substring(endPos,this.value.length); this.focus(); this.selectionStart = startPos + myValue.length; this.selectionEnd = startPos + myValue.length; this.scrollTop = scrollTop; } else { this.value += myValue; this.focus(); } }) } });