跳转至

Common

一组工具函数

function resp2buf

将请求回复报文体转换成二进制buffer

buffer qqmusic::utils::resp2buf (
    http::response< http::dynamic_body > && resp
) 

Parameters:

  • resp 回复报文

Returns:

qqmusic::utils::buffer类型buffer


function sign

QQ音乐请求签名

std::string qqmusic::utils::sign (
    const nlohmann::json & params
) 

Parameters:

  • params 请求数据表单

Returns:

签名结果


function hex2buf

十六进制字符串转成buffer

buffer qqmusic::utils::hex2buf (
    std::string_view hex
) 

Parameters:

  • hex 十六进制编码字符串

Returns:

qqmusic::utils::buffer类型buffer


enum qrc_type

  • cloud

  • local

function qrc_decode

解码加密的QRC歌词

qqmusic::Result< std::string > qqmusic::utils::qrc_decode (
    const qqmusic::utils::buffer & src,
    qqmusic::utils::qrc_type type
) 

Parameters:

  • src 被加密的歌词
  • type 歌词类型

Returns:

解码后的字符串, 如果出错会返回Exception


Note

cloudlocal的区别: cloud直接处理, 而local需要进行qmc1_decryt之后 去掉前11字节再处理

function hash33

计算utf-8字符串的哈希值

uint64_t qqmusic::utils::hash33 (
    std::string_view str,
    uint64_t prev=0
) 

Parameters:

  • str 待求值字符串
  • prev 多次求值时传入上次求出的结果, 默认为0

Returns:

64位整数格式的哈希


function get_search_id

返回随机搜索ID

std::string qqmusic::utils::get_search_id ()