ad.tcl

ad.tcl

Small script used to advertise urls in a channel such as shell companies at a defined time interval.

Postat de Copyright Categorie Review user Vizualizari Data
btc strikelight activity Cod testat 312 2023-12-24 22:46:55

## ad.tcl v1.0 by strikelight  ([sL]@EfNet)
#
# -----------------------------------------
# web  : http://www.TCLScript.com
# EFNet: #Scripting
# -----------------------------------------
# Description:
#
# Small script used to advertise urls in a channel
# such as shell companies at a defined time interval.
#
# Default usage:
#
# Add:
# /msg <bot> !ad <url> <description>
#
# Remove:
# /msg <bot> !delad <url>
#
##

## ---  START EDITTING HERE --- ##

# time in seconds to display an ad to channels #

set adtime 120


# channels to advertise in #

set adchans "#shellx"


# flag of user required to add an advertisement via msg #

set adflag m


# message trigger used to add an advertisement #
# (format /msg bot <command> <url> <ad description>)

set admsgcmd "!ad"

# message trigger used to delete an advertisement #
# (format /msg bot <command> <url>)

set deladmsgcmd "!delad"


## ---  STOP EDITTING HERE --- ##

set adidx 0
proc loadads {} {
  global adlist
  set adlist ""
  if {![file exists "ad.txt"]} {return 0}
  set infile [open "ad.txt" r]
  while {![eof $infile]} {
    gets $infile dataline
    if {$dataline != ""} {lappend adlist $dataline}
  }
  close $infile
  return 1
}

proc saveads {} {
  global adlist
  set outfile [open "ad.txt" w]
  foreach ad $adlist {if {$ad != ""} {puts $outfile "$ad"}}
  close $outfile
  return 1
}

proc addisplay {} {
  global adchans adlist adidx adtime
  utimer $adtime "addisplay"
  if {$adlist == ""} {return 0}
  foreach chan $adchans {
    puthelp "PRIVMSG $chan :\002\037[split [lindex [lindex $adlist $adidx] 0]]\037\002"
    puthelp "PRIVMSG $chan :[split [lrange [lindex $adlist $adidx] 1 end]]"
  }
  set adidx [expr $adidx + 1]
  if {$adidx >= [llength $adlist]} {set adidx 0}
  return 1
}

proc utimerexists {timer_proc} {
  foreach j [utimers] {if {[string compare [lindex $j 1] $timer_proc] == 0} {return [lindex $j 2]}}
  return
}

bind msg $adflag $admsgcmd addad
proc addad {unick user handle argz} {
  global adlist botnick admsgcmd
  set url [split [lindex $argz 0]]
  set addesc [split [lrange $argz 1 end]]
  if {($url == "") || ($addesc == "")} {
    puthelp "NOTICE $unick :Invalid. Format: /msg $botnick $admsgcmd <url> <ad description>"
    return 0
  }
  foreach turl $adlist {
    set aurl [string tolower [lindex $turl 0]]
    if {$aurl == [string tolower $url]} {
      puthelp "NOTICE $unick :Error. Site is already added."
      return 0
    }
  }
  lappend adlist "$url $addesc"
  saveads
  puthelp "NOTICE $unick :Added: $url - $addesc"
  return 1
}

bind msg $adflag $deladmsgcmd delad
proc delad {unick user handle argz} {
  global adlist botnick admsgcmd
  set url [split [lindex $argz 0]]
  if {$url == ""} {
    puthelp "NOTICE $unick :Invalid. Format: /msg $botnick $deladmsgcmd <url>"
    return 0
  }
  set newadlist ""
  foreach turl $adlist {
    set aurl [string tolower [lindex $turl 0]]
    if {$aurl != [string tolower $url]} {
     lappend newadlist $turl
    }
  }
  set adlist $newadlist
  saveads
  puthelp "NOTICE $unick :Deleted: $url"
  return 1
}

loadads
if {[utimerexists "addisplay"] == ""} {utimer $adtime "addisplay"}

putlog "ad.tcl v1.0 by strikelight now loaded"