Beispiel #1
0
 def get(self, id):
   if id is not None:
     schema = PostsSchema()
     menu_schema = MenuSchema()
     tag_schema = TagSchema(many=True)
     ret = schema.dump(Posts.query.get(id))
     info = ret.data
     if info is not None and len(info) > 0:
       info['menu'] = menu_schema.dump(Menu.query.get(info['menu_id'])).data
       info['selectedTags'] = tag_schema.dump(Tag.query.filter(Tag.id.in_(info['tags'].split(','))).all()).data
       info['selectedTagIds'] = str(info['tags'])[:-1].split(',')
     return success(ret.data)
   else:
     menu_id = request.args.get('menu_id')
     if menu_id is None:
       schema = PostsSchema(many=True)
       menu_schema = MenuSchema()
       tag_schema = TagSchema(many=True)
       lists = schema.dump(Posts.query.order_by('push_at desc').all()).data
       for i in lists:
         i['menu'] = menu_schema.dump(Menu.query.get(i['menu_id'])).data
         i['tagList'] = tag_schema.dump(Tag.query.filter(Tag.id.in_(i['tags'].split(','))).all()).data
       return success(lists)
     else:
       schema = PostsSchema(many=True)
       menu_schema = MenuSchema()
       tag_schema = TagSchema(many=True)
       lists = schema.dump(Posts.query.filter(Posts.menu_id==menu_id).order_by('push_at desc').all()).data
       for i in lists:
         i['menu'] = menu_schema.dump(Menu.query.get(i['menu_id'])).data
         i['tagList'] = tag_schema.dump(Tag.query.filter(Tag.id.in_(i['tags'].split(','))).all()).data
       return success(lists)
Beispiel #2
0
 def get(self, id):
   if id is None:
     schema = LinkSchema(many=True)
     res = schema.dump(Link.query.all())
     return success(res.data)
   else:
     schema = LinkSchema()
     res = schema.dump(Link.query.filter_by(id=id).first())
     return success(res.data)
Beispiel #3
0
 def get(self, id):
   if id is not None:
     schema = DailySchema()
     res = schema.dump(Daily.query.get(id))
     return success(res.data)
   else:
     schema = DailySchema(many=True)
     res = schema.dump(Daily.query.order_by('date desc').all())
     return success(res.data)
Beispiel #4
0
 def get(self, id):
   search = request.args.get('search')
   schema = TagSchema(many=True)
   if search is not None:
     res = schema.dump(Tag.query.filter(Tag.name.like("%" + search + "%")).all())
     return success(res.data)
   else:
     res = schema.dump(Tag.query.order_by(desc(Tag.add_at)).all())
     return success(res.data)
Beispiel #5
0
 def get(self, id):
   if id is None:
     schema = MenuSchema(many=True)
     res = schema.dump(Menu.query.filter_by(pid=0).all())     
     r_menu = res.data
     for s in r_menu:
       sub = schema.dump(Menu.query.filter_by(pid=s['id']).all())
       s['sub'] = sub.data
     return success(r_menu)
   else:
     schema = MenuSchema()
     res = schema.dump(Menu.query.filter_by(id=id).first())
     return success(res.data)
Beispiel #6
0
 def put(self, id):
   text = request.json.get('text')
   if text is not None:
     info = Daily.query.get(id)
     info.text = text
     db.session.commit()
   return success()
Beispiel #7
0
def upload():
    if request.method == "POST" and 'pic' in request.files:
        filename = photos.save(
            request.files['pic'],
            name=datetime.datetime.now().strftime('%Y%m%d%H%M%S') + '.')
        return success({"url": filename})
    else:
        return error(500, 'has some error')
Beispiel #8
0
 def delete(self, id):
   schema = MenuSchema()
   sub_menu = schema.dump(Menu.query.filter_by(pid=id).first())
   if sub_menu.data is None  or len(sub_menu.data) == 0:
     Menu.query.filter(Menu.id==id).delete()
     db.session.commit()
     return success()
   else:
     return error(500,'has some submenu of this menu, cat not delete!')
Beispiel #9
0
 def post(self):
   name = request.json.get('name')
   pid = request.json.get('pid')
   schema = MenuSchema()
   res = schema.dump(Menu.query.filter_by(name=name).first())
   if res.data is None or len(res.data) == 0:
     db.session.add(Menu(name, pid))
     db.session.commit()
   return success()
Beispiel #10
0
 def post(self):
   name = request.json.get('name')
   schema = TagSchema()
   if name is not None:
     res = schema.dump(Tag.query.filter_by(name=name).first())
     if res.data is None or len(res.data) == 0:
       db.session.add(Tag(name=name,add_at=datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')))
       db.session.commit()
   return success()
Beispiel #11
0
 def post(self):
   title = request.json.get('title')
   desc = request.json.get('desc')
   url = request.json.get('url')
   schema = LinkSchema()
   has = schema.dump(Link.query.filter(or_(Link.title == title,Link.url == url)).first())
   if has.data is None or len(has.data) == 0:
     db.session.add(Link(title=title, url=url, desc=desc))
     db.session.commit()
   return success()
Beispiel #12
0
 def put(self, id):
   schema = MenuSchema()
   name = request.json.get('name')
   pid = request.json.get('pid')
   m = schema.dump(Menu.query.filter(Menu.name==name).filter(Menu.id!=id).first())
   if m.data is None or len(m.data) == 0:
     n = Menu.query.filter(Menu.id==id).first()
     n.name = name
     n.pid = pid
     db.session.commit()
   return success()
Beispiel #13
0
 def put(self, id):
   title = request.json.get('title')
   desc = request.json.get('desc')
   url = request.json.get('url')
   schema = LinkSchema()
   has = schema.dump(Link.query.filter(or_(Link.title == title,Link.url == url)).filter(Link.id!=id).first())
   if has.data is None or len(has.data) == 0:
     n = Link.query.get(id)
     n.title = title
     n.url = url
     n.desc = desc
     db.session.commit()
   return success()
Beispiel #14
0
 def post(self):
   menu_id = request.json.get('menu_id')
   title = request.json.get('title')
   tags = request.json.get('selectedTagIds')
   desc = request.json.get('desc')
   content = request.json.get('content')
   img_url = request.json.get('img_url')
   push_at = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
   schema = PostsSchema()
   s = ''
   l = 0
   while l < len(tags):
     s += str(tags[l])+','
     l += 1
   if menu_id and title and tags and desc and content:
     db.session.add(Posts(menu_id=menu_id, title=title, desc=desc, content=content, push_at=push_at,tags=s, img_url=img_url))
     db.session.commit()
   return success()
Beispiel #15
0
def addTag():
    start_id = request.args.get('start_id')
    last_id = ''
    schema = DailySchema(many=True)
    one_schema = DailySchema()
    if start_id is None:
        res = schema.dump(Daily.query.order_by('date desc').limit(12).all())
    else:
        res = schema.dump(
            Daily.query.filter(Daily.id <= int(start_id)).order_by(
                'date desc').limit(12).all())
    ret = res.data
    if len(ret) > 0:
        lastInfo = one_schema.dump(
            Daily.query.filter(
                Daily.id < ret[len(ret) -
                               1]['id']).order_by('date desc').first()).data
        if lastInfo is not None and len(lastInfo) > 0:
            last_id = lastInfo['id']
    return success({'lists': ret, 'last_id': last_id})
Beispiel #16
0
 def put(self, id):
   menu_id = request.json.get('menu_id')
   title = request.json.get('title')
   tags = request.json.get('selectedTagIds')
   desc = request.json.get('desc')
   content = request.json.get('content')
   img_url = request.json.get('img_url')
   s = ''
   l = 0
   while l < len(tags):
     s += str(tags[l])+','
     l += 1
   if menu_id and title and tags and desc and content:
     fo = Posts.query.get(id)
     fo.menu_id=menu_id
     fo.title=title
     fo.desc=desc
     fo.content=content
     fo.tags=s
     fo.img_url=img_url
     db.session.commit()
   return success()
Beispiel #17
0
def menu(id=0):
    schema = MenuSchema(many=True)
    res = schema.dump(Menu.query.filter_by(pid=id).all())
    return success(res.data)
Beispiel #18
0
def get_posts(id=None):
    top = request.args.get('top')
    start_id = request.args.get('start_id')
    if id is not None:
        schema = PostsSchema()
        menu_schema = MenuSchema()
        tag_schema = TagSchema(many=True)
        p = Posts.query.get(id)
        ret = schema.dump(p)
        info = ret.data
        if info is not None and len(info) > 0:
            info['menu'] = menu_schema.dump(Menu.query.get(
                info['menu_id'])).data
            info['next'] = schema.dump(
                Posts.query.filter(Posts.id > id).first()).data
            info['prev'] = schema.dump(
                Posts.query.filter(
                    Posts.id < id).order_by('id desc').first()).data
            info['tagList'] = tag_schema.dump(
                Tag.query.filter(Tag.id.in_(
                    info['tags'].split(','))).all()).data
        p.click_num = p.click_num + 1
        db.session.commit()
        return success(info)
    elif top is None:
        menu_id = request.args.get('menu_id')
        if menu_id is None:
            schema = PostsSchema(many=True)
            one_schema = PostsSchema()
            menu_schema = MenuSchema()
            tag_schema = TagSchema(many=True)
            if start_id is not None:
                lists = schema.dump(
                    Posts.query.filter(Posts.id <= int(start_id)).order_by(
                        'push_at desc').limit(9).all()).data
            else:
                lists = schema.dump(
                    Posts.query.order_by('push_at desc').limit(9).all()).data
            last_id = 0
            for i in lists:
                i['menu'] = menu_schema.dump(Menu.query.get(i['menu_id'])).data
                i['tagList'] = tag_schema.dump(
                    Tag.query.filter(Tag.id.in_(
                        i['tags'].split(','))).all()).data
            if len(lists) > 0:
                lastInfo = one_schema.dump(
                    Posts.query.filter(Posts.id < lists[len(lists) - 1]['id']).
                    order_by('push_at desc').first()).data
                if lastInfo is not None and len(lastInfo) > 0:
                    last_id = lastInfo['id']
            ret = {'lists': lists, 'last_id': last_id}
            return success(ret)
        else:
            schema = PostsSchema(many=True)
            one_schema = PostsSchema()
            menu_schema = MenuSchema()
            tag_schema = TagSchema(many=True)

            some_menu_schema = MenuSchema(many=True)
            menus = some_menu_schema.dump(
                Menu.query.filter(Menu.pid == menu_id)).data
            menuids = [menu_id]
            for m in menus:
                menuids.append(m['id'])

            if start_id is not None:
                lists = schema.dump(
                    Posts.query.filter(Posts.menu_id.in_(menuids)).filter(
                        Posts.id <= int(start_id)).order_by(
                            'push_at desc').limit(9).all()).data
            else:
                lists = schema.dump(
                    Posts.query.filter(Posts.menu_id.in_(menuids)).order_by(
                        'push_at desc').limit(9).all()).data
            last_id = 0
            for i in lists:
                i['menu'] = menu_schema.dump(Menu.query.get(i['menu_id'])).data
                i['tagList'] = tag_schema.dump(
                    Tag.query.filter(Tag.id.in_(
                        i['tags'].split(','))).all()).data
            if len(lists) > 0:
                lastInfo = one_schema.dump(
                    Posts.query.filter(Posts.id < lists[len(lists) - 1]['id']).
                    order_by('push_at desc').first()).data
                if lastInfo is not None and len(lastInfo) > 0:
                    last_id = lastInfo['id']
            ret = {'lists': lists, 'last_id': last_id}
            return success(ret)
    else:
        if top is not None:
            schema = PostsSchema(many=True)
            menu_schema = MenuSchema()
            tag_schema = TagSchema(many=True)
            alists = schema.dump(
                Posts.query.order_by('click_num desc').limit(top).all()).data
            for info in alists:
                if info is not None and len(info) > 0:
                    info['menu'] = menu_schema.dump(
                        Menu.query.get(info['menu_id'])).data
                    info['tagList'] = tag_schema.dump(
                        Tag.query.filter(Tag.id.in_(
                            info['tags'].split(','))).all()).data
            return success(alists)
Beispiel #19
0
def tag():
    schema = TagSchema(many=True)
    res = schema.dump(Tag.query.order_by('add_at desc').all())
    return success(res.data)
Beispiel #20
0
def link():
    schema = LinkSchema(many=True)
    res = schema.dump(Link.query.all())
    return success(res.data)
Beispiel #21
0
 def delete(self, id):
   link = Link.query.get(id)
   db.session.delete(link)
   db.session.commit()
   return success()
Beispiel #22
0
 def post(self):
   text = request.json.get('text')
   if text is not None:
     db.session.add(Daily(text=text, date=datetime.datetime.now().strftime('%Y-%m-%d')))
     db.session.commit()
   return success()