summaryrefslogtreecommitdiff
path: root/quoins/controllers.py
diff options
context:
space:
mode:
Diffstat (limited to 'quoins/controllers.py')
-rw-r--r--quoins/controllers.py42
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
306def post_paginate(start, posts, size): 308def 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