Re: Magic Word / trackback plugin

Junji NAKANISHI <[email protected]>
Newsgroups gmane.comp.web.pyblosxom.devel
Message-ID <[email protected]>
Hello,

I made two patches about the 2nd idea which shunuhs explained.

1. move the comment_reject out of writeComments()

--- comments.py.orig	Thu Dec 21 03:03:47 2006
+++ comments.py	Thu Dec 21 03:09:12 2006
@@ -359,19 +359,6 @@
          os.makedirs(cdir)

      cfn = os.path.join(cdir,entry['fn']+"-"+comment['pubDate']+"."+config['comment_draft_ext'])
-
-    argdict = { "request": request, "comment": comment }
-    reject = tools.run_callback("comment_reject",
-                                argdict,
-                                donefunc=lambda x:x != 0)
-
-    if (isinstance(reject, tuple) or isinstance(reject, list)) and len(reject) == 2:
-        reject_code, reject_message = reject
-    else:
-        reject_code, reject_message = reject, "Comment rejected."
-
-    if reject_code == 1:
-        return reject_message

      def makeXMLField(name, field):
          return "<"+name+">" + cgi.escape(field.get(name, "")) + "</"+name+">\n";
@@ -714,8 +701,20 @@
              cdict['email'] = form['email'].value

          cdict['ipaddress'] = pyhttp.get('REMOTE_ADDR', '')
-        data["comment_message"] = writeComment(request, config, data, \
-                                                cdict, encoding)
+
+        argdict = { "request": request, "comment": cdict }
+        reject = tools.run_callback("comment_reject",
+                                    argdict,
+                                    donefunc=lambda x:x != 0)
+        if (isinstance(reject, tuple) or isinstance(reject, list)) and len(reject) == 2:
+            reject_code, reject_message = reject
+        else:
+            reject_code, reject_message = reject, "Comment rejected."
+        if reject_code == 1:
+            data["comment_message"] = reject_message
+        else:
+            data["comment_message"] = writeComment(request, config, data, \
+                                                   cdict, encoding)

  def massage_link(linkstring):
      """Don't allow html in the link string. Prepend http:// if there isn't


2. add the trackback_reject hook to trackback plugin

--- trackback.py.orig	Thu Dec 21 03:03:47 2006
+++ trackback.py	Sun Dec 17 03:59:27 2006
@@ -96,6 +96,19 @@
                        'link' : form['url'].value, \
                        'source' : form.getvalue('blog_name', ''), \
                        'description' : form.getvalue('excerpt', '') }
+
+            argdict = { "request": request, "comment": cdict }
+            reject = tools.run_callback("trackback_reject",
+                                        argdict,
+                                        donefunc=lambda x:x != 0)
+            if (isinstance(reject, tuple) or isinstance(reject, list)) and len(reject) == 2:
+                reject_code, reject_message = reject
+            else:
+                reject_code, reject_message = reject, "Trackback rejected."
+            if reject_code == 1:
+                print >> response, tb_bad_response % reject_message
+                return 1
+
              from Pyblosxom.entries.fileentry import FileEntry
              from Pyblosxom.pyblosxom import Request
              from Pyblosxom.pyblosxom import PyBlosxom



I tested them by my blog and they had no problems. Please apply them for next release.


>> # This idea is from Junji who send patch for trackback plugin recently.
>> # He will send his patch hopefully :-)
>>
>> This problem was occurs for both trackback and comments plugins use
>> writeComments() in the comments plugin and have judged whether the data
>> is rejected.
>>
>> Then, the judgement code for comment reject move out of writeComments(),
>> and add judgement for trackback reject to trackback plugin.
> 
> agreed, this sounds like the right idea. we can either move the code that 
> calls cb_reject out of writeComments(), or leave it in and find another way 
> for trackback to tell the comments plugin that it's not spam.
> 
> either way, it's definitely better than forcing all spam filter plugins to 
> special-case trackbacks.


# shunuhs, thank you for you explained my idea in place of me!

-- 
Junji NAKANISHI

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.