Martin Zimmermann
527b349fbe
use python's logging module
11 years ago
Martin Zimmermann
11293a504b
utils.parse now returns a triple (host, port, ssl)
11 years ago
Martin Zimmermann
acbf42f89d
fix SMTP connectivity test, appendum to a8d0670
11 years ago
Martin Zimmermann
94b1fef28e
rewrite CONFIGURATION.md in reST and extend document
11 years ago
Martin Zimmermann
2db98d0d34
move http utils in separate module
11 years ago
Martin Zimmermann
48b4c9f9a5
purge comments in moderation queue after given time, closes #13
11 years ago
Martin Zimmermann
a8d0670db7
fix PEP-8 minors
11 years ago
Martin Zimmermann
4f5b247ed1
delete comments via mail
11 years ago
Martin Zimmermann
5b52cbdfa6
skip empty Disqus threads
11 years ago
Martin Zimmermann
66ade6df14
remove semantic article, header and footer tags to avoid CSS collisions
11 years ago
Martin Zimmermann
b691579bad
test if #isso-thread exists
11 years ago
Martin Zimmermann
5d0cad4272
use proper email header encoding
11 years ago
Martin Zimmermann
e8d62e5db1
fix import regression from 11246f5
11 years ago
Martin Zimmermann
a2c3ecb131
remove behave.js
11 years ago
Martin Zimmermann
11246f51dc
support for moderated comments, part of #13
...
* add moderated = true to your configuration (defaults to false)
* comment activation via email to the Isso owner
11 years ago
Martin Zimmermann
79f8c1157e
show N days ago instead of previous week
11 years ago
Martin Zimmermann
61a486d2ea
support for Python 3.3
11 years ago
Martin Zimmermann
f9133b984e
use configparser backport to support python2.6 again
11 years ago
Martin Zimmermann
988d2032c5
replace blank identicon with ghosts
11 years ago
Martin Zimmermann
2557c02117
Merge branch 'feature/spam-guard'
11 years ago
Martin Zimmermann
1034d5016e
document app/dom.js
11 years ago
Martin Zimmermann
8967fd733e
hide reply button when it is not possible to reply
11 years ago
Martin Zimmermann
ab618ad898
add basic spam protection
11 years ago
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).
11 years ago
Martin Zimmermann
9ce965440a
toggle next state, when submit was succesful
11 years ago
Martin Zimmermann
0abb8ed658
remove edit and remove buttons when cookie is gone
11 years ago
Martin Zimmermann
0b8cac7f18
implement comment editing
11 years ago
Martin Zimmermann
6242d243c9
update cookie after editing a comment
11 years ago
Martin Zimmermann
75f172f4ae
textarea auto resize
11 years ago
Martin Zimmermann
80e8ce7e25
more i18n
11 years ago
Martin Zimmermann
57a16acff4
use promise lib correctly
11 years ago
Martin Zimmermann
e4f9b53668
minor CSS improvement to input and submit fields
11 years ago
Martin Zimmermann
2f6f4bc338
stylesheet injection
11 years ago
Martin Zimmermann
de25af5467
exclude svgs from count.min.js
11 years ago
Martin Zimmermann
fd18ea9eab
split i18n messages
11 years ago
Martin Zimmermann
ef463eb517
API endpoint detection for count.min.js
11 years ago
Martin Zimmermann
a7cc1cdf4d
move scss to isso/css/
11 years ago
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.
11 years ago
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
11 years ago
Martin Zimmermann
4f03b3faf9
re-license to MIT
11 years ago
Martin Zimmermann
560e73cc0a
rewrite db backend
11 years ago
Martin Zimmermann
52f64dd26f
improve url exists detection for new comment threads
11 years ago
Martin Zimmermann
30fa254023
connect to SMTP on-demand
11 years ago
Martin Zimmermann
98ab6d205a
anonymize IP if passed as ::ffff.1.2.3.4 correctly
11 years ago
Martin Zimmermann
88a7d40bea
send `null` instead of the empty string
11 years ago
Martin Zimmermann
b744e2fe39
use SSL for https://
11 years ago
Martin Zimmermann
3eeb686d5f
update stylesheet link
11 years ago
Martin Zimmermann
2ee47bd902
return 404 when creating a comment for a non-existing URI
11 years ago
Martin Zimmermann
021b672ee2
use only first 3 bytes from an IPv6 address
11 years ago
Martin Zimmermann
7ed5d6461e
add ProxyFix WSGI middleware for real IP and remove dead code
11 years ago
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.
11 years ago
Martin Zimmermann
9edd34d079
fix typos
11 years ago
Martin Zimmermann
0f7516edb4
always announce CORS, fix 3218e16
11 years ago
Martin Zimmermann
27022af1e6
update README, added docs/API.md draft
11 years ago
Martin Zimmermann
5759513fcd
remove old stuff and trim output from utils.heading
11 years ago
Martin Zimmermann
27ba6d795f
extend utils.ago to handle dates beyond 31 days
11 years ago
Martin Zimmermann
63f03e1111
disqus import now sets the comment creation date correctly
11 years ago
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.
11 years ago
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`.
11 years ago
Martin Zimmermann
1105e3e016
don't shrink textarea on blur
11 years ago
Martin Zimmermann
10c65561ed
mv /client to /js
11 years ago
Martin Zimmermann
83f7c0201f
use almond.js for single file output
11 years ago
Martin Zimmermann
88b77ffa2d
show markdown by default
11 years ago
Martin Zimmermann
b65b86d664
fix german utils.ago strings
11 years ago
Martin Zimmermann
9484a8fa6f
add heading 'Kommentieren' etc.
11 years ago
Martin Zimmermann
18ebf6f95a
disable threading, use processes
11 years ago
Martin Zimmermann
3037f5926d
clean imports and remove old code
11 years ago
Martin Zimmermann
56ea90d7e0
JavaScript Identicons (awww), closes #8
11 years ago
Martin Zimmermann
bebda530b6
clear comment that still has references
11 years ago
Martin Zimmermann
413fb0c9a6
automatically update time(ago) every minute
11 years ago
Martin Zimmermann
fa277c98c1
disable scrollIntoView
11 years ago
Martin Zimmermann
20f82dcfcd
fix disqus import
11 years ago
Martin Zimmermann
aecab5cf01
scoll into view
11 years ago
Martin Zimmermann
f0c1574c15
remove stale comments from DB, closes #9
11 years ago
Martin Zimmermann
f1ffe444bc
don't remove root msg box on submit, but clear fields
11 years ago
Martin Zimmermann
449c838be3
REMOTE_ADDR is not unicode
11 years ago
Martin Zimmermann
5cad8fb8b5
clean db interface and comment model
11 years ago
Martin Zimmermann
c7ee35423b
implement db backend for votes/likes #5
11 years ago
Martin Zimmermann
11c6e4d720
remove email column
11 years ago
Martin Zimmermann
59706815e7
add comment.hash to recognize user by email or ip fallback
...
also: fixed test_comment json.dumps(json.loads(json.dumps(...)))
madness.
11 years ago
Martin Zimmermann
35926037a6
fix tests
11 years ago
Martin Zimmermann
f6271e5cf6
commit work in progress
...
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
11 years ago
Martin Zimmermann
7e6fa0438b
use argparse and configparser
11 years ago
Martin Zimmermann
2d075f867a
move code around™
11 years ago
Martin Zimmermann
cb20f159fb
add bootstrap 2.3.2
11 years ago
Martin Zimmermann
dd4ba9263a
refactor all the things (use werkzeug instead of NIH to handle WSGI)
...
Also: use ?uri=%2Fpath%2F as path indicator.
11 years ago
Martin Zimmermann
76d6d46521
add progress bar to migration
11 years ago
Martin Zimmermann
57fa577e54
whatever I made there
11 years ago
posativ
26c74cb521
admin.js now used isso.js as API
...
JS is a horrible language. The more you try to modularize and DRY
it, the greater the LoC grows...
12 years ago
posativ
261f2fe18e
introduce namespaces for JS and trying to escape the pyramid of doom
12 years ago
posativ
525a2828c5
fix Makefile and move utilities to js/utils.js
12 years ago
posativ
a753045f8b
some documentation and move login to /admin/
12 years ago
posativ
588a8c306b
approved comments now move to recent comments
12 years ago
posativ
65c2fce636
better admin 'theme', 304 Not Modified support and minor improvements
12 years ago
posativ
eaaf1f4653
moar syntactic sugar
12 years ago
posativ
8e2e90ed4e
add threaded WSGI server mixin to check URL existence on same host :>
12 years ago
posativ
63b990838d
fix tests
12 years ago
posativ
a4514e1f91
rewrite using NIH
12 years ago
posativ
440787ff67
fix Augenkrebs in dashboard
12 years ago
posativ
28162d7ca9
edit comment works when comment is still pending
12 years ago
posativ
2e1831f609
show pending status, add some css
12 years ago
posativ
1bafe193ad
approve comments
12 years ago
posativ
23232d4f0e
fix admin.js
12 years ago
posativ
5d15ab0ea3
use highly sophisticated '2 weeks ago' dates including microformats
12 years ago
posativ
c7d4b5a071
use promise.js -> less code, less indentation, 2 kb less framework
12 years ago
posativ
6f4b02ab12
show deleted comments when they are referenced
12 years ago
posativ
35310300ac
add 'edit comment' functionality. Use with care.
12 years ago
posativ
b4708fb284
modify can return plain text and marked up content
12 years ago
posativ
db32d1c7f0
refactor JS and add YUI compression.
12 years ago
posativ
66cc7911f5
limit to 20 by default
12 years ago
posativ
6bb7b8c8d9
admin interface can delete comments :>
12 years ago
posativ
15ead12683
I can't still remember what ASC and DESC means
12 years ago
posativ
7420e6a130
add path to comment class
12 years ago
posativ
05b77f99fe
add db.recent(mode, limit) method
12 years ago
posativ
2bfbad39ca
begin dashboard using mako templates
12 years ago
posativ
39899dda81
/comment/ -> /1.0/
12 years ago
posativ
ac6d88f61e
`isso import FILE` can import Disqus export
12 years ago
posativ
ecd4c6b120
fix an edge case, where mallory can delete comments by bo
12 years ago
posativ
3459b7b9ee
delete comment works for non-referenced comments now
12 years ago
posativ
d9a9eaf8c5
zero-fill date and add cookie recognition
12 years ago
posativ
10b1b1b470
use unique cookie name
12 years ago
posativ
ae96122ea1
fix issues caused by @moschlar
12 years ago
posativ
d2bc2537a1
remove limit, introduced unnecessary complexity
12 years ago
posativ
3b197c4c3c
close form after reply
12 years ago
posativ
d6e4312e47
threaded comments :>
12 years ago
posativ
eee2e43588
refactor and re-indentation
12 years ago
posativ
63f3d6ff2f
add date formatting and link to website
12 years ago
posativ
a15338209b
basic XSS protection m)
12 years ago
posativ
443eb2bbe1
fix tests
12 years ago
posativ
487d76ba61
add API for different markup languages
12 years ago
posativ
9aeed1a47e
client-side draft using qwery, bean, bonzo and domReady
12 years ago
posativ
efa334de39
markdown support (using misaka)
12 years ago
posativ
d30c3c059b
sort in chronological order
12 years ago
posativ
f2eff22ff7
circumvent CGI 1.1 specs (PATH_INFO is quoted)
12 years ago
posativ
3cb623e7c2
check if url exists before creating a comment
12 years ago
posativ
2c8c97b2a8
add db.activate function and use UNIX-style permission bits for normal/activated/deleted comments
12 years ago
posativ
f1fb80f5ef
add license decoration
12 years ago
posativ
05336728f4
use itsdangerous
12 years ago
posativ
759b304cb5
refactor configuration variables
12 years ago
posativ
27801eef26
delete only when not referenced
12 years ago
posativ
af8fcdab19
most database operations now return Comment object
12 years ago
posativ
3d398341a3
update database requirements
12 years ago
posativ
e2198ed74a
add update and delete views
12 years ago
posativ
1b2b4da490
fix db update
12 years ago
posativ
27007547bb
return 404 if none found
12 years ago
posativ
5d23bff409
clean json fuckup and add create and get views
12 years ago
posativ
8301f0af78
replace db.initialize with db.__init__
12 years ago
posativ
98c4b6ccb2
move Comment class to isso.models
12 years ago
posativ
36add653a7
change modified timestamp after update
12 years ago
posativ
633b0bee33
add update, get and delete methods to SQLite adapter
12 years ago