Esempio n. 1
0
def feed_view():
    data = [
        g.redis.hgetall("{}:{}".format(GLOBAL['ProcessName'], imgId))
        for imgId in list(g.redis.smembers(current_app.config["picKey"]))
    ]
    data = [
        i
        for i in sorted(data,
                        key=lambda k: (k.get('ctime', 0), k.get('imgUrl', 0)),
                        reverse=True)
    ][:15]
    feed = AtomFeed(g.site["site_RssTitle"],
                    subtitle='Cherry Blossoms',
                    feed_url=request.url,
                    url=request.url_root,
                    icon=url_for('static',
                                 filename='images/favicon.ico',
                                 _external=True))
    for img in data:
        title = timestamp_to_timestring(float(img['ctime']))
        content = u'<img src="{}">'.format(img['imgUrl'])
        feed.add(title,
                 content,
                 content_type='html',
                 id=img['imgId'],
                 url=img['imgUrl'],
                 updated=datetime.datetime.fromtimestamp(float(img['ctime'])),
                 published=datetime.datetime.fromtimestamp(float(
                     img['ctime'])))
    return feed.get_response()
Esempio n. 2
0
def userapp():
    """管理接口"""
    res = dict(msg=None, code=1)
    if request.method == "GET":
        # 定义参数
        sort = request.args.get("sort") or "desc"
        page = request.args.get("page") or 1
        limit = request.args.get("limit") or 10
        # 参数检查
        try:
            page = int(page)
            limit = int(limit)
            page -= 1
            if page < 0:
                raise
        except:
            res.update(code=2, msg="There are invalid parameters")
        else:
            # 从封装类中获取数据
            res.update(g.api.userapp.listUserApp())
            data = res.get("data")
            if data and isinstance(data, (list, tuple)):
                data = [i for i in sorted(data, reverse=False if sort == "asc" else True)]
                count = len(data)
                data = ListEqualSplit(data, limit)
                pageCount = len(data)
                if page < pageCount:
                    res.update(code=0, data=data[page], pageCount=pageCount, page=page, limit=limit, count=count)
                else:
                    res.update(code=3, msg="There are invalid parameters")
            else:
                res.update(code=4, msg="No data")
    elif request.method == "POST":
        name = request.form.get("name")
        description = request.form.get("description")
        app_redirect_url = request.form.get("app_redirect_url")
        res.update(g.api.userapp.createUserApp(name=name, description=description, app_redirect_url=app_redirect_url))
    elif request.method == "PUT":
        name = request.form.get("name")
        description = request.form.get("description")
        app_redirect_url = request.form.get("app_redirect_url")
        res.update(g.api.userapp.updateUserApp(name=name, description=description, app_redirect_url=app_redirect_url))
    elif request.method == "DELETE":
        name = request.form.get("name")
        res.update(g.api.userapp.deleteUserApp(name=name))
        FastPushMessage(res, "您于<i>{}</i>删除了一个SSO客户端应用:<strong>{}</strong>".format(timestamp_to_timestring(get_current_timestamp()), name))
    logger.info(res)
    return jsonify(dfr(res))
Esempio n. 3
0
 hasKey = False
 try:
     hasKey = pb.redis.exists(key)
 except Exception, e:
     logger.sys.error(e, exc_info=True)
 if hasKey:
     data = pb.redis.hgetall(key)
     res.update(
         msg=
         '当前画板下载中,链接是<a href="{}" target="_blank" title="请点击打开新页面或手动复制链接">{}</a>。温馨提示,5分钟内请勿重复对同一个画板使用远程下载服务!'
         .format(data["downloadUrl"], data["downloadUrl"]))
 else:
     ctime = get_current_timestamp()
     etime = timestamp_after_timestamp(hours=24)
     filename = "{}_{}.zip".format(site, ctime)
     expireTime = timestamp_to_timestring(etime)
     downloadUrl = url_for("CrawlHuaban.index",
                           board_id=board_id,
                           filename=filename,
                           _external=True)
     pipe = pb.redis.pipeline()
     pipe.hmset(
         key, dict(downloadUrl=downloadUrl, expireTime=expireTime))
     pipe.expire(key, 300)
     try:
         pipe.execute()
     except Exception, e:
         logger.sys.error(e, exc_info=True)
     finally:
         pb.asyncQueueHigh.enqueue_call(
             func=DownloadBoard,
Esempio n. 4
0
     res.update(data=data, code=0)
 elif Action == "getOne":
     # 获取随机一张图片
     res.update(data=g.redis.hgetall("{}:{}".format(
         GLOBAL['ProcessName'],
         g.redis.srandmember(current_app.config["picKey"]))),
                code=0)
 elif Action == "getPhoto":
     # 返回相册格式数据
     data = _get_pics()
     res = dict(
         title=g.site["site_TitleSuffix"],
         id=1,
         start=0,
         data=[{
             "alt": timestamp_to_timestring(float(img['ctime'])),
             "pid": img["imgId"],
             "src": img["imgUrl"]
         } for img in sorted(data,
                             key=lambda k:
                             (k.get('ctime', 0), k.get('imgUrl', 0)),
                             reverse=True)
               if img["imgUrl"].split(".")[-1].lower() != "mp4"])
 elif Action == "getLabel":
     # 定义参数
     sort = request.args.get("sort") or "desc"
     try:
         data = _get_label()
         if not data:
             data = []
         labelDefaultData = g.redis.hgetall("{}:label:{}".format(