Electron构建魔兽世界插件更新安装

一、前言介绍

本人是一个魔兽世界老玩家了,由于最近twitch的魔兽插件更新客户端由于国内的网络原因被强,而且之前用这个客户端更新插件非常慢,但是看到插件数据源的网站国服网络可以正常访问所有打算用nodejs爬虫爬取网站数据来撸一个插件更新安装客户端,数据源网站地址github地址

二、开发简介

1、爬虫

    1).使用的npm库 superagent:用于发送请求获取到网站的html源,superagent-charset:用于   防止html源里的内容乱码的,cheerio:一个能在nodejs环境解析html源和jquery选择器使用方式一致

    2).分析首页左侧的插件类别几乎不会有变化,爬取一次拿到json后直接写入到一个json配置文件。右侧顶部是插件的分页,分页下面是插件列表根据长度乘总页面可以拿到插件总数。使用superagent爬到首页html后使用cheerio的dom选择器获取到你想要拿的dom数里的内容

    3).爬插件的下载地址随便点一个插件下载详情页面在页面上有个here是一个a标签上面是插件的实际下载地址,爬取方式一样最后拿到a标签的href链接就是插件下载地址通electron的ipcMain主进程传递给客户端进程里即可。

2、如何正确把插件安装到魔兽客户端里

     1).魔兽插件的目录在游戏根目录的Interface/AddOns里,所以客户端首次启动需要用户指下你电脑的这个插件目录,后续的下载安装到这个目录即可

     2).设置好了目录就只需要根据之前爬到的某一个插件的下载地址使用nodejs的request模根据下载地址在插件目录已流的方式写入即可

     3).下载完毕后所有的包都是zip形式所以我们需要解压即可,这里我使用的是一个第三npm解压AdmZip他自带就有文件对比功能,如果有改动就会覆盖同名文件,这方便了以插件的更新

3、如何保存已安装的插件

     1).我是在插件的目录会生成一个json文件保存每个插件的安装信息,这样可以做删除,更新功能    

三、疑问

1、如何在用户首次安装就获取到用户魔兽之前安装的插件,twitch之前是可以,但是我现在不知道怎么实现,感觉是需要和魔兽账号打通才可以

2、关于下载进度的问题,我其实很想做,但是这样回提前请求一次下载地址获取到headers的content-length浪费了性能(因为下载地址有2次302导致首页获取的content-length长度为0),所以我没有做,希望有大佬看到文章后能指点一下。

四、客户端ui截图




五、客户端的体验地址

windonw pan.baidu.com/share/init?…    vbxv
mac         pan.baidu.com/share/init?…  d7ff








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值