The logs are stored in couchdb.
usage: irclog-cli.py [-h] [--verbose] {search,follow,dump,list} ...
options:
  -h, --help            show this help message and exit
  --verbose, -v
subcommands:
  {search,follow,dump,list}
    search              search <channel> <text…>
    follow              follow <channel> [backlog limit, default 100]
    dump                dump <channel> <file>
    list                list all channels
Depends on: `requests`
pip install -r requirements.txt
CHANNEL=xyz
curl "https://db.softver.org.mk/irclog/_changes?include_docs=true&filter=_selector" \
    -H "Content-Type: application/json" \
    -d '{"selector": {"channel": "'$CHANNEL'"}}' > dump.json
The dump is a json object, that has a results field which is a list of changes items. Each change has the doc field. Let's remove the changes items, we're only interested in the doc: jq '.results|=map(.doc)'.
To get get just the results list: jq '.results|=map(.doc) | .results'.
The changes are not always delivered in order, so let's sort the list by the timestamp:
jq '.results|=(map(.doc)|sort_by(.timestamp))| .results' < dump.json
Next time you dump, you can use the last_seq field in the dump, so you don't download everything.
LAST_SEQ=`jq '.last_seq' < dump.json`
CHANNEL=xyz
curl "https://db.softver.org.mk/irclog/_changes?include_docs=true&filter=_selector&since=$LAST_SEQ" \
    -H "Content-Type: application/json" \
    -d '{"selector": {"channel": "'$CHANNEL'"}}' > dump2.json