summaryrefslogtreecommitdiffstats
path: root/dump-chrome-history
blob: d99e561434b34607af6de1f2c466f5883b25f083 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/bin/bash

TMPDIR="$(mktemp -d "/tmp/${0##*/}.XXXXXX")"
trap "rm -rf '${TMPDIR}'" EXIT TERM

cp -n ~/.config/chromium/Default/History "$TMPDIR"

sqlite_opts=()

case $MODE in
	zsh-history-compat)
		select_fields="last_visit_time/1000000-11644473600 AS visit_date, url, title"
		sqlite_opts=(-separator ' | ')
		;;
	*) select_fields="datetime(last_visit_time/1000000-11644473600,'unixepoch', 'localtime') AS visit_date, url, title";;
esac

output_filter() {
	if [[ $MODE == 'zsh-history-compat' ]]; then
		sed -r 's#^([0-9]+) \| (.*)$#: \1:0;\2#'
	else
		cat
	fi
}

sqlite3 "${sqlite_opts[@]}" "$TMPDIR/History" "SELECT $select_fields
FROM urls
WHERE last_visit_time/1000000-11644473600 > $(date +%s -d "${1:-2 months ago}") AND last_visit_time/1000000-11644473600 < $(date +%s -d "${2:-now}")
ORDER BY last_visit_time" | output_filter