megaLucario / Enfeita frases bate papo uol beta

Script funcionando:

// ==UserScript==
// @name         Enfeita frases bate papo uol beta
// @version      0.0
// @description  Enfeita frases bate papo uol beta
// @author       megaLucario
// @match        http://batepapo.uol.com.br/beta/*
// @grant        none
// ==/UserScript==
'use strict';


var enfeites = function(){
    var scope = angular.element($('#sendBtn')).scope();
    var oldSendMsg = scope.sendMsg;

    scope.sendMsg = function() {	
       scope.text = "#" + scope.text + "#";
       oldSendMsg();
    }
}



var enfeitesInterval = setInterval(function(){
    if(document.querySelector('#chatMessageSend')){
        enfeites();
        clearInterval(enfeitesInterval);
    }
}, 100);

O que foi feito nele?
Na função "enfeites()" eu recuperei o escopo que o botão "sendBtn" faz parte e atribui ele à uma variável.
Atribui também à uma variável a função "nativa" de envio de mensagens, que está no escopo como "sendMsg".

Tendo o escopo e a função original salvas e seguras em variáveis locais, redefini a função nativa "sendMsg" do escopo, interceptando o texto no escopo antes mesmo de fazer todo o envio de mensagem. Depois, pra finalizar, basta chamar novamente a função original (que foi atribuída à variável "oldSendMsg").

O resto é só aquele setup do script.