You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
isso/README.md

99 lines
3.0 KiB

12 years ago
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 are
better off with a comment system that is under your control. This is, were
Isso comes into play.
12 years ago
[1]: https://github.com/posativ/acrylamid
[2]: https://disqus.com/
12 years ago
Features
--------
12 years ago
* [CRUD](https://en.wikipedia.org/wiki/Create,_read,_update_and_delete) comments
* SQLite
* quite nice, but unfinished client-side JS
12 years ago
12 years ago
Roadmap
-------
- Ping/TrackBack™ support
- simple admin interface
- spam filtering using [http:bl][3]
[3]: https://www.projecthoneypot.org/
12 years ago
Installation
------------
12 years ago
Probably `git clone https://github.com/posativ/isso.git`, `python setup.py develop`
inside a virtualenv. Then start `isso` with:
~> isso run
You can now leave a comment at <http://localhost:8080/static/post.html> hopefully.
The admin interface password is `p@$$w0rd`, you may change this with a custom cfg
file that I'll document later. You find the admin interface at <http://localhost:8080/admin/>.
12 years ago
**[Screenshot](http://posativ.org/~tmp/isso-preview.png)**
Migration from Disqus
---------------------
Go to [Disqus.com](https://disqus.com/) and export your "forum" as XML.
~> isso import /path/to/ur/dump.xml
That's it. <del>Visit your admin page to see all threads.</del> If it doesn't work for
12 years ago
you, please file in a bug report \*including\* your dump.
API (a draft)
-------------
12 years ago
To fetch all comments for `http://example.tld/foo-bar/`, run
::
12 years ago
$ curl http://example.tld/isso?uri=%2Ffoo-bar%2F
12 years ago
12 years ago
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.
12 years ago
Let's say you want to comment on /foo-bar/
$ curl http://example.tld/isso/new?uri=%2Ffoo-bar%2F -X POST -d \
12 years ago
'{
"text": "Lorem ipsum ...",
"name": "Hans", "email": "foo@bla.org", "website": "http://blog/log/"
}'
12 years ago
12 years ago
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.
12 years ago
12 years ago
For each comment you'll post, you get an unique cookie. Let's try to remove
your comment::
12 years ago
$ curl -X DELETE 'http://example.tld/isso?uri=%2Ffoo-bar%2F&id=1'
12 years ago
12 years ago
If your comment has been referenced by another comment, your comment will be
cleared but not deleted to retain depending comments.
12 years ago
Alternatives
------------
12 years ago
- `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>`_