本文整理汇总了Python中pajbot.managers.AdminLogManager.post方法的典型用法代码示例。如果您正苦于以下问题:Python AdminLogManager.post方法的具体用法?Python AdminLogManager.post怎么用?Python AdminLogManager.post使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pajbot.managers.AdminLogManager
的用法示例。
在下文中一共展示了AdminLogManager.post方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: post
# 需要导入模块: from pajbot.managers import AdminLogManager [as 别名]
# 或者: from pajbot.managers.AdminLogManager import post [as 别名]
def post(self, row_id, **options):
args = self.post_parser.parse_args()
try:
new_state = int(args['new_state'])
except (ValueError, KeyError):
return {'error': 'Invalid `new_state` parameter.'}, 400
with DBManager.create_session_scope() as db_session:
row = db_session.query(Banphrase).filter_by(id=row_id).one_or_none()
if not row:
return {
'error': 'Banphrase with this ID not found'
}, 404
row.enabled = True if new_state == 1 else False
db_session.commit()
payload = {
'id': row.id,
'new_state': row.enabled,
}
AdminLogManager.post('Banphrase toggled',
options['user'],
'Enabled' if row.enabled else 'Disabled',
row.phrase)
SocketClientManager.send('banphrase.update', payload)
return {'success': 'successful toggle', 'new_state': new_state}
示例2: remove_link_whitelist
# 需要导入模块: from pajbot.managers import AdminLogManager [as 别名]
# 或者: from pajbot.managers.AdminLogManager import post [as 别名]
def remove_link_whitelist(self, **options):
message = options['message']
bot = options['bot']
source = options['source']
if message:
id = None
try:
id = int(message)
except ValueError:
pass
link = self.db_session.query(WhitelistedLink).filter_by(id=id).one_or_none()
if link:
self.whitelisted_links.remove(link)
self.db_session.delete(link)
self.db_session.commit()
else:
bot.whisper(source.username, 'No link with the given id found')
return False
AdminLogManager.post('Whitelist link removed', source, link.domain)
bot.whisper(source.username, 'Successfully removed whitelisted link with id {0}'.format(link.id))
else:
bot.whisper(source.username, 'Usage: !remove link whitelist ID')
return False
示例3: modules_edit
# 需要导入模块: from pajbot.managers import AdminLogManager [as 别名]
# 或者: from pajbot.managers.AdminLogManager import post [as 别名]
def modules_edit(module_id, **options):
module_manager = ModuleManager(None).load(do_reload=False)
current_module = find(lambda m: m.ID == module_id, module_manager.all_modules)
if current_module is None:
return render_template('admin/module_404.html'), 404
sub_modules = []
for module in module_manager.all_modules:
module.db_module = None
with DBManager.create_session_scope() as db_session:
for db_module in db_session.query(Module):
module = find(lambda m: m.ID == db_module.id, module_manager.all_modules)
if module:
module.db_module = db_module
if module.PARENT_MODULE == current_module.__class__:
sub_modules.append(module)
if current_module.db_module is None:
return render_template('admin/module_404.html'), 404
if request.method == 'POST':
form_values = {key: value for key, value in request.form.items()}
res = current_module.parse_settings(**form_values)
if res is False:
return render_template('admin/module_404.html'), 404
current_module.db_module.settings = json.dumps(res)
db_session.commit()
settings = None
try:
settings = json.loads(current_module.db_module.settings)
except (TypeError, ValueError):
pass
current_module.load(settings=settings)
payload = {
'id': current_module.db_module.id,
}
SocketClientManager.send('module.update', payload)
AdminLogManager.post('Module edited', options['user'], current_module.NAME)
return render_template('admin/configure_module.html',
module=current_module,
sub_modules=sub_modules)
else:
settings = None
try:
settings = json.loads(current_module.db_module.settings)
except (TypeError, ValueError):
pass
current_module.load(settings=settings)
return render_template('admin/configure_module.html',
module=current_module,
sub_modules=sub_modules)
示例4: generic_toggle
# 需要导入模块: from pajbot.managers import AdminLogManager [as 别名]
# 或者: from pajbot.managers.AdminLogManager import post [as 别名]
def generic_toggle(route_key, row_id, **options):
valid_routes = {
'timer': Timer,
'banphrase': Banphrase,
'module': Module,
}
route_name = {
'timer': lambda x: x.name,
'banphrase': lambda x: x.phrase,
'module': lambda x: x.id,
}
route_title = {
'timer': 'Timer',
'banphrase': 'Banphrase',
'module': 'Module',
}
route_validator = {
'module': lambda x: validate_module(x.id)
}
if route_key not in valid_routes:
return make_response(jsonify({'error': 'Invalid route.'}), 400)
if 'new_state' not in request.form:
return make_response(jsonify({'error': 'Missing `new_state` parameter.'}), 400)
try:
new_state = int(request.form['new_state'])
except (ValueError, KeyError):
return make_response(jsonify({'error': 'Invalid `new_state` parameter.'}), 400)
route_value = valid_routes[route_key]
with DBManager.create_session_scope() as db_session:
row = db_session.query(route_value).filter_by(id=row_id).one_or_none()
if row:
validator = route_validator.get(route_key, None)
if validator is not None:
res = validator(row)
if not res:
return make_response(jsonify({'error': 'cannot modify {}'.format(route_key)}), 400)
row.enabled = True if new_state == 1 else False
db_session.commit()
payload = {
'{}_id'.format(route_key): row.id, # remove this
'id': row.id,
'new_state': row.enabled,
}
AdminLogManager.post('{title} toggled'.format(title=route_title[route_key]),
options['user'],
'Enabled' if row.enabled else 'Disabled',
route_name[route_key](row))
SocketClientManager.send('{}.update'.format(route_key), payload)
return make_response(jsonify({'success': 'successful toggle', 'new_state': new_state}))
else:
return make_response(jsonify({'error': 'invalid {} id'.format(route_key)}))
示例5: get
# 需要导入模块: from pajbot.managers import AdminLogManager [as 别名]
# 或者: from pajbot.managers.AdminLogManager import post [as 别名]
def get(self, timer_id, **options):
with DBManager.create_session_scope() as db_session:
timer = db_session.query(Timer).filter_by(id=timer_id).one_or_none()
if timer is None:
return {'error': 'Invalid timer ID'}, 404
AdminLogManager.post('Timer removed', options['user'], timer.name)
db_session.delete(timer)
SocketClientManager.send('timer.remove', {'id': timer.id})
return {'success': 'good job'}
示例6: get
# 需要导入模块: from pajbot.managers import AdminLogManager [as 别名]
# 或者: from pajbot.managers.AdminLogManager import post [as 别名]
def get(self, banphrase_id, **options):
with DBManager.create_session_scope() as db_session:
banphrase = db_session.query(Banphrase).filter_by(id=banphrase_id).one_or_none()
if banphrase is None:
return {'error': 'Invalid banphrase ID'}, 404
AdminLogManager.post('Banphrase removed', options['user'], banphrase.phrase)
db_session.delete(banphrase)
db_session.delete(banphrase.data)
SocketClientManager.send('banphrase.remove', {'id': banphrase.id})
return {'success': 'good job'}, 200
示例7: add_link_whitelist
# 需要导入模块: from pajbot.managers import AdminLogManager [as 别名]
# 或者: from pajbot.managers.AdminLogManager import post [as 别名]
def add_link_whitelist(self, **options):
bot = options['bot']
message = options['message']
source = options['source']
parts = message.split(' ')
try:
for link in parts:
self.whitelist_url(link)
AdminLogManager.post('Whitelist link added', source, link)
except:
log.exception('Unhandled exception in add_link')
bot.whisper(source.username, 'Some error occurred white adding your links')
return False
bot.whisper(source.username, 'Successfully added your links')
示例8: add_link_blacklist
# 需要导入模块: from pajbot.managers import AdminLogManager [as 别名]
# 或者: from pajbot.managers.AdminLogManager import post [as 别名]
def add_link_blacklist(self, **options):
bot = options['bot']
message = options['message']
source = options['source']
options, new_links = self.parse_link_blacklist_arguments(message)
if new_links:
parts = new_links.split(' ')
try:
for link in parts:
if len(link) > 1:
self.blacklist_url(link, **options)
AdminLogManager.post('Blacklist link added', source, link)
bot.whisper(source.username, 'Successfully added your links')
return True
except:
log.exception('Unhandled exception in add_link_blacklist')
bot.whisper(source.username, 'Some error occurred while adding your links')
return False
else:
bot.whisper(source.username, 'Usage: !add link blacklist LINK')
return False
示例9: remove_banphrase
# 需要导入模块: from pajbot.managers import AdminLogManager [as 别名]
# 或者: from pajbot.managers.AdminLogManager import post [as 别名]
def remove_banphrase(self, **options):
message = options['message']
bot = options['bot']
source = options['source']
if message:
id = None
try:
id = int(message)
except ValueError:
pass
banphrase = bot.banphrase_manager.find_match(message=message, id=id)
if banphrase is None:
bot.whisper(source.username, 'No banphrase with the given parameters found')
return False
AdminLogManager.post('Banphrase removed', source, banphrase.phrase)
bot.whisper(source.username, 'Successfully removed banphrase with id {0}'.format(banphrase.id))
bot.banphrase_manager.remove_banphrase(banphrase)
else:
bot.whisper(source.username, 'Usage: !remove banphrase (BANPHRASE_ID)')
return False
示例10: add_banphrase
# 需要导入模块: from pajbot.managers import AdminLogManager [as 别名]
# 或者: from pajbot.managers.AdminLogManager import post [as 别名]
def add_banphrase(self, **options):
"""Method for creating and editing banphrases.
Usage: !add banphrase BANPHRASE [options]
Multiple options available:
--length LENGTH
--perma/--no-perma
--notify/--no-notify
"""
message = options['message']
bot = options['bot']
source = options['source']
if message:
options, phrase = bot.banphrase_manager.parse_banphrase_arguments(message)
if options is False:
bot.whisper(source.username, 'Invalid banphrase')
return False
options['added_by'] = source.id
options['edited_by'] = source.id
banphrase, new_banphrase = bot.banphrase_manager.create_banphrase(phrase, **options)
if new_banphrase is True:
bot.whisper(source.username, 'Added your banphrase (ID: {banphrase.id})'.format(banphrase=banphrase))
AdminLogManager.post('Banphrase added', source, phrase)
return True
banphrase.set(**options)
banphrase.data.set(edited_by=options['edited_by'])
DBManager.session_add_expunge(banphrase)
bot.banphrase_manager.commit()
bot.whisper(source.username, 'Updated your banphrase (ID: {banphrase.id}) with ({what})'.format(banphrase=banphrase, what=', '.join([key for key in options if key != 'added_by'])))
AdminLogManager.post('Banphrase edited', source, phrase)
示例11: timers_create
# 需要导入模块: from pajbot.managers import AdminLogManager [as 别名]
# 或者: from pajbot.managers.AdminLogManager import post [as 别名]
def timers_create(**options):
session.pop('timer_created_id', None)
session.pop('timer_edited_id', None)
if request.method == 'POST':
id = None
try:
if 'id' in request.form:
id = int(request.form['id'])
name = request.form['name'].strip()
interval_online = int(request.form['interval_online'])
interval_offline = int(request.form['interval_offline'])
message_type = request.form['message_type']
message = request.form['message'].strip()
except (KeyError, ValueError):
abort(403)
if interval_online < 0 or interval_offline < 0:
abort(403)
if message_type not in ['say', 'me']:
abort(403)
if len(message) == 0:
abort(403)
user = options.get('user', None)
if user is None:
abort(403)
options = {
'name': name,
'interval_online': interval_online,
'interval_offline': interval_offline,
}
action = {
'type': message_type,
'message': message
}
options['action'] = action
if id is None:
timer = Timer(**options)
with DBManager.create_session_scope(expire_on_commit=False) as db_session:
if id is not None:
timer = db_session.query(Timer).filter_by(id=id).one_or_none()
if timer is None:
return redirect('/admin/timers/', 303)
old_message = ''
new_message = ''
try:
old_message = timer.action.response
new_message = action['message']
except:
pass
timer.set(**options)
if len(old_message) > 0 and old_message != new_message:
log_msg = 'Timer "{0}" has been updated from "{1}" to "{2}"'.format(
timer.name,
old_message,
new_message)
else:
log_msg = 'Timer "{0}" has been updated'.format(timer.name)
AdminLogManager.add_entry('Timer edited',
user,
log_msg,
data={
'old_message': old_message,
'new_message': new_message,
})
else:
db_session.add(timer)
AdminLogManager.post('Timer added', user, timer.name)
SocketClientManager.send('timer.update', {'timer_id': timer.id})
if id is None:
session['timer_created_id'] = timer.id
else:
session['timer_edited_id'] = timer.id
return redirect('/admin/timers/', 303)
else:
return render_template('admin/create_timer.html')
示例12: banphrases_create
# 需要导入模块: from pajbot.managers import AdminLogManager [as 别名]
# 或者: from pajbot.managers.AdminLogManager import post [as 别名]
def banphrases_create(**options):
session.pop('banphrase_created_id', None)
session.pop('banphrase_edited_id', None)
if request.method == 'POST':
id = None
try:
if 'id' in request.form:
id = int(request.form['id'])
name = request.form['name'].strip()
permanent = request.form.get('permanent', 'off')
warning = request.form.get('warning', 'off')
notify = request.form.get('notify', 'off')
case_sensitive = request.form.get('case_sensitive', 'off')
sub_immunity = request.form.get('sub_immunity', 'off')
length = int(request.form['length'])
phrase = request.form['phrase'].strip()
operator = request.form['operator'].strip().lower()
except (KeyError, ValueError):
abort(403)
permanent = True if permanent == 'on' else False
warning = True if warning == 'on' else False
notify = True if notify == 'on' else False
case_sensitive = True if case_sensitive == 'on' else False
sub_immunity = True if sub_immunity == 'on' else False
if len(name) == 0:
abort(403)
if len(phrase) == 0:
abort(403)
if length < 0 or length > 1209600:
abort(403)
valid_operators = ['contains', 'startswith', 'endswith']
if operator not in valid_operators:
abort(403)
user = options.get('user', None)
if user is None:
abort(403)
options = {
'name': name,
'phrase': phrase,
'permanent': permanent,
'warning': warning,
'notify': notify,
'case_sensitive': case_sensitive,
'sub_immunity': sub_immunity,
'length': length,
'added_by': user.id,
'edited_by': user.id,
'operator': operator,
}
if id is None:
banphrase = Banphrase(**options)
banphrase.data = BanphraseData(banphrase.id, added_by=options['added_by'])
with DBManager.create_session_scope(expire_on_commit=False) as db_session:
if id is not None:
banphrase = db_session.query(Banphrase).options(joinedload(Banphrase.data)).filter_by(id=id).one_or_none()
if banphrase is None:
return redirect('/admin/banphrases/', 303)
banphrase.set(**options)
banphrase.data.set(edited_by=options['edited_by'])
log.info('Updated banphrase ID {} by user ID {}'.format(banphrase.id, options['edited_by']))
AdminLogManager.post('Banphrase edited', user, banphrase.phrase)
else:
db_session.add(banphrase)
db_session.add(banphrase.data)
log.info('Added a new banphrase by user ID {}'.format(options['added_by']))
AdminLogManager.post('Banphrase added', user, banphrase.phrase)
SocketClientManager.send('banphrase.update', {'banphrase_id': banphrase.id})
if id is None:
session['banphrase_created_id'] = banphrase.id
else:
session['banphrase_edited_id'] = banphrase.id
return redirect('/admin/banphrases/', 303)
else:
return render_template('admin/create_banphrase.html')