GithubHelp home page GithubHelp logo

smilelee123 / rubick Goto Github PK

View Code? Open in Web Editor NEW

This project forked from rubickcenter/rubick

0.0 1.0 0.0 526 KB

📦 媲美utools的开源工具箱,自由集成丰富插件,utools生态插件微改动即可无差异化使用。

License: MIT License

JavaScript 61.48% EJS 0.50% Vue 20.84% HTML 11.29% CSS 5.89%

rubick's Introduction

Rubick

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

image

utools 插件支持

plugin.json

在你觉得合适的地方新建一个文件夹,并创建 plugin.json 文件。这是最重要的一个文件,用来说明这个插件将如何与 rubick 集成,最基本的格式如下:

{
	"pluginName": "helloWorld",
	"description": "我的第一个uTools插件",
	"main": "index.html",
	"version": "0.0.1",
	"logo": "logo.png",
	"features": [
		{
		  "code": "hello",
		  "explain": "hello world",
			"cmds":["hello", "你好"]
		}
	]
}

所有字段和 utools 保持一致,这将可以完美使用utools的插件生态

utools api 支持

事件

onPluginReady(callback)

  • callback Function

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

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

onPluginEnter(callback)

  • callback Function

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

示例
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

窗口交互

本地数据库

类似于 utools 的功能,我们也提供了本地数据库的 api 能力

utools.db.put(doc)

示例
// 创建请求
utools.db.put({
  _id: "demo",
  data: "demo"
})
// 返回 {id: "demo", ok: true, rev: "1-05c9b92e6f24287dc1f4ec79d9a34fa8"}

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

utools.db.get(id)

utools.db.remove(doc)

utools.db.bulkDocs(docs)

ubrowser

可编程浏览器

  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,
    })

最后

utools过于强大,目前还没有完全实现其所有功能,不过我们会根据需要不断更新。欢迎小伙伴一起 prstar

License

This project is licensed under the MIT License - see the LICENSE.md file for details.

rubick's People

Contributors

muwoo avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.