-
Notifications
You must be signed in to change notification settings - Fork 2
/
relayspy.tcl
127 lines (99 loc) · 3.38 KB
/
relayspy.tcl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
# RelaySpy.TCL v. 1.0.1
# by CaeSpock <cae@bolivia-internet.com>
# Configuration:
# Please inser here the relay or the nick to relay all actions on channels.
# Please make the bot join this channel, just for security purposes.
# if its a nick... well. dont go offline!!!
set relaychannel "#RelayPrivate"
# [0/1] Relay to everybody in the partyline AND the botnet ?
# Means to EVERYBODY in local and remote bots!
# if this is set to 1, it wont relay to a channel or nick, just to the partyline!
set relaytopartyline 0
#What channels to spy? comma separated! :)
set spychannels "#chan1 #chan2"
# Lets define what to relay here...
# If you want it to relay, leave the bind, if not
# comment it adding a # character at the beggining
# Want to catch public messages ?
bind pubm - * message
bind pub - * message
# Want to catch messages to the bot ?
bind msg - * message2
bind msgm - * message2
# Want to catch CTCP Actions ? like /me jumps
bind ctcp - ACTION ctcp
# Want to catch all notices sent to the bot ?
# This includes /notice #channel bleh
# but also all services notices.
bind raw - NOTICE raw
# Want to catch join part quits ?
bind join - * join
bind part - * part
bind sign - * sign
# Want to catch kicks?
bind kick - * kick
# Want to catch nick changes ?
bind nick - * nick
# Want to catch mode changes ?
bind mode - * mode
##You shouldnt have to modify anything from here:
proc message {nick uhost hand ch rest} {
set destination_message "($ch) <$nick!$uhost> $rest"
send_message $ch $destination_message
}
proc notice {nick uhost hand rest} {
set destination_message "-$nick!$uhost- $rest"
send_message $nick $destination_message
}
proc message2 {nick uhost hand rest} {
set destination_message "*$nick!$uhost* $rest"
send_message $nick $destination_message
}
proc ctcp { nk uh hd ch kw arg } {
set destination_message "($ch) * $nk!$uh $arg"
send_message $ch $destination_message
}
proc raw { fr key arg } {
set destination_message "-$fr- $key $arg"
send_message $fr $destination_message
}
proc join { ni uh ha ch } {
set destination_message "($ch) $ni ($uh) has joined $ch"
send_message $ch $destination_message
}
proc part { ni uh ha ch } {
set destination_message "($ch) $ni ($uh) has left $ch"
send_message $ch $destination_message
}
proc sign { ni uh ha ch re } {
set destination_message "($ch) $ni ($uh) quit ($re)"
send_message $ch $destination_message
}
proc kick { ni uh hd ch tg rn } {
set destination_message "($ch) $tg was kicked by $ni ($rn)"
send_message $ch $destination_message
}
proc nick { ni uh hd ch nn } {
set destination_message "($ch) $ni!$uh is now known as $n"
send_message $ch $destination_message
}
proc mode { ni uh hd ch mc vi } {
set destination_message "($ch) $ni!$uh sets mode $mc $vi"
send_message $ch $destination_message
}
proc send_message { fromwho message } {
global relaychannel spychannels relaytopartyline
if { [string compare [string tolower $relaychannel] [string tolower $fromwho]] == 0 } {
return 1
}
set number_channels [llength $spychannels]
for {set contador 0} {$contador < $number_channels} {incr contador} {
if {[string compare [string tolower [lindex $spychannels $contador]] [string tolower $fromwho]] == 0 } {
if { $relaytopartyline == 1 } {
dccbroadcast "$message"
}
puthelp "privmsg $relaychannel :$message"
}
}
}
putlog "Loaded: RelaySpy.TCL v1.0.1 by CaeSpock!"