Skip to content

Instantly share code, notes, and snippets.

@DanielKoehler
Last active August 29, 2015 14:25
Show Gist options
  • Select an option

  • Save DanielKoehler/60086c3234b413c34318 to your computer and use it in GitHub Desktop.

Select an option

Save DanielKoehler/60086c3234b413c34318 to your computer and use it in GitHub Desktop.
Event dispatch wrapper for Facebook message & thread drafts creation. May be used as a way to ascertain an active Facebook thread.

Script

var originalSetItem = localStorage.setItem; 
localStorage.setItem = function(){
   
    var re = new RegExp('^mercury-drafts:([0-9]+)(root|user):([0-9]+|<([0-9]+):([0-9-]+)@mail.projektitan.com>)$');
                
    if (re.test(arguments[0])){
        
        var detail = {
                        __t: /"__t":([0-9]+),/.exec(arguments[1])[1],
                        id: re.exec(arguments[0])[1]
                    };
        
        var e = document.createEvent('CustomEvent')
        e.initCustomEvent('ActiveThreadChanged', true, true, detail)

        window.dispatchEvent(e);
    }
     
    originalSetItem.apply(this, arguments);
}

Example usage

window.addEventListener("ActiveThreadChanged", function(evt) {
    
    console.log( evt.detail );
    
}, false);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment