]>
jfr.im git - irc/rizon/acid.git/blob - pyva/src/main/python/internets/cmd_admin.py
1 from datetime
import datetime
4 #---------------------------------------------------------------------#
6 from pseudoclient
import cmd_admin
7 from pseudoclient
.cmd_admin
import \
15 #---------------------------------------------------------------------#
17 def admin_user(self
, source
, target
, pieces
):
18 return cmd_admin
.admin_user(self
, source
, target
, pieces
, meta
={
19 'extra_info': lambda user
: ' Location: @b%s@b.' % user
.location
if user
.location
else ''
22 #---------------------------------------------------------------------#
24 def admin_sys(self
, source
, target
, pieces
):
34 names
.append('options')
35 subsystems
.append(self
.options
)
39 subsystems
.append(self
.users
)
42 names
.append('channels')
43 subsystems
.append(self
.channels
)
47 subsystems
.append(self
.news
)
51 subsystems
.append(self
.auth
)
54 names
.append('antiflood')
55 subsystems
.append(self
.antiflood
)
60 if operation
in ['u', 'update']:
61 for subsystem
in subsystems
:
64 self
.msg(target
, 'Forced update for @b%s@b.' % '@b, @b'.join(names
))
65 elif operation
in ['r', 'reload']:
66 for subsystem
in subsystems
:
69 self
.msg(target
, 'Forced reload for @b%s@b.' % '@b, @b'.join(names
))
70 elif operation
in ['d', 'delay']:
72 for subsystem
in subsystems
:
73 self
.msg(target
, 'Auto-update delay for @b%s@b is %d seconds.' % (subsystem
.name
, subsystem
.delay
))
76 seconds
= int(pieces
[2])
81 self
.msg(target
, 'Auto-update delay must be greater than 10 seconds.')
84 for subsystem
in subsystems
:
85 subsystem
.set_option('update_period', seconds
)
88 self
.msg(target
, 'Auto-update delay for @b%s@b set to @b%d@b seconds.' % ('@b, @b'.join(names
), seconds
))
95 def admin_stats(self
, source
, target
, pieces
):
96 self
.msg(target
, 'Registered users: @b%d@b.' % len(self
.users
.list_all()))
97 self
.msg(target
, 'Registered channels: @b%d@b.' % len(self
.channels
.list_all()))
102 'chan' : (admin_chan
, '<ban|unban|info|add|remove|list|blist|news> <channel> [reason]'),
103 'unreg' : (admin_unregistered
, '<check|list|part> - remove unregistered channels'),
104 'user' : (admin_user
, '<ban|unban|info|add|remove|list|blist> <user> [reason]'),
105 'stats' : (admin_stats
, 'counts registered users and channels'),
106 'db' : (admin_db
, '[on|off] - enables/disables auto commits to db'),
107 'opt' : (admin_opt
, '[get|set|clear] [option] [value] - manipulates options (list all if no arguments)'),
108 'sys' : (admin_sys
, '<subsystem> <operation> [value] - (subsystems: options (o), users (u), channels (c), news (n), auth (a), antiflood (f)) (operations: update (u), reload (r), delay (d))'),
109 'log' : (admin_log
, '[level] - gets or sets the log level (0-7).'),
110 'msg' : (admin_msg
, '<message> - sends a message to all channels'),