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

OS X:

  • Open https://localhost:3131 in Google Chrome
  • 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:

  • Export the certificate as a “.cer” file:

    dotjs --print-cert > %TEMP%\dotjs.cer
    
  • 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:

    dotjs --print-cert | certutil -d sql:$HOME/.pki/nssdb -A \
        -t "P,," -n localhost-dotjs
    

You might need to restart Chrome before it sees the certificate as trusted. You can verify if the certificate is correctly installed by opening https://localhost:3131 in Chrome.

Finally install the Google Chrome extension: http://bit.ly/dotjs

Credits

Project details


Release history Release notifications

This version
History Node

1.0.2

History Node

1.0

Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
dotjs-1.0.2.tar.gz (7.4 kB) Copy SHA256 hash SHA256 Source None Feb 10, 2014

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page