1 from pseudoclient
.cmd_manager
import *
2 from datetime
import datetime
4 def private_channel_request(self
, manager
, opts
, arg
, channel
, sender
):
5 if self
.channels
.is_valid(arg
):
6 self
.msg(channel
, "I'm already in @b%s@b." % arg
)
7 elif self
.channels
.is_banned(arg
):
8 chan
= self
.channels
[arg
]
9 self
.elog
.request('Request for banned channel @b%s@b from @b%s@b.' % (arg
, sender
))
10 message
= 'Request failed, channel @b%s@b was banned by @b%s@b.' % (arg
, chan
.ban_source
)
12 if chan
.ban_reason
!= None:
13 message
+= ' Reason: @b%s@b.' % chan
.ban_reason
15 if chan
.ban_expiry
!= None:
16 message
+= ' Expires: @b%s@b.' % datetime
.fromtimestamp(chan
.ban_expiry
)
18 self
.msg(channel
, message
)
19 self
.msg(channel
, 'Please email @c3mink@rizon.net@o to appeal.')
21 self
.auth
.request(sender
, arg
, 'request')
23 def private_channel_remove(self
, manager
, opts
, arg
, channel
, sender
):
24 if not self
.channels
.is_valid(arg
):
25 self
.msg(channel
, "I'm not in @b%s@b." % arg
)
27 self
.auth
.request(sender
, arg
, 'remove')
29 def private_channel_highlight_enable(self
, manager
, opts
, arg
, channel
, sender
):
30 if not self
.channels
.is_valid(arg
):
31 self
.msg(channel
, "I'm not in @b%s@b." % arg
)
33 self
.auth
.request(sender
, arg
, 'highlight')
35 def private_channel_highlight_disable(self
, manager
, opts
, arg
, channel
, sender
):
36 if not self
.channels
.is_valid(arg
):
37 self
.msg(channel
, "I'm not in @b%s@b." % arg
)
39 self
.auth
.request(sender
, arg
, 'nohighlight')
41 def private_help(self
, manager
, opts
, arg
, channel
, sender
):
45 message
= manager
.get_help()
47 message
= manager
.get_help(command
)
50 message
= ['%s is not a valid command.' % arg
]
53 self
.msg(channel
, line
)
55 class PrivateCommandManager(CommandManager
):
59 def get_invalid(self
):
60 return 'Invalid message. Say help for a list of valid messages.'
62 def get_commands(self
):
64 'request': (private_channel_request
, ARG_YES|ARG_OFFLINE
, 'requests a channel (must be founder)', [], '#channel'),
65 'remove': (private_channel_remove
, ARG_YES|ARG_OFFLINE
, 'removes a channel (must be founder)', [], '#channel'),
66 'highlight': (private_channel_highlight_enable
, ARG_YES|ARG_OFFLINE
, 'enables mass highlighting on the channel (must be founder)', [], '#channel'),
67 'nohighlight': (private_channel_highlight_disable
, ARG_YES|ARG_OFFLINE
, 'disables mass highlighting on the channel (must be founder)', [], '#channel'),
70 'help': (private_help
, ARG_OPT
, 'displays help text', []),