isso/Readme.md

86 lines
3.1 KiB
Markdown
Raw Normal View History

2012-10-17 20:44:35 +00:00
Isso Ich schrei sonst
=======================
You love static blog generators (especially [Acrylamid][1] \*cough\*) and the only
option to interact with the community is [Disqus][2]. There's nothing wrong with
it, but if you care about the privacy of your audience you should better use
a comment system that is under your control. This is, were Isso comes into play.
[1]: https://github.com/posativ/acrylamid
[2]: http://disqus.com/
Current status: `nosetests specs/`. Ran 11 tests in 0.570s.
2012-10-17 20:55:25 +00:00
## Features/Roadmap
2012-10-17 20:44:35 +00:00
- transparent and lightweight backend (SQLite or plain text files)
- simple JSON API (hence comments are JavaScript-only)
- create comments and modify/delete within a time range
- Ping/Trackback support (not implemented yet)
- simple admin interface (work in progress)
- easy integration, similar to Disqus (work in progress)
2012-10-17 20:44:35 +00:00
- spam filtering using [http:bl](https://www.projecthoneypot.org/) (not implemented yet)
2012-10-25 14:20:16 +00:00
## Hacking
You'll need [2.6 ≤ python ≤ 2.7](http://python.org), [ender.js](http://ender.no.de/) and
[YUI Compressor](http://developer.yahoo.com/yui/compressor/). Then run:
$ git clone https://github.com/posativ/isso.git && cd isso/
$ make init
$ make js
$ isso --test
Then go to <http://localhost:8000/static/post.html> to write a comment.
2012-10-17 20:55:25 +00:00
## Installation
2012-10-17 20:44:35 +00:00
2012-10-25 14:20:16 +00:00
Still a TODO, but later on it's simply `easy_install isso`.
2012-10-17 20:44:35 +00:00
## Migrating 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.
2012-10-17 20:55:25 +00:00
## API
2012-10-17 20:44:35 +00:00
2012-10-23 19:09:51 +00:00
To fetch all comments for a path, run
2012-10-17 20:44:35 +00:00
$ curl -H "Accept: application/json" http://example.org/comment/foo-bar/
2012-10-23 19:09:51 +00:00
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.
2012-10-17 20:44:35 +00:00
2012-10-23 19:09:51 +00:00
Let's say you want to comment on /foo-bar/
$ curl http://example.org/comment/foo-bar/new -H "Accept: application/json" -X POST -d \
2012-10-17 20:44:35 +00:00
'{
"text": "Lorem ipsum ...",
"name": "Hans", "email": "foo@bla.org", "website": "http://blog/log/"
2012-10-23 19:09:51 +00:00
}'
2012-10-17 20:44:35 +00:00
2012-10-23 19:09:51 +00:00
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.
2012-10-17 20:44:35 +00:00
2012-10-23 19:09:51 +00:00
For each comment you'll post, you get an unique cookie. Let's try to remove your comment:
2012-10-17 20:44:35 +00:00
2012-10-23 19:09:51 +00:00
$ curl -H ... -X DELETE http://example.org/comment/foo-bar/1
2012-10-17 20:44:35 +00:00
2012-10-23 19:09:51 +00:00
If your comment has been referenced by another comment, your comment will be cleared but
not deleted to retain depending comments.
2012-10-17 20:44:35 +00:00
2012-10-17 20:55:25 +00:00
## Alternatives
2012-10-17 20:44:35 +00:00
- [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)