README.md 4.2 KB
Newer Older
木偶 已提交
1 2 3
<div align= "center">
<img align="center" src="https://user-images.githubusercontent.com/21073039/123022701-c3848180-d408-11eb-86ec-7727f355ea96.png" />
</div>
M
init  
muwoo 已提交
4

木偶 已提交
5 6 7 8 9 10 11 12 13 14 15
# Rubick

<p>
 <a href="https://github.com/clouDr-f2e/rubick/releases/tag/v0.0.1-beta">
    <img alt="release" src="https://img.shields.io/badge/release-v0.0.1-brightgreen" />
 </a>
 <a href="https://github.com/clouDr-f2e/rubick/blob/master/LICENSE">
    <img alt="npm" src="https://img.shields.io/github/license/clouDr-f2e/rubick" />
 </a>
</p>

木偶 已提交
16 17

基于 electron 的工具箱,媲美 utools的开源插件,已实现 utools 大部分的 API 能力,所以可以做到无缝适配 utools 开源的插件。
木偶 已提交
18 19 20
之所以做这个工具箱一方面是 utools 本身并未开源,但是公司内部的工具库又无法发布到 utools 插件中,所以为了既要享受 utools 生态又要有定制化需求,我们自己参考 utools 设计,做了 Rubick.

Rubick(拉比克) 是 dota 里面的英雄之一,其核心技能是插件化使用其他英雄的技能,用完即走。非常符合本工具的设计理念,所以取名 Rubick。
M
init  
muwoo 已提交
21

木偶 已提交
22
## 安装包
木偶 已提交
23
* [Rubick Mac OS V0.0.2](https://github.com/clouDr-f2e/rubick/releases/download/v0.0.2/rubick2-0.0.2.pkg)
木偶 已提交
24 25

## 支持能力
木偶 已提交
26
- [x] 支持远程下载安装插件,支持插件开发者模式
木偶 已提交
27 28 29 30 31 32 33 34
- [x] 支持插件分离
- [x] 支持系统命令取色、截屏、帮助
- [x] 支持超级面板,长按右击呼出
- [x] 支持全局快捷键设置
- [x] 支持搜索本地已安装 app 或 偏好设置
- [ ] 支持 Windows
- [ ] 支持 Linux

木偶 已提交
35 36 37 38

![QQ20210705-210753](https://user-images.githubusercontent.com/21073039/124477360-8770f980-ddd6-11eb-8dc3-ba318223697f.gif)


M
init  
muwoo 已提交
39

木偶 已提交
40 41 42 43
## 使用问题
1. 目前 `Rubick` 插件市场 server 端还没有部署,所以目前看不到插件市场的插件。
2. 依赖于 `robotjs` dev 环境运行请在 `install` 后执行 `npm run rebuild`

木偶 已提交
44 45
## utools 插件支持
### plugin.json
木偶 已提交
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
在你觉得合适的地方新建一个文件夹,并创建 `plugin.json` 文件。这是最重要的一个文件,用来说明这个插件将如何与 `rubick` 集成,最基本的格式如下:
```json
{
	"pluginName": "helloWorld",
	"description": "我的第一个uTools插件",
	"main": "index.html",
	"version": "0.0.1",
	"logo": "logo.png",
	"features": [
		{
		  "code": "hello",
		  "explain": "hello world",
			"cmds":["hello", "你好"]
		}
	]
}
```
所有字段和 `utools` 保持一致,这将可以完美使用`utools`的插件生态

木偶 已提交
65
## utools api 支持
木偶 已提交
66

木偶 已提交
67
### 事件
木偶 已提交
68

木偶 已提交
69
#### onPluginReady(callback)
木偶 已提交
70 71 72 73 74 75 76 77 78 79 80 81
* `callback` Function

> 当插件装载成功,uTools 将会主动调用这个方法(生命周期内仅调用一次),所有的 `api` 都应该在 `onPluginReady` 之后进行调用。

##### 示例

```js
utools.onPluginReady(() => {
  console.log('插件装配完成,已准备好')
})
```

木偶 已提交
82
#### onPluginEnter(callback)
木偶 已提交
83 84 85 86 87
* `callback` Function

> 每当插件从后台进入到前台时,uTools 将会主动调用这个方法。

##### 示例
M
init  
muwoo 已提交
88

木偶 已提交
89 90 91 92 93 94 95 96
```js
utools.onPluginEnter(({code, type, payload, optional}) => {
  console.log('用户进入插件', code, type, payload)
})
```

更多可以参考 `utools` 文档:https://u.tools/docs/developer/api.html#%E4%BA%8B%E4%BB%B6

木偶 已提交
97
### 窗口交互
木偶 已提交
98 99


木偶 已提交
100
### 本地数据库
木偶 已提交
101 102
类似于 `utools` 的功能,我们也提供了本地数据库的 api 能力

木偶 已提交
103
#### utools.db.put(doc)
木偶 已提交
104

木偶 已提交
105
##### 示例
木偶 已提交
106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
```js
// 创建请求
utools.db.put({
  _id: "demo",
  data: "demo"
})
// 返回 {id: "demo", ok: true, rev: "1-05c9b92e6f24287dc1f4ec79d9a34fa8"}

// 更新请求
utools.db.put({
  _id: "demo",
  data: "demo",
  _rev: "1-05c9b92e6f24287dc1f4ec79d9a34fa8"
})

```
M
init  
muwoo 已提交
122

木偶 已提交
123 124 125
#### utools.db.get(id)
#### utools.db.remove(doc)
#### utools.db.bulkDocs(docs)
M
init  
muwoo 已提交
126

木偶 已提交
127
### ubrowser
木偶 已提交
128
可编程浏览器
M
init  
muwoo 已提交
129

木偶 已提交
130 131 132 133 134 135 136 137
```js
  const page = await utools.ubrowser.goto('https://www.baidu.com')
  await page.value('#kw', 'uTools');
  await page.click('#su');
  page.run({
      width: 600,
      height: 800,
    })
M
init  
muwoo 已提交
138 139
```

木偶 已提交
140
### 最后
木偶 已提交
141
utools过于强大,目前还没有完全实现其所有功能,不过我们会根据需要不断更新。欢迎小伙伴一起 `pr``star`
M
init  
muwoo 已提交
142

木偶 已提交
143 144 145 146

## License
This project is licensed under the MIT License - see the [LICENSE.md](https://github.com/clouDr-f2e/rubick/blob/master/LICENSE) file for details.