示例#1
0
文件: Admin.py 项目: dreampuf/Banana
    def post(self):
        title = fromq(self.q("blogtitle"))
        subtitle = fromq(self.q("blogsubtitle"))
        charset = fromq(self.q("charset"))
        headlink = fromq(self.q("headlink").replace("\r", "").split("\n"))
        hub = fromq(self.q("hub").replace("\r", "").split("\n"))
        footer = fromq(self.q("footer"))
        posturl = fromq(self.q("posturl"))
        commentstatus = fromq(self.q("commentstatus"))
        commentneedcheck = fromq(self.q("commentneedcheck")) == "True"
        localtimezone = int(self.q("localtimezone")) if self.q("localtimezone").isdigit() else 8
        author = fromq(self.q("author"))
        feed = fromq(self.q("feed"))
        feednumber = int(self.q("feednumber")) if self.q("feednumber").isdigit() else 20
        feedshowpre = fromq(self.q("feedshowpre")) == "True"
        indexnumber = int(self.q("indexnumber")) if self.q("indexnumber").isdigit() else 20
        indexshowpre = fromq(self.q("indexshowpre")) == "True"
        domain = self.q("domain")


        Config.title = title
        Config.subtitle = subtitle
        Config.charset = charset
        Config.headlink = headlink
        Config.footer = footer
        Config.localtimezone = localtimezone
        if Config.posturl != posturl:
            Config.posturl = posturl
            i = 0;
            posts = Model.Post.all().fetch(1000)
            postslen = len(posts)
            while postslen > 0:
                for p in posts:
                    p.realurl = Base.processurl(p)
                    p.put()
                i += postslen
                posts = Model.Post.all().fetch(1000, offset=i)
        Config.commentstatus = commentstatus
        Config.commentneedcheck = commentneedcheck
        Config.author = author
        Config.feed = feed
        Config.feednumber = feednumber
        Config.feedshowpre = feedshowpre
        Config.indexnumber = indexnumber
        Config.indexshowpre = indexshowpre
        Config.hub = hub
        Config.domain = domain


        self.redirect_self()
示例#2
0
文件: Admin.py 项目: dreampuf/Banana
    def post(self, slug=None):
        if slug != None and slug == "new":
            try:
                p = Model.Post()
                p.title = fromq(self.q("title"))
                p.author = Model.User.all().get() #TODO
                category = Model.Category.get(fromq(self.q("category")))
                p.category = category
                p.created = datetime.datetime.now()
                p.url = fromq(self.q("url"))
                Base.processurl(p)
                p.created = Base.ParserLocalTimeToUTC(self.q("created"))
                p.content = fromq(self.q("content"))
                p.precontent = fromq(self.q("precontent"))
                p.put()

                tags = fromq(self.q("tag")).split(",")
                if len(tags) == 1 and tags[0] == "":
                    pass
                else:
                    for i in tags:
                        t = Model.Tag.all().filter("title =", i).get()
                        if t == None:
                            t = Model.Tag(title=i, description="在神秘的 %s 我降临啦" % datetime.datetime.now().strftime("%Y/%m/%d %H:%M:%S"))
                            t.put()

                        rela = Model.tags_posts.all().filter("tag =", t).filter("post =", p).get()
                        if rela == None:
                            rela = Model.tags_posts()
                            rela.post = p
                            rela.tag = t
                            rela.put()

                Base.pinghub()
            except:
                exc_type, exc_value, exc_traceback = sys.exc_info()
                logging.info("save fail in Post case :%s" %(traceback.format_exception(exc_type,
                                                                                            exc_value,
                                                                                            exc_traceback), ))
        elif slug != None:
            try:
                p = Model.Post.get(slug)
                if p == None:
                    self.redirect("/admin/post")
                    return
                action = self.q("action")
                if action == "delete":
                    Model.Comment.deletes(Model.Comment.all().filter("belong =", p).fetch(1000))
                    Model.tags_posts.deletes(Model.tags_posts.all().filter("post =", p).fetch(1000))
                    p.delete()
                    self.write("ok")
                    return
                else:
                    p.title = fromq(self.q("title"))
                    p.author = Model.User.all().get() #TODO
                    category = Model.Category.get(fromq(self.q("category")))
                    p.category = category
                    p.url = fromq(self.q("url"))
                    Base.processurl(p)
                    p.created = Base.ParserLocalTimeToUTC(self.q("created"))
                    p.content = fromq(self.q("content"))
                    p.precontent = fromq(self.q("precontent"))
                    p.put()

                tags = fromq(self.q("tag")).split(",")
                if tags == None:
                    ralas = Model.tags_posts.all().filter("post =", p).fetch(1000)
                    Model.tags_posts.deletes(ralas)
                else:
                    for i in tags:
                        t = Model.Tag.all().filter("title =", i).get()
                        if t == None:
                            t = Model.Tag(title=i, description="在神秘的 %s 我降临啦" % datetime.datetime.now().strftime("%Y/%m/%d %H:%M:%S"))
                            t.put()

                        rela = Model.tags_posts.all().filter("tag =", t).filter("post =", p).get()
                        if rela == None:
                            rela = Model.tags_posts()
                            rela.post = p
                            rela.tag = t
                            rela.put()

            except:
                exc_type, exc_value, exc_traceback = sys.exc_info()
                logging.info("save fail in Post case :%s" %(traceback.format_exception(exc_type,
                                                                                            exc_value,
                                                                                            exc_traceback), ))

        self.redirect("/admin/post")