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
Electron构建魔兽世界插件更新安装相关推荐
- 使用 AngularJS 和 Electron 构建桌面应用
使用 AngularJS 和 Electron 构建桌面应用 GitHub 的 Electron 框架(以前叫做 Atom Shell)允许你使用 HTML, CSS 和 JavaScript 编写跨 ...
- 自动化构建部署之Jenkins安装【Docker容器】
文章目录 1. 在Docker中安装Jenkins 2. 配置清华加速源 3. 离线安装 4. 权限管理 前面几篇文章分别介绍了Travis CI.Circle CI,这次开始整Jenkins,它是开 ...
- npm ERR! code ERR_STREAM_WRITE_AFTER_END npm install 报错实力踩坑npm,自从用了npm之后项目构建和插件管理确实方便了很多,但也是被坑的不要不要的
实力踩坑npm,自从用了npm之后项目构建和插件管理确实方便了很多,但也是被坑的不要不要的.由于平时只是用用,并没有深入了解node的npm,所以遇到问题都比较棘手,能够查到的资料也不多.阐述以下我遇 ...
- 使用Tycho构建OSGi插件项目
使用Tycho构建OSGi插件项目 自动构建OSGi Plugin项目,一直以来就是个头疼的问题.直到 Tycho 的出现,这些都不在成为问题了.用它你可以很轻松来构建Eclipse插件(Eclips ...
- Node.js 和npm的安装(插件的安装)
一.node.js是什么?有什么用? 1.概述: a).Node.js是基于Chrome JavaScript运行时建立的一个平台,实际上它是对Google Chrome V8引擎进行了封装,它主要用 ...
- AngularJS 和 Electron 构建桌面应用
译]使用 AngularJS 和 Electron 构建桌面应用 原文: Creating Desktop Applications With AngularJS and GitHub Electro ...
- 【译】使用 AngularJS 和 Electron 构建桌面应用
原文:Creating Desktop Applications With AngularJS and GitHub Electron GitHub 的 Electron 框架(以前叫做 Atom S ...
- [听风]TBC单体插件“必备安装的DBM”
[听风]TBC单体插件"必备安装的DBM" 标签(空格分隔): TBC 文章目录 [听风]TBC单体插件"必备安装的DBM" 插件历史 他都做了些什么 快速开启 ...
- 基于Sphinx构建准实时更新的分布式通用搜索引擎平台
亿级数据的高并发通用搜索引擎架构设计[原创] 大 | 中 | 小 [ 2008-12-9 08:47 | by 张宴 ] [文章作者:张宴 本文版本:v1.0 最后修改:2008.12 ...
- vs2017 GitHub插件的安装和使用
这是针对于博客vs2017安装和使用教程(详细)的GitHub插件的安装和使用示例 目录 一.下载 二.安装 三.使用(以上传一个项目为例) 一.下载 1.项目右下角"添加到源代码管理&qu ...
最新文章
- 什么是边缘计算(Edge AI)?
- 关于魔法方法的一点总结
- Java字符编码的转化问题
- csv数据去重 python_python批量查询、汉字去重处理CSV文件
- Linux排序命令sort笔记
- 什么是JavaServer Faces(JSF)–(第2部分)
- HashMap和ConcurrentHashMap的区别,HashMap的底层源码。
- 数据结构基础(6) --顺序栈的设计与实现
- linux内核不发(Router Solicit)RS报文问题
- html中c b和b s,Web开发中B/S架构和C/S架构的区别
- [随笔] flex 布局使用 space-between 尾行排版效果优化
- 天梵古法健康知识普及:手阳明大肠经
- activiti 汉化
- 985硕士美女程序媛:10次面试的真实经历!阿里/携程/美团/58/华为....
- MySQL基础之索引
- CCF GAIR2018大会,100位全球人工智能大佬在深圳期待你的到来!
- IT业狼多肉少?程序员的绝地求生,谁能给他们一把“98K”?
- 视觉SLAM前端——PnP
- yarn ignore-engines
- web项目API接口设计与开发总结
热门文章
- 华为笔记本电脑触摸板失灵解决方法(触摸屏同理)
- 戴尔服务器上装vmware esxi
- git使用——15.搭建自己的gitlab服务器来存放我们的git项目
- 让迁移不再开盲盒,让云也能省钱丨Hackathon 项目背后的故事第一期回顾
- 【deepstream部署Yolov6】
- 戴德金之连续性和无理数的中文翻译
- 【词法分析和语法分析】编译原理实验一(hit)2022-lab1
- 清华梦的粉碎——写给清华大学的退学申请
- Linux4.14加密框架中的主要数据结构(1)—— struct crypto_alg(通用算法)
- 走近棒球运动·中华职业棒球大联盟·MLB棒球创造营