]>
jfr.im git - irc/quakenet/qwebirc.git/blob - js/irc/irctracker.js
1 function NickChanEntry() {
5 var IRCTracker
= new Class({
6 initialize: function() {
10 isEmpty: function(hash
) {
15 getNick: function(nick
) {
16 return this.nicknames
[nick
];
18 getOrCreateNick: function(nick
) {
19 var n
= this.getNick(nick
);
21 n
= this.nicknames
[nick
] = {};
24 getChannel: function(channel
) {
25 return this.channels
[channel
];
27 getOrCreateChannel: function(channel
) {
28 var c
= this.getChannel(channel
);
30 c
= this.channels
[channel
] = {};
33 getOrCreateNickOnChannel: function(nick
, channel
) {
34 var n
= this.getNick(nick
);
38 return this.addNickToChannel(nick
, channel
);
42 addNickToChannel: function(nick
, channel
) {
43 var nc
= new NickChanEntry();
45 var n
= this.getOrCreateNick(nick
);
48 var c
= this.getOrCreateChannel(channel
);
53 removeNick: function(nick
) {
54 var n
= this.getNick(nick
);
58 for(var channel
in n
) {
59 var c
= this.channels
[channel
];
63 delete this.channels
[channel
];
65 delete this.nicknames
[nick
];
67 removeChannel: function(channel
) {
68 var c
= this.getChannel(channel
);
73 var n
= this.nicknames
[nick
];
77 delete this.nicknames
[nick
];
79 delete this.channels
[channel
];
81 removeNickFromChannel: function(nick
, channel
) {
82 var n
= this.getNick(nick
);
83 var c
= this.getChannel(channel
);
91 delete this.nicknames
[nick
];
93 delete this.channels
[channel
];
95 renameNick: function(oldnick
, newnick
) {
96 var n
= this.getNick(oldnick
);
100 for(var channel
in n
) {
101 this.channels
[channel
][newnick
] = this.channels
[channel
][oldnick
];
102 delete this.channels
[channel
][oldnick
];
105 this.nicknames
[newnick
] = this.nicknames
[oldnick
];
106 delete this.nicknames
[oldnick
];