#!/usr/bin/env python # # simple regexp-based URL processor for epiphany 1.8+ # GNU GPL licensed # Vaclav Smilauer # version 22.9.2005 import epiphany,re; #TODO: make some nice gtk dialog to adjust, store array in gconf (?) with sane defaults url_regexps=[ (r'(.*\s.*)',r'http://www.google.com/search?q=\1'), (r'^bug:(.*)$',r'http://bugs.debian.org/\1'), (r'^pkg:(.*)$',r'http://packages.debian.org/\1'), (r'^upkg:(.*)$',r'http://packages.ubuntu.com/\1') ] def resolve_address_cb(bookmarks,address,smartbookmark_content,window): #smartbookmark_content unused for pattern,url_template in url_regexps: matchobj=re.match(pattern,address) if matchobj: newaddr=matchobj.expand(url_template) print 'Replaced "%s" -> "%s" (using "%s" -> "%s", groups=%s)"'%(address,newaddr,pattern,url_template,matchobj.groups()) return newaddr return None def attach_tab(window, tab): bookmarks=epiphany.ephy_shell_get_default().get_bookmarks() bookmarks._urlregexp_resolve_address_sig=bookmarks.connect('resolve-address',resolve_address_cb,window) def detach_tab(window, tab): bookmarks=epiphany.ephy_shell_get_default().get_bookmarks() sig=bookmarks._urlregexp_resolve_address_sig del bookmarks._urlregexp_resolve_address_sig bookmarks.disconnect(sig)