12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- var url = require('url');
- var logger = require('../tools/logger');
- var danmaku = require('../models/danmaku');
- var redis = require('../tools/redis');
- module.exports = function (req, res) {
- res.header('content-type', 'application/json; charset=utf-8');
- var ip = req.headers['x-forwarded-for'] ||
- req.connection.remoteAddress ||
- req.socket.remoteAddress ||
- req.connection.socket.remoteAddress;
- var query = url.parse(req.url,true).query;
- var id = query.id;
- var max = query.max;
- redis.client.get(`dplayer${id}`, function(err, reply) {
- if (reply) {
- logger.info(`DPlayer id ${id} form redis, IP: ${ip}`);
- res.send(reply);
- }
- else {
- logger.info(`DPlayer id ${id} form mongodb, IP: ${ip}`);
- danmaku.find({player: id}, function (err, data) {
- if (err) {
- logger.error(err);
- }
- var dan = {
- code: 1,
- danmaku: []
- };
- dan.danmaku = max ? data.slice(0, max) : data;
- var sendDan = JSON.stringify(dan);
- res.send(sendDan);
- redis.set(`dplayer${id}`, sendDan);
- })
- }
- });
- };
|