← Recent posts

RazerBlog近期修正及增加功能

2011-03-23 · 14 comments

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部分的过滤依然没做完整,预计这几天抽空先把这个搞定了。

 

 

Comments (14)

Mucid Mucid
2011-03-23 08:52 · ##1
“次网站提供了保存至您计算机以供脱机使用数据。”
哈哈越来越牛X了啊
2011-03-23 09:33 · ##2
很厉害啊 继续加油~~
2011-03-23 17:30 · ##4
kita的一些東西都快無限延期了,看來要努力了。。。嗚~
2011-03-24 02:02 · ##5
@Mucid:
其实CHROME下压根没提示,FF这点更安全一些?(虽然CACHE我不觉得有什么危害。。)
@wiki:
THX~~~继续努力~~
@linfcstmr'牙医叔叔:
注意身体呢,话说最近天气变化的很离谱,要去长春了,想起来那地方打不上车我就倒抽一口凉气。
@kita:
挖坑跳坑的时代让坑来得更猛烈一些吧>_
2011-03-24 09:30 · ##6
看来你是个搞代码的。
2011-03-24 18:07 · ##7
还没看明白,是不是回复邮件通知啊?
2011-03-24 18:09 · ##8
@shekck:

WP的邮件通知不是有2类嘛,一类是REPLY通知,一类是博主通知。
这个就是把发给博主的回复提醒改成了通过JABBER发送(相当于QQ来信息了的形式,而不是EMAIL)

@wmtimes:

真不是搞代码的....
2011-03-24 18:12 · ##9
@EmiNarcissus:原来如此,现在我都是用willin的邮件通知的,你这个看来更高级了,技术流童鞋哇
2011-03-24 18:13 · ##10
@shekck:

其实逻辑来说EMAIL通知更好,不过我服务器没自己起EMAIL服务器,都是通过GMAIL,不过GMAIL现在大陆这边三天两头出问题,而且JABBER通知给人一种即时通信的感觉,所以做了一点改动~
2011-03-30 16:07 · ##11
spam不好过滤吗
我用akismet 虽然会误判 但是基本上是没什么问题的
2011-03-30 16:30 · ##12
@dengmin:

嘛嘛,AKISMET确实90%的时候不会出误判,不过10%的时候会很顽固...有些明明不是SPAM的用户,却被100%的被判断成SPAM,不知道是不是API的问题,最后没办法了还是手写FILTER来处理掉了~
2011-03-30 16:36 · ##14
@dengm:

嗯,好的,这一阵没怎么整理代码,过两周把这个FILTER和RAZERGALLERY的代码一起放出来~

Leave a comment