diff options
Diffstat (limited to 'quoins/controllers.py')
-rw-r--r-- | quoins/controllers.py | 42 |
1 files changed, 33 insertions, 9 deletions
diff --git a/quoins/controllers.py b/quoins/controllers.py index 5605c61..ac3cef7 100644 --- a/quoins/controllers.py +++ b/quoins/controllers.py | |||
@@ -294,13 +294,15 @@ class Pingback(TGController): | |||
294 | return xmlrpclib.Fault(0x20, 'Post not found.') | 294 | return xmlrpclib.Fault(0x20, 'Post not found.') |
295 | elif not post.allow_comments: | 295 | elif not post.allow_comments: |
296 | return xmlrpclib.Fault(0x31, 'Comments are closed on this post.') | 296 | return xmlrpclib.Fault(0x31, 'Comments are closed on this post.') |
297 | for lb in post.linkbacks: | 297 | for lb in post.comments: |
298 | if lb.url == sourceURI: | 298 | if lb.url and lb.url == sourceURI: |
299 | return xmlrpclib.Fault(0x30, 'Pingback already registered.') | 299 | return xmlrpclib.Fault(0x30, 'Pingback already registered.') |
300 | lb = LinkBack() | 300 | lb = Comment() |
301 | DBSession.add(lb) | 301 | lb.approved = True |
302 | lb.type = 'pingback' | ||
302 | lb.post = post | 303 | lb.post = post |
303 | lb.url = sourceURI | 304 | lb.url = sourceURI |
305 | post.comments.append(lb) | ||
304 | return 'Linkback recorded.' | 306 | return 'Linkback recorded.' |
305 | 307 | ||
306 | def post_paginate(start, posts, size): | 308 | def post_paginate(start, posts, size): |
@@ -360,6 +362,25 @@ class BlogController(TGController): | |||
360 | def get_html(self, data): | 362 | def get_html(self, data): |
361 | return HTML(data) | 363 | return HTML(data) |
362 | 364 | ||
365 | def get_trackback_rdf(self, post, comment=True): | ||
366 | rdf = """ | ||
367 | <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | ||
368 | xmlns:dc="http://purl.org/dc/elements/1.1/" | ||
369 | xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"> | ||
370 | <rdf:Description | ||
371 | rdf:about="%s" | ||
372 | dc:identifier="%s" | ||
373 | dc:title="%s" | ||
374 | trackback:ping="%s" | ||
375 | </rdf:RDF>\n""" | ||
376 | rdf = rdf % (self.absolute_url('/'), | ||
377 | self.absolute_url(post), | ||
378 | post.title, | ||
379 | self.absolute_url('/trackback/%s'%post.id)) | ||
380 | if comment: | ||
381 | rdf = "<!-- "+rdf+" -->" | ||
382 | return HTML(rdf) | ||
383 | |||
363 | def send_comment_email(self, comment): | 384 | def send_comment_email(self, comment): |
364 | post = comment.post | 385 | post = comment.post |
365 | blog = post.blog | 386 | blog = post.blog |
@@ -480,6 +501,7 @@ Comment: | |||
480 | def post(self, id): | 501 | def post(self, id): |
481 | post = DBSession.query(Post).get(id) | 502 | post = DBSession.query(Post).get(id) |
482 | if not post: abort(404) | 503 | if not post: abort(404) |
504 | print pylons.request.headers | ||
483 | pylons.response.headers['X-Pingback']=self.absolute_url('/pingback/') | 505 | pylons.response.headers['X-Pingback']=self.absolute_url('/pingback/') |
484 | return dict(quoins = self, | 506 | return dict(quoins = self, |
485 | blog = post.blog, | 507 | blog = post.blog, |
@@ -550,8 +572,8 @@ Comment: | |||
550 | pass | 572 | pass |
551 | 573 | ||
552 | c = Comment() | 574 | c = Comment() |
553 | c.post = post | ||
554 | post.comments.append(c) | 575 | post.comments.append(c) |
576 | c.post = post | ||
555 | c.body = body | 577 | c.body = body |
556 | if request.identity: | 578 | if request.identity: |
557 | c.author=request.identity['user'] | 579 | c.author=request.identity['user'] |
@@ -869,17 +891,19 @@ Comment: | |||
869 | message = 'Post not found.' | 891 | message = 'Post not found.' |
870 | elif not post.allow_comments: | 892 | elif not post.allow_comments: |
871 | message = 'Comments are closed on this post.' | 893 | message = 'Comments are closed on this post.' |
872 | for lb in post.linkbacks: | 894 | for lb in post.comments: |
873 | if lb.url == url: | 895 | if lb.url and lb.url == url: |
874 | message = 'Trackback already registered.' | 896 | message = 'Trackback already registered.' |
875 | if not message: | 897 | if not message: |
876 | lb = LinkBack() | 898 | lb = Comment() |
877 | DBSession.add(lb) | 899 | lb.approved = True |
900 | lb.type = 'trackback' | ||
878 | lb.post = post | 901 | lb.post = post |
879 | lb.url = url | 902 | lb.url = url |
880 | lb.title = title | 903 | lb.title = title |
881 | lb.name = blog_name | 904 | lb.name = blog_name |
882 | lb.body = excerpt | 905 | lb.body = excerpt |
906 | post.comments.append(lb) | ||
883 | if message: | 907 | if message: |
884 | error = 1 | 908 | error = 1 |
885 | message = "<message>%s</message>\n" % message | 909 | message = "<message>%s</message>\n" % message |