Skip to content

Instantly share code, notes, and snippets.

omarstreak

Block or report user

Report or block omarstreak

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View comment.js
/*! Streak launches new features to users every day. Users love our fast updates and quick response to bugs.
* In order to accomplish this we use the popular InboxSDK library (www.inboxsdk.com). Its used by
* several large organizations:
* Dropbox (https://chrome.google.com/webstore/detail/dropbox-for-gmail-beta/dpdmhfocilnekecfjgimjdeckachfbec)
* HubSpot (https://chrome.google.com/webstore/detail/hubspot-sales/oiiaigjnkhngdbnoookogelabohpglmd)
* Stripe (https://chrome.google.com/webstore/detail/stripe-for-gmail/dhnddbohjigcdbcfjdngilgkdcbjjhna)
* Giphy (https://chrome.google.com/webstore/detail/giphy-for-gmail/andgibkjiikabclfdkecpmdkfanpdapf)
* Clearbit (https://chrome.google.com/webstore/detail/clearbit-connect-supercha/pmnhcgfcafcnkbengdcanjablaabjplo)
* The use of the library is similar to using other popular javascript libraries like jQuery and Underscore
*
View content.js
/* this file is the "app" file that loads the sdk and brings up the iframe */
function log() {
console.log.apply(console, ['iframe-test'].concat(Array.prototype.slice.call(arguments)));
}
InboxSDK.load(1, 'iframe-test').then(function(sdk) {
sdk.Compose.registerComposeViewHandler(function(composeView) {
composeView.addButton({
title: "iframe test",
@omarstreak
omarstreak / Unquoted.js
Created Feb 1, 2016
Get unquoted text
View Unquoted.js
function extract(mv){
//NodeIterators are really cool: https://developer.mozilla.org/en-US/docs/Web/API/NodeIterator
var nodeIterator = document.createNodeIterator(
mv.getBodyElement(),
NodeFilter.SHOW_ELEMENT,
{
acceptNode: function(node){
//this is the main function where the interesting code occurs
//because node iterator is a recursive tree walk you'll see every node below the body element
//this includes nodes that contain both the html we want, and html we don't want
@omarstreak
omarstreak / threadDataManager.js
Created Sep 10, 2015
Thread Data Manager example
View threadDataManager.js
import Kefir from 'kefir';
class ThreadDataManager {
constructor(){
Kefir.stream(emitter => {this._emitter = emitter; return () => null});
this._threadData = {}; //map from threadID to thread data
}
setThreadData(threadID, data){
this._threadData[threadID] = data;
View inboxsdk-threadrowview-stream-example.js
sdk.Lists.registerThreadRowViewHandler(function(threadRowView){
var emitter; //variable name to hoist the emitter to
var stream = Kefir.stream(function(inEmitter){
emitter = inEmitter;
return function(){}; //we need to return a function that gets called when the stream ends
});
threadRowView.addLabel(stream); //add the label passing in the stream
@omarstreak
omarstreak / background.js
Last active Oct 1, 2019
Chrome API Extension
View background.js
//oauth2 auth
chrome.identity.getAuthToken(
{'interactive': true},
function(){
//load Google's javascript client libraries
window.gapi_onload = authorize;
loadScript('https://apis.google.com/js/client.js');
}
);
@omarstreak
omarstreak / createAndSign.sh
Created Jan 18, 2013
Create and sign your safari extension file
View createAndSign.sh
XAR=path/to/xar/bin
BUILD_DIR=path/to/dir/with/cert/files
EXTENSION=your extension name
$XAR -czf $EXTENSION.safariextz --distribution $EXTENSION.safariextension
$XAR --sign -f $EXTENSION.safariextz --digestinfo-to-sign digest.dat --sig-size `cat $BUILD_DIR/size.txt` --cert-loc $BUILD_DIR/cert.der --cert-loc $BUILD_DIR/cert01 --cert-loc $BUILD_DIR/cert02
openssl rsautl -sign -inkey $BUILD_DIR/key.pem -in digest.dat -out sig.dat
$XAR --inject-sig sig.dat -f $EXTENSION.safariextz
rm -f sig.dat digest.dat
@omarstreak
omarstreak / Install XAR
Created Jan 18, 2013
Bash script to install XAR. Run as root and takes one command line argument where you want the xar executable to exist.
View Install XAR
#!/bin/bash
if [ "`whoami`" != "root" ]; then
printf "Please run this script as root or using sudo\n"
exit 0
fi
LIB_DIR=$1
CURRENT_DIR=`pwd`
printf "Setting up XAR\n"
View gist:4076146
/* animation for even number of compose windows */
@-webkit-keyframes streakComposeTriggerEven {
from { clip: rect(1px, auto, auto, auto); }
to { clip: rect(0px, auto, auto, auto); }
}
.streakGmailComposeChildren:first-child:nth-last-child(2n) {
-webkit-animation-duration: 0.001s;
-webkit-animation-name: streakComposeTriggerEven;
}
@omarstreak
omarstreak / table.html
Created Jul 9, 2012
Standard table structure
View table.html
<table>
<tbody>
<tr>
<td>...</td>
<td>...</td>
...
</tr>
...
</tbody>
</table>
You can’t perform that action at this time.