7 votos

¿Cómo puedo registro de todas las notificaciones?

Dropbox, PushBullet, Thunderbird y una docena de otras aplicaciones crear notificaciones. Es posible el registro de estos en un Unix-like manera?

No me gusta el pequeño de los mensajes, haciendo estallar para arriba por unos segundos y luego desaparece sin dejar rastro.

Básicamente, quiero ser capaz de grep un archivo que contiene una línea para cada notificación.

2voto

oystein Puntos 11

Como estaba vinculado por Arthur Martillo, http://apple.stackexchange.com/a/142811/37689 establece que las notificaciones se almacenan en una base de datos SQLite. La siguiente secuencia de comandos de python debería comenzar:

#!/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()

A continuación, puedes tubería esta en un archivo y, a continuación, grep el archivo, o simplemente grep la salida de la secuencia de comandos directamente.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X