Files
cproof/profrc.example
jabber.developer2 71230f7ced feat: add flat-file database backend for message history
Add pluggable storage backend abstraction (vtable) to the database layer,
allowing selection between SQLite (default) and a new flat-file backend
that stores messages as human-readable plain text files.

New files:
- database_sqlite.c: extracted SQLite backend from database.c
- database_flatfile.c: plain text backend with tolerant parser,
  LMC correction chains, UTF-8/BOM/CRLF handling, integrity checks

Commands:
- /privacy logging flatfile — switch to flat-file backend
- /history verify [<jid>] — check integrity of stored history

Fixes:
- Add missing 'off' guard in flatfile backend
- Enable CHLOG/HISTORY prefs when switching to flatfile mode

Logs stored in ~/.local/share/profanity/flatlog/{account}/{contact}/{date}.log
Format: {ISO8601} [{type}|{enc}|id:{id}|corrects:{id}] {sender}: {message}

Updated: CHANGELOG, CONTRIBUTING.md, profrc.example, man page, cmd_defs,
Makefile.am, test stubs, functional test support (PROF_FLATFILE=1)
2026-03-04 18:54:24 +03:00

70 lines
1.1 KiB
Plaintext

[ui]
splash=true
intype=true
beep=false
statuses.muc=all
theme=default
history=true
titlebar=true
mouse=false
flash=false
vercheck=false
statuses.console=all
statuses.chat=all
color.nick=true
[connection]
autoping=60
reconnect=5
account=me@server.org
[chatstates]
enabled=true
outtype=false
gone=10
[notifications]
remind=60
invite=true
sub=true
message=true
room=mention
message.current=true
room.current=true
typing=true
typing.current=false
message.text=true
room.text=true
room.offline=true
[alias]
colour=/color
topic=/subject
friends=/who online friends
bob=/msg bob@server.org hey wassup?
[logging]
chlog=true
grlog=true
maxsize=1048580
rotate=true
shared=true
# Database backend for message history:
# on - SQLite database (default)
# off - no message logging
# redact - store with redacted message content
# flatfile - plain text files, editable with any text editor
# stored in ~/.local/share/profanity/flatlog/
dblog=on
[otr]
warn=true
log=redact
policy=manual
[presence]
autoaway.mode=away
autoaway.time=15
autoaway.message=Away from computer
autoaway.check=true