MAR

23

Wed

Author:EMINARCISSUS

被拍砖14次,接着砸!

1.博主提醒取消EMAIL提醒,替换成JABBER信息

效果截图:

 

def send_jabber_message(username,password,sendTo,message):
    '''Username must be jabberId looks like example@example.com'''
    try:
        jid=xmpp.protocol.JID(username)
        cl = xmpp.Client(jid.getDomain(), debug=[])
        conn = cl.connect()
        if conn:
            auth = cl.auth(jid.getNode(), settings.JABBER_PASSWORD, resource=jid.getResource())
            if auth:
                cl.send(xmpp.protocol.Message(sendTo,message))
                cl.disconnet()
            else:
                print "Login jabber error"
        else:
            print "Get Jabber Instance Error"
    except:
        print "Get Jabber Instance Error"
        

 

利用xmpppy进行JABBER提醒,替换掉原来EMAIL的NEW MESSAGE提醒,同样方法可以写一些类似EMAIL LISTENER之类的功能,配合JABBER服务器可以获得很好的效果,后期考虑加入WEB聊天室的功能(无限延期中

 

2.加入HTML5特性,本地CACHE。

参考了幸福收藏夹的“http://sofish.de/1449”一文,将页面的JS,PNG,CSS全部写进cache.manifest文件中,并且在nginx中加入了manifest文件的MIME类型,在模版中添加iframe来加载CACHE实现选择性缓存。

3.代码部分改用Prettify来显示。

4.增加COMMENT FILTER解决一部分AKISMET的判断错误,包括露SPAM和错误拉黑。

 

from django.db import models

ALLOWED=0
FORBIDDEN=1
ACTION_CHOICE = (
    (ALLOWED, 'Accept'),
    (FORBIDDEN, 'Drop'),
)

class Rule(models.Model):
    email=models.CharField(max_length=100,blank=True,null=True)
    ip=models.IPAddressField(blank=True,null=True)
    action=models.IntegerField(choices=ACTION_CHOICE,default=1,max_length=4)
    is_active=models.BooleanField(default=True)

#    def __unicode__(self):
#            return self.id

class Meta:
        app_label = 'Blog'
        db_table = 'comment_acl'

def filterComment(comment,attr="email"):
#By Default using email blacklist and whitelist,can pass a ip blacklist to achieve id filter
    censorAttr=getattr(comment,attr)
    attrfilter=cache.get(attr+"_filter")
    if not attrfilter:
        attrfilter= dict([(getattr(rule,attr), rule.action) for rule in Rule.objects.filter(is_active=True)])
        cache.set(attr+"_filter",attrfilter)
    if attrfilter.has_key(censorAttr):
        return attrfilter[censorAttr]
    else:
        return None

 

5.为DJANGO ADMIN修改文章部分增加了SOURCE TAB,效果如图

讨厌的BUG君无处不在,代码以后补上。

 

未完成部分:

1.Comment Saniize部分,考虑后决定听从トトロ巨巨的建议,不通过BBCODE而是用正则去替换标签。

2.SMILE,对于SMILE是否直接利用RAZERGALLERY而迷茫中,自分还是希望直接建立一个GALLERY然后仍进去,不过这样做会造成额外的依赖性问题。再考虑考虑再说。

3.豆知识围脖,这个目前只有雏形,对于API的支持,自己是想做的,不过,看精力了,最近更愿意看代码,实际写的量不是很多,很多风格上的问题,急于写最后再改会变得非常麻烦,所以,先学习学习再继续动笔了。

4.保存草稿和自动保存的问题,这个需要手动写一个ADMIN的VIEW了和一点JSCODE了,虽然很简单,不过短期内不太想动笔,有不少需要考虑的地方,包括主页的CSS也想进行一些变动。

 

目前已知BUG:

1.UPLOADIFY貌似用SWITCHY不能正常地让TUNNEL走流量,开VPN后恢复正常,怀疑是FLASH导致的问题,不过也不是经常上图,所以目前还是大丈夫萌呆乃的。

2.COMMENT部分的过滤依然没做完整,预计这几天抽空先把这个搞定了。

 

 

smiley