--- /dev/null
+Return-Path: <jrollins@finestructure.net>\r
+X-Original-To: notmuch@notmuchmail.org\r
+Delivered-To: notmuch@notmuchmail.org\r
+Received: from localhost (localhost [127.0.0.1])\r
+ by olra.theworths.org (Postfix) with ESMTP id A6486431FB6\r
+ for <notmuch@notmuchmail.org>; Mon, 15 Apr 2013 12:07:47 -0700 (PDT)\r
+X-Virus-Scanned: Debian amavisd-new at olra.theworths.org\r
+X-Spam-Flag: NO\r
+X-Spam-Score: -2.3\r
+X-Spam-Level: \r
+X-Spam-Status: No, score=-2.3 tagged_above=-999 required=5\r
+ tests=[RCVD_IN_DNSWL_MED=-2.3] autolearn=disabled\r
+Received: from olra.theworths.org ([127.0.0.1])\r
+ by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)\r
+ with ESMTP id MuduWRy2-amS for <notmuch@notmuchmail.org>;\r
+ Mon, 15 Apr 2013 12:07:42 -0700 (PDT)\r
+Received: from outgoing-mail.its.caltech.edu (outgoing-mail.its.caltech.edu\r
+ [131.215.239.19])\r
+ by olra.theworths.org (Postfix) with ESMTP id 2C33B431FAF\r
+ for <notmuch@notmuchmail.org>; Mon, 15 Apr 2013 12:07:42 -0700 (PDT)\r
+Received: from fire-doxen.imss.caltech.edu (localhost [127.0.0.1])\r
+ by fire-doxen-postvirus (Postfix) with ESMTP id EFEE72E50BFF;\r
+ Mon, 15 Apr 2013 12:07:31 -0700 (PDT)\r
+X-Spam-Scanned: at Caltech-IMSS on fire-doxen by amavisd-new\r
+Received: from finestructure.net (DHCP-123-224.caltech.edu [131.215.123.224])\r
+ (Authenticated sender: jrollins)\r
+ by fire-doxen-submit (Postfix) with ESMTP id EC1123281B3;\r
+ Mon, 15 Apr 2013 12:07:27 -0700 (PDT)\r
+Received: by finestructure.net (Postfix, from userid 1000)\r
+ id 99CD761707; Mon, 15 Apr 2013 12:07:27 -0700 (PDT)\r
+From: Jameson Graef Rollins <jrollins@finestructure.net>\r
+To: Patrick Totzke <patricktotzke@gmail.com>,\r
+ Notmuch Mail <notmuch@notmuchmail.org>\r
+Subject: Re: Xapers\r
+In-Reply-To: <20130415184645.698.61822@brick.lan>\r
+References: <87zjx0tdwt.fsf@servo.finestructure.net>\r
+ <87li8ju307.fsf@servo.finestructure.net>\r
+ <20130415184645.698.61822@brick.lan>\r
+User-Agent: Notmuch/0.15.2+82~ga5881dd (http://notmuchmail.org) Emacs/24.2.1\r
+ (x86_64-pc-linux-gnu)\r
+Date: Mon, 15 Apr 2013 12:07:25 -0700\r
+Message-ID: <87a9oztxxu.fsf@servo.finestructure.net>\r
+MIME-Version: 1.0\r
+Content-Type: multipart/signed; boundary="=-=-=";\r
+ micalg=pgp-sha256; protocol="application/pgp-signature"\r
+X-BeenThere: notmuch@notmuchmail.org\r
+X-Mailman-Version: 2.1.13\r
+Precedence: list\r
+List-Id: "Use and development of the notmuch mail system."\r
+ <notmuch.notmuchmail.org>\r
+List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,\r
+ <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
+List-Archive: <http://notmuchmail.org/pipermail/notmuch>\r
+List-Post: <mailto:notmuch@notmuchmail.org>\r
+List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
+List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,\r
+ <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
+X-List-Received-Date: Mon, 15 Apr 2013 19:07:48 -0000\r
+\r
+--=-=-=\r
+Content-Type: text/plain; charset=utf-8\r
+Content-Transfer-Encoding: quoted-printable\r
+\r
+On Mon, Apr 15 2013, Patrick Totzke <patricktotzke@gmail.com> wrote:\r
+> Brilliant idea!\r
+\r
+Thanks! I give Carl all the credit, though, since it's really all just\r
+based on the notmuch idea.\r
+\r
+> here's some early feedback:\r
+> * is there a way to batch import a bunch of pdfs? or better yet, a bibtex=\r
+ file with entries pointing\r
+> to files like the ones produced by say jabref?\r
+> There, entries have some line like this:\r
+> file =3D {Boz2012.pdf:papers/Boz2012.pdf:PDF}\r
+\r
+There's not currently a prescribed way to batch import, but if you can\r
+programmatically get all pdf/bibtex pairs then it should be easy to\r
+script:\r
+\r
+ xapers import --file=3DPDF --source=3DBIBTEX\r
+\r
+> * got a bunch of traces:\r
+> -----------------------------\r
+> $xapers import --source=3DABK2011.pdf =\r
+ 1 =E2=86=B5 master=20\r
+> Reading bibtex... done.\r
+> Adding bibtex...=20\r
+>=20=20=20\r
+> Traceback (most recent call last):\r
+> File "/home/pazz/.local/bin/xapers", line 145, in <module>\r
+> docid =3D cli.add(query_string, infile=3Dinfile, source=3Dsource, t=\r
+ags=3Dtags, prompt=3Dprompt)\r
+> File "/home/pazz/.local/lib/python2.7/site-packages/xapers/cli/ui.py"=\r
+, line 228, in add\r
+> doc.add_bibtex(bibtex)\r
+> File "/home/pazz/.local/lib/python2.7/site-packages/xapers/documents.=\r
+py", line 373, in add_bibtex\r
+> self.bibentry =3D xapers.bibtex.Bibentry(bibtex)\r
+> File "/home/pazz/.local/lib/python2.7/site-packages/xapers/bibtex.py"=\r
+, line 25, in __init__\r
+> if os.path.exists(bibtex):\r
+> File "/usr/lib/python2.7/genericpath.py", line 18, in exists\r
+> os.stat(path)\r
+> TypeError: must be encoded string without NULL bytes, not str\r
+> ----------------------------\r
+\r
+Yikes. Sorry about that. Clearly more error checking is needed.\r
+\r
+The problem here is that PDFs should passed in through the --file=3D\r
+option, while source library URLs or bibtex files should be passed in\r
+through --source=3D.\r
+\r
+> $ xapers show, then i moved around a bit\r
+>\r
+> ----------------------------\r
+> Traceback (most recent call last):\r
+> File "/home/pazz/.local/bin/xapers", line 228, in <module>\r
+> xapers.nci.UI(xroot, cmd=3Dargs)\r
+> File "/home/pazz/.local/lib/python2.7/site-packages/xapers/nci/ui.py"=\r
+, line 73, in __init__\r
+> self.mainloop.run()\r
+> File "/home/pazz/.local/lib/python2.7/site-packages/urwid-1.2.0_dev-p=\r
+y2.7-linux-x86_64.egg/urwid/main_loop.py", line 272, in run\r
+> self.screen.run_wrapper(self._run)\r
+> File "/home/pazz/.local/lib/python2.7/site-packages/urwid-1.2.0_dev-p=\r
+y2.7-linux-x86_64.egg/urwid/raw_display.py", line 242, in run_wrapper\r
+> return fn()\r
+> File "/home/pazz/.local/lib/python2.7/site-packages/urwid-1.2.0_dev-p=\r
+y2.7-linux-x86_64.egg/urwid/main_loop.py", line 337, in _run\r
+> self.event_loop.run()\r
+> File "/home/pazz/.local/lib/python2.7/site-packages/urwid-1.2.0_dev-p=\r
+y2.7-linux-x86_64.egg/urwid/main_loop.py", line 708, in run\r
+> self._loop()\r
+> File "/home/pazz/.local/lib/python2.7/site-packages/urwid-1.2.0_dev-p=\r
+y2.7-linux-x86_64.egg/urwid/main_loop.py", line 787, in _loop\r
+> self._watch_files[fd]()\r
+> File "/home/pazz/.local/lib/python2.7/site-packages/urwid-1.2.0_dev-p=\r
+y2.7-linux-x86_64.egg/urwid/main_loop.py", line 388, in _update\r
+> self.process_input(keys)\r
+> File "/home/pazz/.local/lib/python2.7/site-packages/urwid-1.2.0_dev-p=\r
+y2.7-linux-x86_64.egg/urwid/main_loop.py", line 488, in process_input\r
+> k =3D self._topmost_widget.keypress(self.screen_size, k)\r
+> File "/home/pazz/.local/lib/python2.7/site-packages/urwid-1.2.0_dev-p=\r
+y2.7-linux-x86_64.egg/urwid/container.py", line 1120, in keypress\r
+> return self.body.keypress( (maxcol, remaining), key )\r
+> File "/home/pazz/.local/lib/python2.7/site-packages/xapers/nci/search=\r
+.py", line 304, in keypress\r
+> eval(cmd)\r
+> File "<string>", line 1, in <module>\r
+> File "/home/pazz/.local/lib/python2.7/site-packages/xapers/nci/search=\r
+.py", line 155, in nextEntry\r
+> self.listbox.set_focus(pos + 1)\r
+> File "/home/pazz/.local/lib/python2.7/site-packages/urwid-1.2.0_dev-p=\r
+y2.7-linux-x86_64.egg/urwid/listbox.py", line 567, in set_focus\r
+> self.body.set_focus(position)\r
+> File "/home/pazz/.local/lib/python2.7/site-packages/urwid-1.2.0_dev-p=\r
+y2.7-linux-x86_64.egg/urwid/listbox.py", line 178, in set_focus\r
+> raise IndexError, "No widget at position %s" % (position,)\r
+> IndexError: No widget at position 1\r
+> ----------------------------\r
+\r
+Hrm. Don't know what this is about. I'll look into it. Sorry again!\r
+\r
+> * did you already set something up to report bugs? github issues, a malin=\r
+g list?\r
+\r
+No, not yet. I wanted to gauge interest first. Maybe I'll go ahead and\r
+set something up on github. In the meantime please just report bugs to\r
+be directly and I'll note them in the TODO.\r
+\r
+> Can't wait until someone forks alot to use this. I've been waiting for\r
+> someone (else) to start a project like this for some time now :)\r
+\r
+Well actually the curses UI is ripped almost entirely from alot already!\r
+It clearly needs some more work, though.\r
+\r
+Thanks for the feedback and interest!\r
+\r
+jamie.\r
+\r
+--=-=-=\r
+Content-Type: application/pgp-signature\r
+\r
+-----BEGIN PGP SIGNATURE-----\r
+Version: GnuPG v1.4.12 (GNU/Linux)\r
+\r
+iQIcBAEBCAAGBQJRbE/tAAoJEO00zqvie6q8qLkP/iZqSDRGq2/6zHy9eVA9OpQ5\r
++lhp0zbxvuvmgZ1KaAlyO9P4+a1fA1KnNxCwvt7DCj9SANDGEpqXwyW+XS3ypl75\r
+C9ab/XU9ckyhr3ZM5EdZb/tb9WN04M0vIe+JeaOrAwFfsWt1aOZ4ysRsZmVjZki2\r
+jvaXEufuO9KqyCwIF0UIqUsgOyVsfVmE5u5hUql9YaWaK6khmekkg/ncb8azL8YK\r
+CsVw1ztTUblXLsYoi8RtkZnbJ+/4GR/guJ6Luf2Z5AMZkxbLrrklIyD3DtV59Z6q\r
+Oby6MA3c6zvdf9HNMOcAhstsbnEy9e98amo65MvCu38WmKVQbvwMhEKv1K/t2dqx\r
+dDsyqT7QTpTW0/50Q8MEWuk1XwGCywUZvopHSp1SL4K5jhKiD0Dfm9aPj5khS6TI\r
+KYO8QXQqKtvP+yX1pViXfxzt6Zbc3WYirRwVf3R+UZtjd0L/uSeKg8aP3XdmNOKQ\r
+oLkyMYRrODyHywQ5UzMM9LbZEMGDFwBOJjwTwONVzTCLKtUKV+iSmqq6HwiFeGAu\r
+WDN5dbZV4o6+NAotGPkTJjSHEnOLJTwwq7/y44G1qs7UlGRq3cehcJPVjtcSx0+k\r
+E/gNHsMBQLUFZNIDz1HLoRG/FaBlpAhkupeFik6H6nal+MS625TD7zoFAfqOZzXq\r
+zjP3kQavu5TQgoEICm1o\r
+=tanp\r
+-----END PGP SIGNATURE-----\r
+--=-=-=--\r