Full implementation from spec: ZNC/IRC client with TLS, Ollama LLM backend, per-user SQLite conversation memory, and Flask web admin portal with 7 pages. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
53 lines
1.8 KiB
HTML
53 lines
1.8 KiB
HTML
{% extends "base.html" %}
|
|
{% block title %}Bot Identity — IRC Bot Portal{% endblock %}
|
|
{% block content %}
|
|
<h1>Bot Identity</h1>
|
|
|
|
{% for e in errors %}
|
|
<div class="alert alert-error">{{ e }}</div>
|
|
{% endfor %}
|
|
|
|
<form method="post" class="settings-form">
|
|
<div class="section">
|
|
<h2>Identity</h2>
|
|
<div class="field-row">
|
|
<label>Bot Nick</label>
|
|
<input type="text" name="bot_nick" value="{{ cfg.get('bot_nick', 'avcbot') }}" required>
|
|
<span class="hint">Changing sends a live NICK command.</span>
|
|
</div>
|
|
<div class="field-row">
|
|
<label>Real Name</label>
|
|
<input type="text" name="bot_realname" value="{{ cfg.get('bot_realname', 'Active Blue IRC Bot') }}">
|
|
<span class="hint">Requires reconnect to take effect.</span>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="section">
|
|
<h2>Trigger Settings</h2>
|
|
<div class="field-row">
|
|
<label>Trigger on Nick Mention</label>
|
|
<input type="checkbox" name="trigger_on_nick" {% if cfg.get('trigger_on_nick', True) %}checked{% endif %}>
|
|
<span class="hint">Respond when someone says <code>avcbot: ...</code></span>
|
|
</div>
|
|
<div class="field-row">
|
|
<label>Trigger Prefix</label>
|
|
<input type="text" name="trigger_prefix" value="{{ cfg.get('trigger_prefix') or '' }}" placeholder="e.g. !ask">
|
|
<span class="hint">Leave blank to disable prefix trigger.</span>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="section">
|
|
<h2>Ignored Nicks</h2>
|
|
<div class="field-row">
|
|
<label>Ignored Nicks</label>
|
|
<input type="text" name="ignored_nicks" value="{{ cfg.get('ignored_nicks', [])|join(', ') }}" placeholder="ChanServ, NickServ">
|
|
<span class="hint">Comma-separated. Bot never responds to these nicks.</span>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="actions">
|
|
<button type="submit" class="btn btn-primary">Save & Apply</button>
|
|
</div>
|
|
</form>
|
|
{% endblock %}
|