Skip to main content

A Python implementation of the dotjs HTTP server

Project description

dotjs is a Google Chrome extension that executes JavaScript files in ~/.js based on their filename.

If you navigate to http://www.google.com/, dotjs will execute ~/.js/google.com.js.

This makes it super easy to spruce up your favorite pages using JavaScript.

On subdomains such as http://gist.github.com dotjs will try to load ~/.js/gist.github.com.js as well as ~/.js/github.com.js and ~/.js/com.js.

Bonus: files in ~/.js have jQuery 1.9 loaded, regardless of whether the site you’re hacking uses jQuery.

Double bonus: ~/.js/default.js is loaded on every request, meaning you can stick plugins or helper functions in it.

GreaseMonkey user scripts are great, but you need to publish them somewhere and re-publish after making modifications. With dotjs, just add or edit files in ~/.js.

Example

$ cat ~/.js/github.com.js
// swap github logo with trollface
$('a[class^=header-logo-]').html(
$('<img>')
    .attr('src', '//bit.ly/ghD24e')
    .css({'width': 'auto', 'height': '22px'})
);

How It Works

Chrome extensions can’t access the local filesystem, so dotjs runs a tiny web server on port 3131 that serves files out of ~/.js.

The dotjs Chrome extension then makes ajax requests to http://localhost:3131/convore.com.js any time you hit a page on convore.com, for example, and executes the returned JavaScript.

Requires

  • Python >= 2.6

  • Google Chrome

Install it

git clone http://github.com/hackedd/python-dotjs
cd python-dotjs
python setup.py install

Now open https://localhost:3131 in Chrome and follow these steps:

OS X:

  • Click the “X” Padlock icon in the address bar

  • Click “Certificate Information”

  • Drag the large cert icon to your desktop

  • Open it with Keychain

  • Configure its Trust section as shown: http://cl.ly/Pdny

Windows:

  • Click the “X” Padlock icon in the address bar

  • Click “Certificate Information”

  • On the “Details” tab, click “Copy to File…”

  • Export the certificate as a “.cer” file

  • Right-click the exported “.cer” file, click “Install Certificate”

  • Complete the Wizard to import the certificate to the Windows Certificate store. Make sure to select Trusted Root Certification Authorities as the destination store when asked.

Ubuntu:

  • Use certutil to import the certificate to your NSS database:

    echo | openssl s_client -connect localhost:3131 2>&1 | \
        sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /tmp/dotjs.crt
    certutil -d sql:$HOME/.pki/nssdb -A -t "P,," \
        -n localhost-dotjs -i /tmp/dotjs.crt

Finally install the Google Chrome extension:

http://bit.ly/dotjs

Credits

Other Browsers

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dotjs-1.0.tar.gz (7.1 kB view hashes)

Uploaded Source

Built Distribution

dotjs-1.0.win32.exe (210.6 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page