Tomdroid + Snowy

I finally found the solution to my problem of not being able to synchronise Tomdroid (A Tomboy compatible note-taking app for Android) with my Snowy (a Tomboy synchronisation server) install.

The answer is that django no longer allows any URL scheme, and restricts itself to http, https, and ftp.  Tomdroid registers its own URL callback on the “tomdroid” scheme.  Hence a patch is required to add the missing scheme:

File: /usr/lib/python2.7/dist-packages/django/http/__init__.py
--- __init__.py.orig       2014-02-25 00:42:02.356288330 +0000
+++ __init__.py 2014-02-25 00:32:01.994503437 +0000
@@ -740,7 +740,7 @@
         return sum([len(str(chunk)) for chunk in self._container])
 
 class HttpResponseRedirectBase(HttpResponse):
-    allowed_schemes = ['http', 'https', 'ftp']
+    allowed_schemes = ['http', 'https', 'ftp', 'tomdroid']
 
     def __init__(self, redirect_to):
         super(HttpResponseRedirectBase, self).__init__()

After patching, remember to restart Apache.

Many thanks to the fix from this blog entry.