Come posso registrare tutte le notifiche?

5

Dropbox, PushBullet, Thunderbird e una dozzina di altre app creano notifiche. È possibile registrarli in un modo simile a Unix?

Non mi piacciono i piccoli messaggi che appaiono per qualche secondo e poi scompaiono senza lasciare traccia.

Fondamentalmente, voglio essere in grado di grep un file che contiene una linea per ogni notifica.

    
posta sente 30.09.2015 - 09:28
fonte

2 risposte

2

Come è stato collegato da Arthur Hammer, link afferma che le notifiche sono archiviate in un database SQLite. Il seguente script python dovrebbe iniziare:

#!/usr/bin/env python
import os
import re
import sqlite3

# Location of notification centers database under Yosemite
tmp = os.environ['TMPDIR']
conn = sqlite3.connect(tmp + '/../0/com.apple.notificationcenter/db/db')

for notification in conn.execute('SELECT * from notifications'):
    encoded_data = str(notification[-1]) # last item
    clean = re.sub('[^\w\s-]', '', encoded_data) # remove some funny stuff (fixme: removes too much?)
    sp = clean.split('\t')
    # Find NSActualdeliverydate, message content seems to always come after this
    for ix in range(len(sp)):
        if 'NSActualdeliverydate' in sp[ix]:
            break
    # Skip blanks
    for ix in range(ix+1, len(sp)):
        if sp[ix] != '': break

    print 'notification', sp[ix].replace('_', '\n').strip()

conn.close()

Puoi quindi reindirizzare questo file a un file e quindi eseguire il grep del file, o semplicemente eseguire direttamente l'output dello script.

    
risposta data 31.12.2015 - 18:56
fonte
1

La risposta di oystein è ottima, ma suppongo che funzioni solo per yosemite perché il db sqlite per alta sierra è un modello db diverso ...

quindi ho trovato questo facile strumento ... (che funziona perfettamente per l'alta seirra) link

esegui semplicemente con il tuo percorso db input e output path .csv che vorresti creare

nota: per trovare il percorso del db del centro di notifica, visualizza questo ... link

GLHF!

    
risposta data 17.07.2018 - 02:21
fonte

Leggi altre domande sui tag