Commit Graph

361 Commits

Author SHA1 Message Date
Martin Zimmermann
e58a16546b add note about current state 2013-10-06 20:21:11 +02:00
Martin Zimmermann
f4a64fb55d add configuration overview 2013-10-06 20:17:47 +02:00
Martin Zimmermann
2557c02117 Merge branch 'feature/spam-guard' 2013-10-06 19:55:44 +02:00
Martin Zimmermann
1034d5016e document app/dom.js 2013-10-06 19:55:18 +02:00
Martin Zimmermann
8967fd733e hide reply button when it is not possible to reply 2013-10-06 19:46:04 +02:00
Martin Zimmermann
ab618ad898 add basic spam protection 2013-10-06 18:37:05 +02:00
Martin Zimmermann
382dd3487e Merge branch 'feature/uwsgi' 2013-10-06 15:42:42 +02:00
Martin Zimmermann
59353c43f9 add uWSGI development ini
$ mkdir mail
    $ uwsgi isso.ini
2013-10-06 15:36:43 +02:00
Martin Zimmermann
6eab8ad5ca support for uWSGI
* naive uWSGI fallback which spawns one thread per request and
  one thread per mail notification
* uWSGI backend which utilize queues and spooling to handle
  simultanous requests and mail notifications

This also fixes a bug where N concurrent POSTs on a new topic
failed for N-1 requests (db integrity error).
2013-10-06 15:36:38 +02:00
Martin Zimmermann
9ce965440a toggle next state, when submit was succesful 2013-10-04 18:00:17 +02:00
Martin Zimmermann
0abb8ed658 remove edit and remove buttons when cookie is gone 2013-10-04 18:00:13 +02:00
Martin Zimmermann
0b8cac7f18 implement comment editing 2013-10-03 18:56:36 +02:00
Martin Zimmermann
6242d243c9 update cookie after editing a comment 2013-10-03 18:12:59 +02:00
Martin Zimmermann
423782d75b update README.md (new screenshot) 2013-10-03 14:36:00 +02:00
Martin Zimmermann
75f172f4ae textarea auto resize 2013-10-03 14:17:09 +02:00
Martin Zimmermann
80e8ce7e25 more i18n 2013-10-03 13:50:30 +02:00
Martin Zimmermann
57a16acff4 use promise lib correctly 2013-10-03 13:50:30 +02:00
Martin Zimmermann
e4f9b53668 minor CSS improvement to input and submit fields 2013-10-03 13:50:27 +02:00
Martin Zimmermann
2f6f4bc338 stylesheet injection 2013-10-02 16:18:55 +02:00
Martin Zimmermann
de25af5467 exclude svgs from count.min.js 2013-10-02 16:18:35 +02:00
Martin Zimmermann
fd18ea9eab split i18n messages 2013-10-02 16:17:25 +02:00
Martin Zimmermann
ef463eb517 API endpoint detection for count.min.js 2013-10-02 16:16:08 +02:00
Martin Zimmermann
a7cc1cdf4d move scss to isso/css/ 2013-10-02 16:15:43 +02:00
Martin Zimmermann
b1e33bdce5 split 3rd-party packages to vendor and components
Then, use bower to fetch components and put libraries not
available as (web) component into vendor/.

Move crypto parts and identicon generation modules into app/lib.
2013-10-02 14:26:06 +02:00
Martin Zimmermann
b36e2fdb28 COMMIT ALL THE THINGS
* refactor JS (a lot)
* use a CSS framework (neat/bourbon), because CSS is hard
* up/downvote comments
* cleaner HTML
* HTML inclusion in JS
* SVG icons for reference, up and downvote
* basic i18n: english and german supported ootb
* lazy (because slow) client-side identicon generation (preview ability)
* removed website input field for no particular reason
* remove HTML.js in favour of a homebrew DOM manipulation tool
2013-10-01 14:47:01 +02:00
Martin Zimmermann
6d9792d22e demo now available without SSL 2013-09-26 15:30:31 +02:00
Martin Zimmermann
4f03b3faf9 re-license to MIT 2013-09-19 18:44:40 +02:00
Martin Zimmermann
560e73cc0a rewrite db backend 2013-09-19 18:44:37 +02:00
Martin Zimmermann
3905e84af1 add live demo 2013-09-13 19:58:26 +02:00
Martin Zimmermann
52f64dd26f improve url exists detection for new comment threads 2013-09-13 19:52:53 +02:00
Martin Zimmermann
30fa254023 connect to SMTP on-demand 2013-09-13 19:51:56 +02:00
Martin Zimmermann
98ab6d205a anonymize IP if passed as ::ffff.1.2.3.4 correctly 2013-09-13 18:30:51 +02:00
Martin Zimmermann
88a7d40bea send null instead of the empty string 2013-09-13 18:24:24 +02:00
Martin Zimmermann
b744e2fe39 use SSL for https:// 2013-09-13 18:12:32 +02:00
Martin Zimmermann
9d7c049b32 add .gitignore 2013-09-13 18:03:35 +02:00
Martin Zimmermann
2e632b3795 add ipaddress to setup.py 2013-09-13 17:51:00 +02:00
Martin Zimmermann
3eeb686d5f update stylesheet link 2013-09-13 16:15:14 +02:00
Martin Zimmermann
2ee47bd902 return 404 when creating a comment for a non-existing URI 2013-09-13 16:14:13 +02:00
Martin Zimmermann
021b672ee2 use only first 3 bytes from an IPv6 address 2013-09-13 16:13:45 +02:00
Martin Zimmermann
7ed5d6461e add ProxyFix WSGI middleware for real IP and remove dead code 2013-09-13 16:13:08 +02:00
Martin Zimmermann
e56d6a087a fix unittests with mocking 2013-09-13 16:12:26 +02:00
Martin Zimmermann
adb3d40c03 send notification for new comments
This commit also introduces a new db which maps path to thread title.
The title is read by parsing the HTML for a related <h1> tag using
`html5lib`.

You can set up SMTP in your configuration (here the defaults):

    [SMTP]
    host = localhost
    port = 465
    ssl = on
    username =
    password =
    recipient =
    sender =

In short, by default Isso uses a local SMTP server using SSL without
any authentication. An email is send on comment creation to "recipient"
from "Ich schrei sonst <sender>".

This commit also uses a simple ANSI colorization module from my static
blog compiler project.

On server startup, Isso will connect to the SMTP server and fall back to
a null mailer. It also tries to connect to your website, so if that
doesn't work, you probably can't comment on your website either.
2013-09-13 15:21:18 +02:00
Martin Zimmermann
9edd34d079 fix typos 2013-09-12 19:20:31 +02:00
Martin Zimmermann
0f7516edb4 always announce CORS, fix 3218e16 2013-09-12 19:10:38 +02:00
Martin Zimmermann
27022af1e6 update README, added docs/API.md draft 2013-09-12 19:10:03 +02:00
Martin Zimmermann
5759513fcd remove old stuff and trim output from utils.heading 2013-09-12 17:28:44 +02:00
Martin Zimmermann
27ba6d795f extend utils.ago to handle dates beyond 31 days 2013-09-12 17:28:13 +02:00
Martin Zimmermann
63f03e1111 disqus import now sets the comment creation date correctly 2013-09-12 17:27:16 +02:00
Martin Zimmermann
3218e16532 add CORS support
Isso can now run on a separate domain such as comments.example.org
and still serve for blog.example.org using CORS.
2013-09-12 17:26:10 +02:00
Martin Zimmermann
45d4e18aef new /count?uri=path and count.js
A separate (minified) JS to load only the comment count for each
`<a href="...#isso-thread">...</a>` link. If there are no comments,
return a 404, otherwise return the number JSON formatted.

To built `count.ks`, run `r.js -o build.count.js`.
2013-09-12 17:22:37 +02:00