Save Snippets in Pygmynote with the Script

Dmitri Popov

Productivity Sauce

Oct 21, 2011 GMT
Dmitri Popov

As you might already know, I use a home-made Python script called Pygmynote to keep tabs on all kinds of data: from text snippets and links, to tasks and deadlines. Usually, I enter data in Pygmynote manually, but there are situations when having the ability to just push a text selection or link to Pygmynote's SQLite database can come in rather handy. So I wrote a simple Python script that does just that.

#!/usr/bin/env python
import pygtk, gtk, wx
import sqlite3 as sqlite

DB = 'pygmynote.db'

conn = sqlite.connect(DB)
cursor = conn.cursor()

def escapechar(sel):
 sel=sel.replace("\'", "\''")
 sel=sel.replace("\"", "\\\"")
 return sel

clipboard = gtk.clipboard_get()
snip = clipboard.wait_for_text()

app = wx.PySimpleApp()
tags = wx.TextEntryDialog(None, "Tags:","Add Tags", "", style=wx.OK|wx.CANCEL)
if tags.ShowModal() == wx.ID_OK:
    notetags = tags.GetValue()

notetext = escapechar(snip)
notedue = ""
notetype = "A"
sqlquery = \
"INSERT INTO notes (note, due, tags, type) VALUES ('%s', '%s', '%s', '%s')"\
% (notetext, notedue, notetags, notetype)

message = wx.MessageDialog(None, "Snip saved. All done!", "Done", wx.OK)

The code uses the PyGTK library to create a dialog window and message boxes. The way the script works is pretty straightforward. First it establishes a connection to the database and grabs the contents of the clipboard. The script then prompts you to specify tags for the snippet, and creates a record in the database. That's all there is to it. I assigned a keyboard shortcut to the script to make it easily accessible. You can grab the latest release of Pygmynote and the script from the project's GitHub repository.

comments powered by Disqus

Issue 167/2014

Buy this issue as a PDF

Digital Issue: Price $9.99
(incl. VAT)


njobs Europe
Njobs Netherlands Njobs Deutschland Njobs United Kingdom Njobs Italia Njobs France Njobs Espana Njobs Poland
Njobs Austria Njobs Denmark Njobs Belgium Njobs Czech Republic Njobs Mexico Njobs India Njobs Colombia