A Disqus alternative https://posativ.org/isso/
f6271e5cf6
completely revamp JS client because JS sucks^W^W^W to feature AMD, require.js, promises and HTML.js. The comment listing is now more like Disqus and for now comment retrieval, comment creation and deletion works. Form validation is rudimentary implemented as well. replaced Mako with Jinja2 (because... I forgot.), admin interface will use Bootstrap™ but is not functional yet. features a progress indicator in case you're sqlite db performs *really* bad |
||
---|---|---|
isso | ||
specs | ||
Makefile | ||
MANIFEST.in | ||
README | ||
setup.py |
Isso – Ich schrei sonst ======================= You love static blog generators (especially Acrylamid__ *cough*) and the only option to interact with the community is Disqus__. There's nothing wrong with it, but if you care about the privacy of your audience you are better off with a comment system that is under your control. This is, were Isso comes into play. .. __: https://github.com/posativ/acrylamid .. __: http://disqus.com/ Features -------- ... Roadmap ------- - lightweight SQLite backend - create comments and modify/delete within a time range as user - Ping/TrackBack™ support - simple admin interface - easy integration snippet, similar to Disqus - spam filtering using `http:bl`__ .. __: https://www.projecthoneypot.org/ Installation ------------ Still a TODO, but later it's simply `easy_install isso`. Migration from Disqus --------------------- Go to `disqus.com <https://disqus.com/>`_ and export your "forum" as XML. If you use Firefox and you get a 403, try a WebKit browser, Disqus did something very weird with that download link. Next:: $ isso import /path/to/ur/dump.xml That's it. Visit your admin page to see all threads. If it doesn't work for you, please file in a bug report \*including\* your dump. API --- To fetch all comments for `http://example.tld/foo-bar/`, run :: $ curl http://example.tld/isso?uri=%2Ffoo-bar%2F To write a comment, you have to POST a JSON dictionary with the following key-value pairs. Text is mandatory otherwise you'll get a 400 Bad Request. You'll also get a 400 when your JSON is invalid. Let's say you want to comment on /foo-bar/ :: $ curl http://example.tld/isso/new?uri=%2Ffoo-bar%2F -X POST -d \ '{ "text": "Lorem ipsum ...", "name": "Hans", "email": "foo@bla.org", "website": "http://blog/log/" }' This will set a cookie, that expires in a few minutes (15 minutes per default). This cookie allows you do modify or delete your comment. Don't try to modify that cookie, it is cryptographically signed. If your cookie is outdated or modified, you'll get a 403 Forbidden. For each comment you'll post, you get an unique cookie. Let's try to remove your comment:: $ curl -X DELETE 'http://example.tld/isso?uri=%2Ffoo-bar%2F&id=1' If your comment has been referenced by another comment, your comment will be cleared but not deleted to retain depending comments. Alternatives ------------ - `talkatv <https://github.com/talkatv/talkatv>`_ – Python - `Juvia <https://github.com/phusion/juvia)>`_ – Ruby on Rails - `Tildehash.com <http://www.tildehash.com/?article=why-im-reinventing-disqus>`_ – PHP - `SO: Unobtrusive, self-hosted comments <http://stackoverflow.com/q/2053217>`_