node package manager

short-url-generator

Node.js ShortURL

Turns URLs into deconstructed objects with MD5, SH1 and Short URL representation.

Version

0.0.13 beta

Build Status

Use

After including into your project.json just use:

var shorturl = require('short-url-generator'),
    url      = 'https://username:passwd@www.bzz.co.uk:9000/new/session/search?client=ubuntu&channel=fs&q=twilio+sms&ie=utf-8&oe=utf-8&gfe_rd=cr&ei=X2ChVuKzHe_H8geE5aOQDw#hashTagAtTheEnd';
    out      = shorturl(url);
    
console.log(out);
 
// Added: 3 Feb 2016 @ 23:44 hrs (UK Time)
//     NEW:  I added the breaking down Obj.url_details.query 
//     into JSON of key: value pairs.
// 
// Added: 30 Jan 2016 @ 22:57 hrs (UK Time)
//
//     Long story short the idea behind having MD5 
//     is that one you generate short URL for specific URL
//     and you persist it, you don't have to store it again 
//     and just reuse, since the landing URL
//     is going to be exactly the same
//
//     Also, implementation doesn't cater for domain and protocol 
//     of the short URL i.e. http://mydomain.com/4g4K2 in our case below
//     assuming you know what you downloaded it for.
// 
//     Same story with the "originator" - as I think you may want 
//     to populate this nested object with some
//     context specific data that outside your application 
//     would be largely irrelevant... 
 
{
    "url": "https://username:passwd@www.bzz.co.uk:9000/new/session/search?client=ubuntu&channel=fs&q=twilio+sms&ie=utf-8&oe=utf-8&gfe_rd=cr&ei=X2ChVuKzHe_H8geE5aOQDw#hashTagAtTheEnd",
    "strlen": 169,
    "short": "4g4K2",
    "md5": "3d066fad0ffd1284b0978097c63f804c",
    "sha1": "21be6177d97b1abf123c60b662f2dc5815f13ce9",
    "timestamp": "2016-01-29T06:14:00.891Z",
    "unix": 1454048040,
    "is_url": true,
    "url_details": {
. "hash": "#hashTagAtTheEnd",
. "protocol": "https:",
. "pathname": "/new/session/search",
. "auth": "username:passwd",
. "host": "www.bzz.co.uk:9000",
. "port": "9000",
. "hostname": "www.bzz.co.uk",
. "password": "passwd",
. "username": "username",
. "query": "?client=ubuntu&channel=fs&q=twilio+sms&ie=utf-8&oe=utf-8&gfe_rd=cr&ei=X2ChVuKzHe_H8geE5aOQDw",
.       "query_details": {
.            "client": "ubuntu",
.            "channel": "fs",
.            "q": "twilio sms",
.            "ie": "utf-8",
.            "oe": "utf-8",
.            "gfe_rd": "cr",
.            "ei": "X2ChVuKzHe_H8geE5aOQDw"
.        }
    },
    "originator": {
        "ip": "not-implemented-yet"
    }
}
 

Good luck!