-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathchannels.py
107 lines (80 loc) · 3.1 KB
/
channels.py
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
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os, sys
import string, re
import importlib
from utils import *
import logging
log = logging.getLogger(__name__)
class channels:
def __init__(self, delegate):
self._irc = delegate
self.list = {}
self.chantypes = ""
# self.list[##test] = (channel(self,"##test"))
pass
def join(self, channel_name):
log.info(color.blue + 'Joining channel: ' + color.clear + channel_name)
self.list[channel_name] = channel(channel_name)
self._irc.sendRaw(('JOIN :%s\r\n' % channel_name), "IMPORTANT")
def part(self, channel_name):
log.info(color.blue + 'Parting channel: ' + color.clear + channel_name)
self._irc.sendRaw(('PART %s \r\n' % channel_name), "IMPORTANT")
def ignore(self, channel_name, flag):
log.info(color.blue + 'Ignoring chat from channel: ' + color.clear + channel_name + strFromBool(flag))
if channel_name in self.list:
self.list[channel_name].ignored = flag
def joinedTo(self, channel_name):
log.info(color.blue + 'Joined channel: ' + color.clear + channel_name)
if channel_name in self.list:
self.list[channel_name].connected = True
def partedFrom(self, channel_name):
log.info(color.blue + 'Parted channel: ' + color.clear + channel_name)
if channel_name in self.list:
self.list[channel_name].connected = False
def kickedFrom(self, channel_name):
log.info(color.red + 'Kicked from channel: ' + color.clear + channel_name)
if channel_name in self.list:
self.list[channel_name].connected = False
def isConnectedTo(self, channel_name):
if channel_name in self.list:
return self.list[channel_name].connected
return False
def isIgnoring(self, channel_name):
if channel_name in self.list:
return self.list[channel_name].ignored
return False
def hasFlagIn(self, flag, channel_name):
if channel_name in self.list:
if flag in self.list[channel_name].my_flags:
return True
return False
def flagIn(self, flag, channel_name, bool):
if channel_name in self.list:
if bool:
self.list[channel_name].my_flags.append(flag)
else:
if flag in self.list[channel_name].my_flags:
self.list[channel_name].my_flags.remove(flag)
return True
return False
def isValidChannelName(self, string_in):
for char in self.chantypes:
if string_in.startswith(char):
return True
return False
def voiceUser(self, username, in_channel, auto_voice):
return False
pass
def userIsVoiced(self, username, in_channel, recursive):
return False
pass
class channel:
def __init__(self, name):
self.name = name;
self.users = {} # {"username":["flag","+v"]}
self.flags = [] # ["flag","+v"]
self.my_flags = []
self.connected = False
self.ignored = False
pass