guang.js 3.21 KB
/**
 * Created by TaoHuang on 2017/2/21.
 */

'use strict';

const helpers = global.yoho.helpers;
const TYPE = require('../type');

const MOBILE_DOMAIN = '//guang.m.yohobuy.com';

module.exports = [
    // 老的首页
    {
        type: TYPE.redirect,
        origin: (req) => {
            return req.path === '/';
        },
        target: (req) => {
            return helpers.urlFormat(`/${req.yoho.channel}/`, null, 'guang');
        }
    },

    // 首页
    {
        type: TYPE.rewrite,
        origin: /^\/(boys|girls|kids|lifestyle)(\/*)$/,
        target: (req, match, p1) => {
            req.query.channel = p1;
            return `/guang/?chanel=${p1}`;
        }
    },

    // 老的首页 + 类型 + 翻页
    {
        type: TYPE.redirect,
        origin: req => /index\/index/i.test(req.path),
        target: (req) => {
            return helpers.urlFormat(
                `/${req.yoho.channel}-t${req.query.type || 0}${req.query.page ? '-p' + req.query.page : ''}/`,
                null,
                'guang'
            );
        }
    },

    // 首页 + 类型
    {
        type: TYPE.rewrite,
        origin: /^\/(boys|girls|kids|lifestyle)-t([\d]+)(\/*)$/,
        target: (req, match, p1, p2) => {
            req.query.channel = p1;
            req.query.type = p2;
            return `/guang/?chanel=${p1}&type=${p2}`;
        }
    },

    // 列表页 + 类型 + 翻页
    {
        type: TYPE.rewrite,
        origin: /^\/(boys|girls|kids|lifestyle)-t([\d]+)-p([\d]+)(\/*)$/,
        target: (req, match, p1, p2, p3) => {
            req.query.channel = p1;
            req.query.type = p2;
            req.query.page = p3;
            return `/guang/index/index/?type=${p2}&channel=${p3}`;
        }
    },

    // 老的编缉首页
    {
        type: TYPE.redirect,
        origin: (req) => {
            return /index\/editor/i.test(req.path);
        },
        target: (req) => {
            let channel = req.yoho.channel;
            let authorId = req.query.author_id;
            let page = req.query.page;

            if (!authorId) {
                return helpers.urlFormat(`/${channel}/`, null, 'guang');
            }

            return helpers.urlFormat(`/author-${channel}-${authorId}${page ? '-p' + page : ''}/`, null, 'guang');
        }
    },

    // 编缉首页
    {
        type: TYPE.rewrite,
        origin: /^\/author-(boys|girls|kids|lifestyle)-([\d]+)(\/*)$/,
        target: (req, match, channel, authorId) => {
            req.query.channel = channel;
            req.query.author_id = authorId;
            req.mobileUrl = `${MOBILE_DOMAIN}/author-${channel}-${authorId}/`;
            return `/guang/index/editor?channel=${channel}&author_id=${authorId}`;
        }
    },

    // 编缉首页 + 翻页
    {
        type: TYPE.rewrite,
        origin: /^\/author-(boys|girls|kids|lifestyle)-([\d]+)-p([\d]+)(\/*)$/,
        target: (req, match, channel, authorId, page) => {
            req.query.channel = channel;
            req.query.author_id = authorId;
            req.query.page = page;
            req.mobileUrl = `${MOBILE_DOMAIN}/author-${channel}-${authorId}-p${page}/`;
            return `/guang/index/editor?channel=${channel}&author_id=${authorId}&page=${page}`;
        }
    }

];