Google URL Shortener v1

By SplitFire on Jan 15, 2011

Just a basic Google URL Shortener

;-- Google URL Shortener
;-- SplitFire aka X-System
;-- #mircscripting @ UnderNeet

alias -l rawurlencode {
  return $regsubex($1-,/\G(.)/g,$iif(\t !isalnum && \t !isin -_.,$chr(37) $+ $base($asc(\t),10,16,2),\t))
}

alias -l urlencode {
  return $replace($rawurlencode($1-),$+($chr(37),20),+)
}
alias ungoo.gl hfree GglShrt
alias g.logo return 2G4o7o2g3l4e URL Shortener

alias goo.gl {
  if (!$hget(GglShrt,output)) { hadd -mu40 GglShrt output echo $color(normal) -ati2 * }
  if (!$1) { $hget(GglShrt,output) $g.logo error: insufficient parameters | ungoo.gl | halt }
  if ($sock(googleshort)) { $hget(GglShrt,output) $g.logo error: socket in use | ungoo.gl | halt }

  var %s $1, %r /(?:^|[][()<>{}'"\s])((?:(?:irc|s?ftp|https?:)\/\/|www\d*\.)[^\s./]+\.(?:\[\S*?]|\(\S*?\)|\{\S*?}|[^][()<>{}'"\s]|['"](?!\s|$|[()\[\]<>]))++)/giS
  if (!$regex(%s,%r)) { $hget(GglShrt,output) $g.logo error: invalid URL format | ungoo.gl | halt }

  sockopen googleshort goo.gl 80
  sockmark googleshort $1
}

on *:sockopen:googleshort:{
  var %s sockwrite -tn $sockname
  var %p = url= $+ $urlencode($sock($sockname).mark) $+ &security_token=null, %clen = $len(%p)
  %s POST /api/shorten HTTP/1.1
  %s Host: goo.gl
  %s User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
  %s Connection: close
  %s X-Auth-Google-Url-Shortener: true
  %s Content-Type: application/x-www-form-urlencoded;charset=utf-8
  %s Content-Length: %clen
  %s $crlf
  %s %p
}

on *:sockread:googleshort:{
  var %g
  sockread %g
  if ($regex(%g,/Location:\s(.+)/)) {
    $hget(GglShrt,output) $g.logo $+ :12 $sock($sockname).mark <->12 $regml(1)
    sockclose $sockname
    ungoo.gl
    halt
  }
}
on *:text:!goo.gl &:#:{
  if (!$hget(GglShrt,output)) { hadd -mu40 GglShrt output msg # }
  goo.gl $2
}

Comments

Sign in to comment.
WingmaN   -  Apr 28, 2012

Not working anymore ..

 Respond  
Jethro   -  Mar 21, 2011

The script still works. You either enter the alias command:

/goo.gl URL_Here

(The alias command is for the client that runs the code to use.) Or the text trigger command from people:

!goo.gl URL_Here

(This trigger is for people who activate it from the client who runs the code.)

Replace URL_Here with an actual website address to shorten.

The author should have included the instruction when he submitted this snippet, which would've made it easy for newbies to use it.

 Respond  
jasonh   -  Mar 20, 2011

doesnt work

 Respond  
DimensionX   -  Mar 17, 2011

how does it works?

 Respond  
Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.