~zeitgeist-dataproviders/zeitgeist-datasources/git

« back to all changes in this revision

Viewing changes to vim/zeitgeist.vim

  • Committer: Michal Hruby
  • Date: 2010-06-29 20:40:15 UTC
  • Revision ID: git-v1:f888d839e8e43b53dffd677853e27aee6936c729
Merge in vim plugin

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
"zeitgeist.vim - a Zeitgeist logger for Vim
 
2
"Author : Jonathan Lambrechts <jonathanlambrechts@gmail.com>
 
3
"Installation : drop this file in a vim plugin folder ($HOME/.vim/plugin,/usr/share/vim/vim72/plugin, ...). Vim should be compiled with python enabled.
 
4
 
 
5
function! ZeigtgeistLog(filename,use_id)
 
6
python << endpython
 
7
use = {
 
8
        "read" : Interpretation.ACCESS_EVENT,
 
9
  "new" : Interpretation.CREATE_EVENT,
 
10
  "write" : Interpretation.MODIFY_EVENT} [vim.eval("a:use_id")]
 
11
 
 
12
uri = "file://" + vim.eval("a:filename")
 
13
fi = gio.File(uri).query_info(gio.FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE)
 
14
mimetype = fi.get_content_type()
 
15
subject = Subject.new_for_values(
 
16
  uri=unicode(uri),
 
17
  text=unicode(uri.rpartition("/")[2]),
 
18
  interpretation=unicode(Interpretation.DOCUMENT),
 
19
  manifestation=unicode(Manifestation.FILE_DATA_OBJECT),
 
20
  origin=unicode(uri.rpartition("/")[0]),
 
21
  mimetype=unicode(mimetype)
 
22
)
 
23
event = Event.new_for_values(
 
24
  timestamp=int(time.time()*1000),
 
25
  interpretation=unicode(use),
 
26
  manifestation=unicode(Manifestation.USER_ACTIVITY),
 
27
  actor="application://gvim.desktop",
 
28
  subjects=[subject,]
 
29
)
 
30
zeitgeistclient.insert_event(event)
 
31
endpython
 
32
endfunction
 
33
 
 
34
python << endpython
 
35
import time
 
36
import gio
 
37
import vim
 
38
from zeitgeist.client import ZeitgeistClient
 
39
from zeitgeist.datamodel import Subject, Event, Interpretation, Manifestation
 
40
  
 
41
try:
 
42
  zeitgeistclient = ZeitgeistClient()
 
43
except RuntimeError, e:
 
44
  zeitgeistclient = None
 
45
endpython
 
46
augroup zeitgeist
 
47
au!
 
48
au BufRead * call ZeigtgeistLog (expand("%:p"), "read")
 
49
au BufNewFile * call ZeigtgeistLog (expand("%:p"), "new")
 
50
au BufWrite * call ZeigtgeistLog (expand("%:p"), "write")
 
51
augroup END