Alimentando Desktopcouch com Zeitgeist
Zeitgeist é um indexador de atividades, gerando informações sobre aplicações acessadas, músicas tocadas, etc.
Desktopcouch é (ou era) a parte de sincronização do Ubuntu One. Este artigo demonstra como criar uma extensão para o
Zeitgeist que alimente o Desktopcouch. Desta forma, as informações do Zeitgeist puderam ser acessadas remotamente.
Desktopcouch é (ou era) a parte de sincronização do Ubuntu One. Este artigo demonstra como criar uma extensão para o
Zeitgeist que alimente o Desktopcouch. Desta forma, as informações do Zeitgeist puderam ser acessadas remotamente.
Parte 4: Recuperação e Espera de Novos Eventos
Recuperando eventos do Zeitgeist
Muito provavelmente, você deseja recuperar informações que já estejam no Zeitgeist.Para pesquisar um evento no Zeitgeist, primeiro você precisa de um TimeRange. Sendo este um objeto com 'Begin' e 'End', definindo quando começa e quando termina o período, para encontrar eventos ocorridos no intervalo deste período.
Após decidir qual o período definido em sua busca, deve-se definir qual Template será utilizado para a busca.
* Template de Evento, nada mais é do que o objeto Event podendo ter informações omitidas, sendo que toda informação omitida é considerada como WildCard (ou Curinga).
Para encontrar o evento de 'receber uma mensagem de texto' definido anteriormente, é possível utilizar o seguinte template:
Mais as informações podem ser omitidas ou incluídas para refinar sua busca, por exemplo, um Template para Subjects com links:
Pode-se utilizar mais de um Template ou omiti-los da busca para incluir todos os eventos.
Mais três informações são necessárias para realizar a busca, são elas:
I - StorageState: que informa se o subject esta disponível (StorageState.Available), indisponível (StorageState.NotAvailable) ou tanto faz (StorageState.Any). Por exemplo, se era um arquivo, este pode ter sido removido;
II - A quantidade de resultados, valor inteiro, onde 0 representa todos possíveis;
III - ResultType: que informa o tipo do resultado, basicamente é utilizado para informar ordenação, mas também pode informar que algo no Template não deve ser igual ao evento, para o evento aparecer nos resultados.
Exemplo realizando uma busca simples por todos os sites:
Para a busca, também pode ser utilizado o ZeitgeistClient, porém, funciona de forma um pouco diferente, pois deve ser passado um Callback que receberá o resultado da busca.
Esperando novos eventos
Uma vez que já esteja definido como enviar eventos para o Zeitgeist, como pesquisá-los, como registrá-los no Desktopcouch, só falta mais uma informação importante: como registar para ser informado todas as vezes que um evento for criado.Para registrar-se, defina um TimeRange, os Templates e duas funções de Callback, uma que receberá os eventos criados e outra que recebe os ID dos eventos removidos.
Como estas chamadas são assíncronas, será necessário um Mainloop, que pode ser tanto GLib, quando QT.
A parte de remover o monitor esta comentada, mas fica para fins instrutivos.
Perceba que passei um Template em branco: '[ ]', mas como descrito sobre busca, pode ser criado um ou vários Templates que definam quais eventos devem ser recebidos.
Bem legal, tem outras coisas também (servidor python ...).