4作者: azdle2 个月前原帖
这是我在过去几个月里一直在进行的小项目。它是一个在完全沙盒环境中托管Lua脚本的服务,通过静态HTTP端点提供。这个项目是我为了满足自己的需求而构建的,现在我正在推出一个免费的公共测试版,看看是否还有其他人觉得它有用。 <p>&lt;背景故事&gt;<p>我第一份专业工作是在一家构建工业物联网平台的公司,最独特的功能是他们的基于Lua的脚本平台。我非常喜欢Lua,以至于在我下一个工作单位SmartThings时,我成为了推动Lua边缘驱动程序实现的主要发起者,当时我们被迫停用旧的基于Groovy的设备类型(DTH),我编写了初始的概念验证,设计了架构,并编写了系统的核心部分。 <p>这基本上是我对2017年关闭的一个旧服务webscript.io的看法,那个工具让我爱上了Lua。我在个人项目和工作中的小工具上都大量使用了那个服务。当它关闭时,我感到非常难过,真心觉得没有一个星期我没有希望它仍然存在。因此,我最终决定需要构建自己的版本。 <p>&lt;&#x2F;背景故事&gt;<p>Bodge的整个理念是尽可能简单地将一些东西拼凑在一起。我一直有很多小的副项目想做,但这些项目不值得投入实际组装和维护所需的开销。因此,我构建了Bodge,以便在灵感来临时,让每个单独的项目减少工作量。到目前为止,我已经构建了: <p>* 一个为一些拼凑在一起的物联网设备提供当前时间的API:<a href="https:&#x2F;&#x2F;time.bodge.app&#x2F;" rel="nofollow">https:&#x2F;&#x2F;time.bodge.app&#x2F;</a> <p>* 一个为我妻子编写的脚本,用于检查她的通勤时间,并在交通状况变糟之前给她发邮件。 <p>* 如果我的Matrix服务器宕机,给我自己发送的邮件通知。 <p>* 一个“随机选择一个东西”的页面。<a href="https:&#x2F;&#x2F;rand.bodge.app&#x2F;choose?head&amp;tails" rel="nofollow">https:&#x2F;&#x2F;rand.bodge.app&#x2F;choose?head&amp;tails</a> <p>* 一个“工作”电话号码的语音信箱,脚本将Webhook转换为对我的提醒。 <p>* 每当几个半公开的自托管服务发布新版本时,给我发送的邮件通知。 <p>* 一些公司的职位列表抓取器,每当发布符合某些筛选条件的新职位时通知我。 <p>* 一个WebPush服务器,我最终希望用来为自己发送自定义通知。 <p>* 还有一个有趣的SVG访问计数器:<a href="https:&#x2F;&#x2F;hits.bodge.link&#x2F;" rel="nofollow">https:&#x2F;&#x2F;hits.bodge.link&#x2F;</a> <p>脚本可以简单到如下: <p><pre><code> return &quot;Hello, world!&quot; </code></pre> 或者复杂到你愿意在一个Lua文件的限制内做到的程度。 <p>目前我提供的Lua模块包括:发起HTTP请求、处理JSON、发送提醒给自己、简单的字符串/字符串键/值存储、跨脚本互斥锁,以及其他一些基本功能。 <p>账户是免费的,但你甚至不需要注册一个账户就可以随意尝试编写脚本。主页上有一个演示,可以让你运行真实的脚本,不过有一些额外的限制。 <p>我很想听听大家的想法!