Valine addon 09/04/2020
最后编辑于:

Valine - 为qq邮箱添加qq头像

因为已经有了类似先例解决方案,就不重复造轮子了,这里直接转自 喵窝・札记


Valine默认自带有很多匿名头像可配置,不过有些为了方便是使用qq邮箱的,如果能把默认头像替换成qq头像会好很多(特殊的个人仪式感?)

打开 Valine.min.js 查找以下字符串:


    m.cdn+a(e.get("mail"))+m.params
    

自定义:


    var C=function(e,n,r){
        var qqavatar=m.cdn+a(e.get("mail"))+m.params;//默认gravator头像接口
         if(e.get("mail").indexOf("@qq.com") >= 0){
            var prefix = e.get("mail").replace(/@.*/, "");//前缀
            var pattern=/^\d+$/g;  //正则表达式,数字
            var result= prefix.match(pattern);//match 是匹配的意思
            if(result!==null){
                qqavatar = "//q1.qlogo.cn/g?b=qq&nk="+ prefix +"&s=100";
            }
        }
    var i=u.create("div",{class:"vcard",id:e.id}),o=m.hide?"":'<img class="vimg" src="'+ (qqavatar)+'">',
    

有待改进

  • 使用后,所有匿名评论头像都成一个了..(可能是我个人改的原因,正在排查) 原来不填任何何邮箱的情况下,匿名评论的头像都是一样的/笑哭..
  • 输入邮箱与 gavatar 相同时(gavatar注册邮箱是qq邮箱), 会优先获取qq邮箱。需要改进为优先获取Gavatar邮箱

关于gravatar邮箱为qq邮箱时获取优先级问题

之前想太多,尝试了各种解法,未果.. 其实只需要把那段判断qq邮箱的代码放到 s = e.get("ua") || "",l = ""; 后即可,以下


    var qqavatar = m.cdn + a(e.get("mail")) + m.params;
    var i = u.create("div", {
        class: "vcard",
        id: e.id
    }),
    var i=u.create("div",{class:"vcard",id:e.id}),o=m.hide?"":'<img class="vimg" src="'+ (qqavatar)+'">',
    s = e.get("ua") || "",
    l = "";
    if (e.get("mail").indexOf("@qq.com") >= 0) {
        var prefix = e.get("mail").replace(/@.*/, "");
        var pattern = /^\d+$/g;
        var result = prefix.match(pattern);
        if (result !== null) {
            qqavatar = "//q.qlogo.cn/headimg_dl?dst_uin=" + prefix + "&spec=640";
        }
    };
    

附:qq部分api

部分接口返回的数据需要解析


    QQ头像:http://q2.qlogo.cn/headimg_dl?dst_uin=QQ号&spec=100
    
高清头像:http://q.qlogo.cn/headimg_dl?dst_uin=QQ号&spec=640
QQ网名:http://users.qzone.qq.com/fcg-bin/cgi_get_portrait.fcg?uins=QQ号
http://r.qzone.qq.com/fcg-bin/cgi_get_portrait.fcg?uins=QQ号
QQ群头像:http://p.qlogo.cn/gh/群号/群号/100/
QQ空间背景音乐:http://qzone-music.qq.com/fcg-bin/cgi_playlist_xml.fcg?g_tk=1916754934&json=1&uin=QQ号
打开QQ资料:tencent://ContactInfo/?subcmd=ViewInfo&puin=0&uin=QQ号
发起QQ会话:http://wpa.qq.com/msgrd?v=3&uin=QQ号&site=qq&menu=yes
tencent://Message/?uin=QQ号