playLog = (sid, type, play_source) => {
  return (dispatch, getState) => {
    const tzOffset = new Date().getTimezoneOffset() * 60000
    const time = new Date(Date.now() - tzOffset).toISOString()
    const timeFormat = `${time.split('T')[0]} ${time.split('T')[1].split('.')[0]}`

    return axios(
      Object.assign(
        {
          method: 'POST',
          url: PLAY_LOG_URL,
          data: oToFd(
            Object.assign(JSON.parse(JSON.stringify(fixedParams)), {
              records:
                '[{"time":"' +
                timeFormat +
                '","play_mode":"o","sid":"' +
                sid +
                '","type":"' +
                type +
                '","play_source":"' +
                play_source +
                '","pid":"0"}]',
            })
          ),
        },
        getState().authReducer._id === 1 && {
          headers: {
            Authorization: 'Bearer ' + getState().authReducer.userToken.access_token,
          },
        }
      )
    )
  }
}
type: r, play_source: h => redheart list rate
type: u, play_source: h => redheart list unrate
type: p, play_source: h => redheart list playing
type: s, play_source: h => redheart list skip
type: j, play_source: h => redheart list forward
type: k, play_source: h => redheart list backward

play_source: y => recent list
play_source: d => daily list
play_source: n => sheet list

@param {*} sid
@param {*} type
@param {*} play_source