vibergrep

Kéménybe korommal, mert a backup disk mintha éppen a halálán lenne... Meg hátha másnak is hasznos lesz, ha már Viber kliensbe képtelenek voltak keresést implementálni.

Usage: vibergrep <contact> [<grep options>...] <pattern>

Azt csinálja, amit a neve és ez alapján sejteni lehet, az eredmény kb úgy néz ki, mintha irclogban keresne, kivéve a többsoros viber üzeneteket.


#!/bin/sh

USAGE="Usage: vibergrep <contact> [<grep options>...] <pattern>"
VIBER_PATH="$HOME/.ViberPC"

test "$#" -lt 2 && { echo "$USAGE" 1>&2 ; exit 1 ; }

contact="$1"
shift

for i in "$VIBER_PATH"/*
do
        case "${i##$VIBER_PATH/}" in
        [0-9]*)
                test -r "$i"/viber.db && { viber_db="$i"/viber.db ; break ; }
                ;;
        esac
done

test -z "$viber_db" && { echo "Error: cannot find or access viber.db" 1>&2 ; exit 1 ; }

sqlite3 -separator ' ' "$viber_db" "
SELECT datetime(TimeStamp, 'unixepoch', 'localtime'),
        CASE Direction
                WHEN '0' THEN '<$contact>'
                WHEN '1' THEN '<$USER>'
        END,
        Body
FROM Events
INNER JOIN Messages ON Events.EventID = Messages.EventID
WHERE Events.Number = (
        SELECT Number
        FROM ContactRelation
        WHERE ContactID = (
                SELECT Contact.ContactID
                FROM Contact
                WHERE FirstName = '$contact'))
ORDER BY TimeStamp" |grep "$@"

Hozzászólások

Tuti müxik? Nálam nincs kimenet. Grepet kivéve, és direktbe kimásolt és kézzel beilletszett FirstName-el sem.

BTW, nagy segítség, de első sor typo-s.

"Tuti müxik? Nálam nincs kimenet. Grepet kivéve, és direktbe kimásolt és kézzel beilletszett FirstName-el sem."

WorksForMe™ :)

Már a legbelső SELECT (

sqlite3 /home/Mercoory/.ViberPC/0123456789/viber.db "SELECT Contact.ContactID FROM Contact WHERE FirstName = '<valaki>'"

) se ír ki semmit? (Egy intet kellene neki)

"első sor typo-s."

Eh, copy-paste-nél lemaradt a shebang, kézzel meg nem sikerült maradéktalanul begépelni, kínos.
Javítva, köszi.