nodejs sqlite数据库之QQ拼音表情包

nodejs sqlite数据库之QQ拼音表情包

月光魔力鸭

2020-07-19 17:40 阅读 805 喜欢 0 QQ拼音表情包

平时聊天或写文章的时候,一直使用QQ拼音,经常会在打字的时候蹦出表情来,昨天突然就想把这沙雕表情插入到我的文章里面.. 还可以稍显生动一些..无

然后找到了QQ拼音存在电脑本地的数据库,image.***.db 文件,很明显为sqlite数据库,并且无加密或密码,可以直接打开。

就看到了几百个表情包地址..关键是下载无鉴权,很容易就可以下载下来..但是考虑到有500+之多..自然还是程序来做。

由于之前未使用过sqlite3数据库,这里做个小尝试..发现连接使用并不难..

资料查阅

代码

代码很简短,几十行就OK了,下载后可以通过RAR进行解压..目前暂时没想好如何插入到文章中,等后续考虑好了方式,再更新。

/***
 * 读取sqlite数据库,并下载所有的表情,并解压。
 */
var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database('db/image.db');
var axios = require('axios');
var fs = require('fs');

;(async function(){
    db.serialize(async ()=>{
        db.all("select * from downloadpacket",async (err,row)=>{
            console.log(row.length);
            await download(row);
      })
    })
})();

//下载表情包,并进行解压。
async function download(rows){
    for(let i in rows){
        let d = rows[i];
        let {expName,expDownloadUrl}  = d;
        //下载
        await fetch(expDownloadUrl,expName)
    }
}
async function fetch(url,name){
    let rs = await axios({
        url : url,
        type : 'get',
        responseType : 'stream'
    }).then(rs=>rs.data);
    var ws = fs.createWriteStream('./emoj/'+name+'.qqe');
    await r2w(rs,ws);
}

function r2w(rs,ws){
    return new Promise((resolve,reject)=>{
        rs.pipe(ws);
        rs.on('end',()=>{
            resolve();
        })
        rs.on('error',()=>{
            reject();

        })
    });
}

500+表情包

转载请注明出处: https://chrunlee.cn/article/node-sqlite-qq-emoj.html


感谢支持!

赞赏支持
提交评论
评论信息 (请文明评论)
暂无评论,快来快来写想法...
推荐
记录下部署php项目的时候的经过,查了很多资料,最后才定出的这个,中间些许问题可能已经记不清楚了,趁着时间步长,赶紧回忆一下。
虽说docker已经大名鼎鼎,但在之前一直都未上手使用过,即便是前一阵子想挂下京东的京豆(使用docker)也给耽搁了,一直的感觉就是这货应该跟vm没啥区别吧,应该就是更方便更好用更适合开发者。
最近入手一台小主机,把自己剩余的硬盘都加上去了,想着做个私有云..使用了owncloud,类似的文章很多,不过各有各的坑,当然我这个也肯定有坑,主要是各自的环境还不一样。
如果您由于各种各样的原因,不幸丢失了数据、想恢复数据,您在互联网上搜索解决办法,会发现,DiskGenius这款软件是排名第一的解决方案
最近一直在了解关于个人支付的问题。由于之前一直想实现个人支付,但是目前微信和支付宝的支付接口都需要企业或个体户资质,导致没办法实现,无奈只能走向这个道路。 说是免签,实际上就是拿到收款金额来做些事情。
业务需求需要一个微信的文章,但是这个文章又不想让所有人知道,只想让参与活动的人看到,那么怎么在不发布微信公众号文章的前提下,拿到文章的永久地址呢?
系统为:win10 家庭中文版,安装vmware10 ,总是报错提示:this product may ........ hyper-v .