DoctorD90 icon

PBin2TclH.tcl 1.4.0

DoctorD90 | PRO | 05/11/13 10:38:07 AM UTC | 0 ⭐ | 6374 👁️ | Never ⏰ | []
TCL |

3.22 KB

|

None

|

0 👍

/

0 👎

### PBin2TclH.tcl 1.4.0 ME5hHLZn
 
#SUGGESTED
# PBinSrc.tcl fMrtKqyq
# TCLLoader.tcl smApj15u
 
#LICENSE
# Copyright © 2012 - 2013 Alberto Dietze "DoctorD90"
#
#    This program is free software: you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation, either version 3 of the License, or
#    (at your option) any later version.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
# Full GPLv3 Text: http://www.gnu.org/licenses/gpl.txt
 
#PATERNITY
#Coder: DoctorD90
#Network: irc.OnlineGamesNet.net
#Chan: #eHito
#Mail: [email protected]
#Script's List: www.EggTcl.tk
#
#Thanks to guys on #egghelp on irc.freenode.net
#Special thanks to Thommey
 
#PURPOSE
#Transfering text from pastebin.com to tclhelp.net.
 
#USAGE
#Write pastebin.com's urls in chan or query, and
#bot will give back the paste.tclhelp.net's urls.
#Bot will detect links automatically or trougth a command
#according with settings.
 
#SETTINGS
#Set how script detects pastebin.com's urls;
#0: Automatically, in all line; 1: Cmds;
set pb2tclh(ai) "0"
#Set flag of allowed people to use script in chan.
set pb2tclh(pflag) "-"
#Set flag of allowed people to use script in query.
set pb2tclh(qflag) "-"
#Set public command to detects pastebin.com's urls.
set pb2tclh(pcmd) "!pastebin"
#Set query command to detects pastebin.com's urls.
set pb2tclh(qcmd) ".pastebin"
 
 
### DON'T EDIT ANYTHING BELOW ###
 
package require http
 
if {[string is integer -strict $pb2tclh(ai) && $pb2tclh(ai) >= "0" && $pb2tclh(ai) < "2"} {
  if {$pb2tclh(ai) == "0"} {
    set pb2tclh(pchk) "*pastebin.com/*"
    set pb2tclh(qchk) "*pastebin.com/*"
  }
  if {$pb2tclh(ai) == "1"} {
    set pb2tclh(pchk) "$pb2tclh(pcmd) *pastebin.com/*"
    set pb2tclh(qchk) "$pb2tclh(qcmd) *pastebin.com/*"
  }
} else {
  putlog "PBin2TclH.tcl ERROR: Wrong detecting setting."
}
 
bind pubm $pb2tclh(pflag) $pb2tclh(qchk) pubm_pb2tclh 
proc pubm_pb2tclh {nick uhost hand chan text} {
  pb2tclh_paster $chan $text
}
 
bind msgm $pb2tclh(qflag) $pb2tclh(qchk) msgm_pb2tclh
proc msgm_pb2tclh {nick uhost hand text} {
  pb2tclh_paster $chan $text
}
 
proc pb2tclh_paster {target text} {
  set ids [lsearch -all -nocase -inline [split $text] "*pastebin.com/*" ]
  if {![string length $ids]} {return}
  foreach pbinid [split $ids] {
    if {[regexp -nocase {(pastebin.com/[\d\w-]{8})} $pbinid link]} {
      set code [http::data [set Token [http::geturl "http://pastebin.com/raw.php?i=[lindex [split $link /] end]" -timeout "30000"]]]
      http::cleanup $Token
      set sid [socket tclhelp.net 55555]
      fconfigure $sid -buffering line
      puts $sid $code
      gets $sid
      gets $sid
      gets $sid url
      close $sid
      putserv "PRIVMSG $target :http://$link => $url"
    }
  }
}
 
###
putlog "PBin2TclH.tcl LOADED"

Comments