Loading

dft.ba url shortener

  1. ; Shorten URLS with dft.ba
  2. /*
  3. alias dftba {
  4.   if ($1 == -e) {
  5.     var %dft.ba.out echo -gsa $str($chr(160),3)
  6.   }
  7.   elseif ($1 == -p) {
  8.     var %dft.ba.out say $str($chr(160),3)
  9.   }
  10.   if (!$2) { halt }
  11.   else {
  12.     var %dft.ba $getsource(http://dft.ba/api/shorten.json?DATA_IN_GET=1&TARGET_URL= $+ $2)
  13.     if ($remove($gettok(%dft.ba,23,34),:,$chr(44)) < 5) {
  14.       %dft.ba.out --> Error: approaching API limit of 100 per hour. $gettok(%dft.ba,22,34) calls left. Try again later.
  15.       %dft.ba.out --> Why not take a break from dft.ba and use bit.ly
  16.     }
  17.     elseif ($remove($gettok(%dft.ba,23,34),:,$chr(44)) >= 5) {
  18.       %dft.ba.out $2 --> http://dft.ba/ $+ $gettok(%dft.ba,12,34)
  19.       echo -s $remove($gettok(%dft.ba,23,34),$chr(44),:) API calls left (Limit 100 API calls per hour).
  20.       echo -gs $gettok(%dft.ba,16,34)
  21.     }
  22.   }
  23. }
  24. alias testdftba {
  25.   var %test $getsource(http://dft.ba/api//expand.json?DATA_IN_GET=1&SHORT_URL= $+ $1)
  26.   echo -gs %test
  27. }
  28. */
  29.  
  30. alias dftba {
  31.   var %sckid = $right($ticks,5)
  32.   set %way. [ $+ [ %sckid ] ] echo 14 -ga
  33.   set %query. [ $+ [ %sckid ] ] $1
  34.   set %custom. [ $+ [ %sckid ] ] $2
  35.   sockopen dftbashorten. [ $+ [ %sckid ] ] dft.ba 80
  36. }
  37. on *:SOCKOPEN:dftbashorten.*: {
  38.   sockwrite -nt $sockname GET /api/shorten?src= $+ %custom. [ $+ [ $right($sockname,5) ] ] $+ &target= $+ %query. [ $+ [ $right($sockname,5) ] ] HTTP/1.1
  39.   sockwrite -nt $sockname Host: dft.ba
  40.   sockwrite -nt $sockname $crlf
  41. }
  42. on *:SOCKREAD:dftbashorten.*: {
  43.   if ($sockerr) {
  44.     %way. [ $+ [ $right($sockname,5) ] ] Socket Error: $sockname $+ . Error code: $sockerr Please inform $me of this error message.
  45.     halt
  46.   }
  47.   else {
  48.     var %sockreader
  49.     sockread %sockreader
  50.     if (*complete_url* iswm %sockreader) {
  51.       noop $regex(%sockreader,/<span id="complete_url">(.*?)<\/span>/Si)
  52.       var %tempvar $regml(1)
  53.       %way. [ $+ [ $right($sockname,5) ] ] %tempvar
  54.       .clipboard %tempvar
  55.       unset %*. [ $+ [ $right($sockname,5) ] ]
  56.       sockclose $sockname
  57.     }
  58.   }
  59. }

Comments