Clipboard to kde.paste.org for mIRC

Moderator: GeekShed.Net Staff

Clipboard to kde.paste.org for mIRC

Postby Ford » Fri Nov 18, 2011 4:07 pm

If you use pastebin sites in mIRC to share text and code with other irc users, this script can save you several minutes on each paste.
This script will bypass your browser, send your clipboard contents directly to the paste site and quickly return a link.
I wrote this to suite my own personal need, so if someone would like small adjustments made to the code, post your request here or contact me in #Script-Help on GeekShed.

Instructions:
  • Copy the code below to your clipboard, paste it into a NEW remote and save it with a unique filename.
  • Copy the code/text you want to upload to paste.kde to your clipboard. (CTRL+C)
  • Press CTRL+F12 for automatic pasting using the default options in the "sets" alias. (Default options are; Syntax:mIRC, Author:Your irc Nick, Expires:1 week)
  • Press SHIFT+F12 to adjust the options before uploading. You may also make the paste private and add a password here. (Keep in mind that the password alone does nothing. You must make the paste private and then the password is used to generate a hash-code that can be used to access the paste. Ex. http://paste.kde.org/PasteId/SecureHash/)

Screen Shot:
Image

Code: Select all
;Paste KDE by Ford_Lawnmower irc.geekshed.net #Script-Help CTRL+F12 to send your clipboard contents automatically.
;SHIFT+F12 for more paste options.
alias -l Sets {
  goto $prop
  ;Change language to the default language you want on automatic pastes. Valid codes-->> http://paste.kde.org/doc/lang
  :language
  return mirc
  ;Change for default expiration in seconds. You may replace $expire(x) with a value in seconds.
  ;$expire(x) values. 1=5 min, 2=30 min, 3=60 min, 4=6 hr, 5=1 day, 6=1 week, 7=1 month, 8=1 year, 9= never
  :expire
  return $expire(6)
  ;Change user to change the author of the paste.
  :user
  return $me
}
alias kdepaste { Getford.kde.paste echo -a $sets().Language $sets().expire $sets().user 0 0 }
alias -l Getford.kde.paste {
  var %sockname $+(ford.kde.paste,$network,$2,$ticks)
  var %post $+(mode=xml&api_submit=true&paste_lang=,$3,&paste_expire=,$4,&paste_user=,$5,$iif($6,&paste_private=yes),$iif($7,$+(&paste_password,$7)),&paste_data=)
  sockopen %sockname paste.kde.org 80
  sockmark %sockname $1-2 %post
}
On *:sockopen:ford.kde.paste*: {
  if (!$sockerr) {
    tokenize 32 $sock($sockname).mark
    var %len $calc($len($3-) + $cbEncodeLen + ($cb(0) * 2))
    sockwrite -n $sockname POST / HTTP/1.1
    sockwrite -n $sockname Host: $sock($sockname).addr
    sockwrite -n $sockname Content-Type: application/x-www-form-urlencoded
    sockwrite -n $sockname Content-Length: %len
    sockwrite -n $sockname Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
    sockwrite -n $sockname User-Agent: Opera 9.6
    sockwrite -n $sockname $crlf
    sockwrite $sockname $3-
    var %line 1
    while (%line <= $cb(0)) {
      sockwrite -n $sockname $urlencode($cb(%line))
      inc %line
    }
    sockwrite -n $sockname
  }
  else { echo -st Socket Error $nopath($script) | sockclose $sockname | return }
}
On *:sockread:ford.kde.paste*: {
  if ($sockerr) { echo -st Socket Error $nopath($script) | sockclose $sockname | return }
  else {
    var %ford.kde.paste | sockread -f &ford.kde.paste
    %ford.kde.paste = $bvar(&ford.kde.paste,1-).text
    if ($regex(hash,%ford.kde.paste,/<hash>(.*?)<\/hash>/i)) noop
    if ($regex(id,%ford.kde.paste,/<id>(.*?)<\/id>/i)) {
      var %link $+(http://paste.kde.org/,$regml(id,1),$iif($regml(hash,1),$+(/,$v1)))
      $gettok($sock($sockname).mark,1-2,32) Link with syntax Highlights: $+(%link,$chr(15)) || Raw paste link: $+(%link,/raw/,$chr(15))
    }
  }
}
dialog paste_kde {
  title "Paste KDE"
  size -1 -1 104 100
  option dbu
  text "User:", 1, 3 8 25 8
  text "Language:", 2, 3 24 25 8
  text "Expire:", 3, 3 39 25 8
  text "Password:", 4, 3 70 25 8
  edit "", 5, 30 7 73 10, autohs
  combo 6, 31 23 72 10, vsbar drop
  combo 7, 31 38 72 10, vsbar drop
  check "Make Private", 8, 3 54 46 10, left
  edit "", 9, 32 68 70 10, pass autohs
  button "Send", 10, 70 83 32 12
  button "Close", 11, 34 83 34 12, cancel
}
On *:dialog:paste_kde:init:*: {
  did -a $dname 5 $me
  didtok -a $dname 6 124 $languages().names
  didtok -a $dname 7 44 5 minutes,30 minutes,1 hour,6 hours,1 day,1 week,1 month,1 year,never
  did -c $dname 6 109
  did -c $dname 7 6
}
on *:dialog:paste_kde:Sclick:10: {
  Getford.kde.paste echo -ga $languages($did(6).sel).code $expire($did(7).sel) $did(5) $did(8).state $iif($did(9),$v1,0)
}
alias SF12 dialog $iif(!$dialog(paste_kde),-m paste_kde,-v) paste_kde
alias CF12 kdepaste
alias -l Languages {
  var %names $regsubex(GADV 4CS|ACME Cross Asm|Kick Asm|TASM/64TASS 1.46 Asm|HiSoft Devpac ST 2 Asm|ABAP|ActionScript|ActionScript 3|$&
    Ada|ALGOL 68|Apache configuration|AppleScript|Apt sources|ASM|ASP|Autoconf|Autohotkey|AutoIt|AviSynth|awk|Bash|Basic4GL|$&
    Brainfuck|BibTeX|BlitzBasic|bnf|Boo|C|C (LoadRunner)|C (Mac)|CAD DCL|CAD Lisp|CFDG|ColdFusion|ChaiScript|CIL|Clojure|CMake|$&
    COBOL|C++|C++ (Qt)|C#|CSS|Cuesheet|D|DCS|Delphi|Diff|DIV|DOS|dot|E|ECMAScript|Eiffel|eMail (mbox)|EPC|Erlang|Formula One|$&
    Falcon|FO (abas-ERP)|Fortran|FreeBasic|F#|GAMBAS|GDB|genero|Genie|GNU Gettext|glSlang|GML|Gnuplot|Go|Groovy|GwBasic|Haskell|$&
    HicEst|HQ9+|HTML|Icon|Uno Idl|INI|Inno|INTERCAL|Io|J|Java|J2SE|Javascript|jQuery|KiXtart|KLone C|KLone C++|LaTeX|Liberty BASIC|$&
    Lisp|Locomotive Basic|Logtalk|LOLcode|Lotus Notes|LotusScript|LScript|LSL2|Lua|Motorola 68000 Asm|MagikSF|GNU make|MapBasic|$&
    Matlab M|mIRC Scripting|MMIX|Modula-2|Modula-3|Microchip Asm|MXML|MySQL|newlisp|NSIS|Oberon-2|Objective-C|Objeck|OCaml|$&
    OCaml (brief)|OpenOffice.org Basic|Oracle 11 SQL|Oracle 8 SQL|Oxygene (Delphi Prism)|OZ|Pascal|PCRE|per|Perl|Perl 6|$&
    OpenBSD Packet Filter|PHP|PHP (brief)|PIC16|Pike|Pixel Bender 1.0|PL/SQL|PostgreSQL|POVRAY|PowerBuilder|PowerShell|Progress|$&
    Prolog|PROPERTIES|ProvideX|PureBasic|Python|q/kdb+|QBasic/QuickBASIC|Rails|REBOL|Microsoft Registry|robots.txt|$&
    RPM Specification File|R / S+|Ruby|SAS|Scala|Scheme|SciLab|sdlBasic|Smalltalk|Smarty|SQL|SystemVerilog|TCL|Tera Term Macro|$&
    thinBasic|T-SQL|TypoScript|Unicon|Vala|Visual Basic|VB.NET|Verilog|VHDL|Vim Script|Visual Fox Pro|Visual Prolog|Whitespace|$&
    Whois (RPSL format)|Winbatch|XBasic|XML|Xorg configuration|X++|ZiLOG Z80 Asm|ZXBasic|None,/(\x7c\s)/g,|)
  var %codes $regsubex(4cs|6502acme|6502kickass|6502tasm|68000devpac|abap|actionscript|actionscript3|ada|algol68|apache|applescript|$&
    apt_sources|asm|asp|autoconf|autohotkey|autoit|avisynth|awk|bash|basic4gl|bf|bibtex|blitzbasic|bnf|boo|c|c_loadrunner|c_mac|$&
    caddcl|cadlisp|cfdg|cfm|chaiscript|cil|clojure|cmake|cobol|cpp|cpp-qt|csharp|css|cuesheet|d|dcs|delphi|diff|div|dos|dot|e|$&
    ecmascript|eiffel|email|epc|erlang|f1|falcon|fo|fortran|freebasic|fsharp|gambas|gdb|genero|genie|gettext|glsl|gml|gnuplot|go|$&
    groovy|gwbasic|haskell|hicest|hq9plus|html4strict|icon|idl|ini|inno|intercal|io|j|java|java5|javascript|jquery|kixtart|klonec|$&
    klonecpp|latex|lb|lisp|locobasic|logtalk|lolcode|lotusformulas|lotusscript|lscript|lsl2|lua|m68k|magiksf|make|mapbasic|matlab|$&
    mirc|mmix|modula2|modula3|mpasm|mxml|mysql|newlisp|nsis|oberon2|objc|objeck|ocaml|ocaml-brief|oobas|oracle11|oracle8|oxygene|oz|$&
    pascal|pcre|per|perl|perl6|pf|php|php-brief|pic16|pike|pixelbender|plsql|postgresql|povray|powerbuilder|powershell|progress|prolog|$&
    properties|providex|purebasic|python|q|qbasic|rails|rebol|reg|robots|rpmspec|rsplus|ruby|sas|scala|scheme|scilab|sdlbasic|smalltalk|$&
    smarty|sql|systemverilog|tcl|teraterm|thinbasic|tsql|typoscript|unicon|vala|vb|vbnet|verilog|vhdl|vim|visualfoxpro|visualprolog|$&
    whitespace|whois|winbatch|xbasic|xml|xorg_conf|xpp|z80|zxbasic|none,/(\x7c\s)/g,|)
  goto $prop
  :names
  return %names
  :code
  return $gettok(%codes,$1,124)
}
alias -l expire return $gettok(300|1800|3600|8640|86400|604800|2592000|31536000|0,$1,124)
alias -l cbEncodeLen {
  var %len, %line 1
  while (%line <= $cb(0)) {
    %len = $calc(%len + $len($urlencode($cb(%line))))
    inc %line
  }
  return %len
}
alias -l urlencode return $replace($regsubex($1-,/([^a-z0-9\x20])/gi,$+(%,$iif($base($asc(\t),10,16) isnum 1-9,0),$base($asc(\t),10,16))),$chr(32),+)
Ford
 
Posts: 48
Joined: Wed Oct 28, 2009 1:01 am

Re: Clipboard to kde.paste.org for mIRC

Postby GrimReaper » Tue Aug 07, 2012 12:08 pm

Nice one Ford, I thought of an idea for an update, Where you have the dialog, You could make the "Password:" edit box read only until the point that "Private Paste" is enabled then allow the password to potentially be added.. It's not much but it's an idea.. :)
GrimReaper
 
Posts: 73
Joined: Wed Oct 28, 2009 4:34 pm
Location: In your router, Resetting your connection.


Return to Script help

Who is online

Users browsing this forum: No registered users and 2 guests