short-url-generator
v0.0.13
Published
Short string generator for long URLs with no persistence
Downloads
8
Readme
Node.js ShortURL
Turns URLs into deconstructed objects with MD5, SH1 and Short URL representation.
Version
0.0.13 beta
Use
After including into your project.json just use:
var shorturl = require('short-url-generator'),
url = 'https://username:[email protected]: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:[email protected]: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!