devRant - Quick Emoji

A quick emoji bar for devRant.io

  1. // ==UserScript==
  2. // @name devRant - Quick Emoji
  3. // @namespace pxgamer
  4. // @version 0.3
  5. // @description A quick emoji bar for devRant.io
  6. // @author pxgamer
  7. // @include *devrant.io/*
  8. // @grant none
  9. // ==/UserScript==
  10. /*jshint multistr: true */
  11.  
  12. (function() {
  13. 'use strict';
  14. $('head').append('<style>.quickEmoji{cursor:pointer}.emojibar{background-color:#aaaab8;color:#fff;padding:4px 14px;font-size:14px;border-bottom:0.2em solid grey}</style>');
  15.  
  16. jQuery.fn.extend({
  17. insertAtCaret: function(myValue){
  18. return this.each(function(i) {
  19. if (document.selection) {
  20. //For browsers like Internet Explorer
  21. this.focus();
  22. sel = document.selection.createRange();
  23. sel.text = myValue;
  24. this.focus();
  25. }
  26. else if (this.selectionStart || this.selectionStart == '0') {
  27. //For browsers like Firefox and Webkit based
  28. var startPos = this.selectionStart;
  29. var endPos = this.selectionEnd;
  30. var scrollTop = this.scrollTop;
  31. this.value = this.value.substring(0, startPos)+myValue+this.value.substring(endPos,this.value.length);
  32. this.focus();
  33. this.selectionStart = startPos + myValue.length;
  34. this.selectionEnd = startPos + myValue.length;
  35. this.scrollTop = scrollTop;
  36. } else {
  37. this.value += myValue;
  38. this.focus();
  39. }
  40. });
  41. }
  42. });
  43.  
  44. $('.post-rant-bottom').before(`
  45. <div class="emojibar">
  46. <span class="quickEmoji" title="Grinning">?</span>
  47. <span class="quickEmoji" title="Joy">?</span>
  48. <span class="quickEmoji" title="Smile">?</span>
  49. <span class="quickEmoji" title="Rofl">?</span>
  50. <span class="quickEmoji" title="Laugh">?</span>
  51. <span class="quickEmoji" title="Wink">?</span>
  52. <span class="quickEmoji" title="Neutral">?</span>
  53. <span class="quickEmoji" title="Smiley eyes">?</span>
  54. <span class="quickEmoji" title="Sad">☹️</span>
  55. <span class="quickEmoji" title="Weary">?</span>
  56. <span class="quickEmoji" title="Love">?</span>
  57. <span class="quickEmoji" title="Cool">?</span>
  58. </div>
  59. `);
  60.  
  61. $('.quickEmoji').click(function(){
  62. var emoji = $(this).text();
  63. if (location.href.indexOf('rants/') > -1) {
  64. $('#comment').insertAtCaret(emoji);
  65. } else {
  66. $('#rant').insertAtCaret(emoji);
  67. }
  68. });
  69. })();