This is the new home of the egghelp.org community forum.
All data has been migrated (including user logins/passwords) to a new phpBB version.


For more information, see this announcement post. Click the X in the top right-corner of this box to dismiss this message.

getting someting inside a dir

Requests for complete scripts or modifications/fixes for scripts you didn't write. Response not guaranteed, and no thread bumping!
Post Reply
p
pipo
Voice
Posts: 16
Joined: Sat Nov 18, 2006 2:51 pm

getting someting inside a dir

Post by pipo »

Ok i use this code to get dcc send:

Code: Select all

# dcc sends/recieves por Marco Ferra aka nXistence
# http://clientes.netvisao.pt/mferra/
# marcoferra@netvisao.pt
# versao 1.0

# !get <file>, !getlist

# por aqui a path ate' 'a filesystem do bot
set filesdir "/home/store/"

bind pub - !get pub:get

proc pub:get {nick uhost hand chan file} {
  global filesdir
  if {$file != ""} {
    switch -- [dccsend $filesdir/$file $nick] {
    0 {
      puthelp "NOTICE $nick :sending $file to you."
      dccsend $file $nick
    }
    1 { puthelp "NOTICE $nick :dcc table is full (too many connections), try to get $file later." }
    2 { puthelp "NOTICE $nick :can't open a socket for the transfer of $file." }
    3 { puthelp "NOTICE $nick :$file doesn't exist." }
    4 { puthelp "NOTICE $nick :$file was queued for later transfer." }
    }
  } else { puthelp "NOTICE $nick :!get <file> or !getlist" }
}

bind pub - !getlist pub:getlist

proc pub:getlist {nick uhost handle chan arg} {
  global filesdir
  if {$arg != ""} { set cdir $filesdir/$arg } else { set cdir $filesdir }
  set tdir [pwd]
  cd $cdir
  foreach fil "[glob *]" {
    if {[file isdirectory $fil]} { puthelp "NOTICE $nick :$arg/$fil" }
    if {[file isfile $fil]} { puthelp "NOTICE $nick :$arg/$fil (size: [file size $fil] bytes)" }
  }
  puthelp "NOTICE $nick :end of getlist!"
  cd $tdir
}

putlog "tcl: dcc sends/recieves loaded"
So it sends .txt files using the command.

Now some .txt files i upload have the same name, so what i need to do is create directories like 1, 2 etc and upload the .txt file to thoose dirs.

What i am looking for is a change in the scripts that allows me to do:

!get 1 and it will send the .txt that is in directory 1

Can this be done?

Thanks for the help
User avatar
rosc2112
Revered One
Posts: 1454
Joined: Sun Feb 19, 2006 8:36 pm
Location: Northeast Pennsylvania

Post by rosc2112 »

Code: Select all

set filesdir "/home/store"
                        
bind pub - !get pub:get
        
proc pub:get {nick uhost hand chan file} {
        global filesdir
        if {$file != ""} {
                if {$file == "1"} {
                        set filesdir "/path/to/dir1"
                } elseif {$file == "2"} {
                        set filesdir "/path/to/dir2"
                } elseif {$file == "3"} {
                        set filesdir "/path/to/dir3"
                } else {
                        # send an error message if the user doesn't give a valid number here..
                        puthelp "NOTICE $nick :!get <file>"
                        return
                }
                switch -- [dccsend $filesdir/$file\.txt $nick] {
                        0 {     
                                puthelp "NOTICE $nick :sending $file to you."
                                dccsend $file $nick
                        }
                        1 { puthelp "NOTICE $nick :dcc table is full (too many connections), try to get $file later." }
                        2 { puthelp "NOTICE $nick :can't open a socket for the transfer of $file." }
                        3 { puthelp "NOTICE $nick :$file doesn't exist." }
                        4 { puthelp "NOTICE $nick :$file was queued for later transfer." }
                }
        } else { puthelp "NOTICE $nick :!get <file>" }
}
Post Reply