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()
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))
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,
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(