Download (19 KB)

How do I install this?

Nodes #

HTTPblock #

The HTTPBlock takes in a digilines message containing a URL and then returns the content of it.

digiline_send("httpblock", "http://example.com/textfile.txt")

will return somthing like this:


<!doctype html>
<html>
<body>
<div>
    <h1>Example Domain</h1>
    <p>This domain is for use in illustrative examples in documents. You may use this
    domain in literature without prior coordination or asking for permission.</p>
    <p><a href="https://www.iana.org/domains/example">More information...</a></p>
</div>
</body>
</html>

This is a script which returns raw HTML and sends it to a processing block:

if event.type ==  "on" or event.type == "program" then
    digiline_send("httpblock", "http://example.com")
end

if event.type == "digiline" and event.channel == "lol" then
    digiline_send("processor", event.msg)
end

Selector #

Note This node is not usable; Implementation is mostly done except the actual selecting bit.

The selector takes in HTML and a selector:

digiline_send([[
    <li id='breaking'>Breaking: The server enables the HTTPBlock mod, making the world an IOT device!</li>
    <li>The boring player does yet another thing</li>
    <li id='breaking'>The server goes into recession. Sell your houses before they become worthless!</li>}},
    "#breaking"
)

To those familiar with Jquery, this returns the same text as $("#breaking").html() would.

You will then recieve a table which contains the contents of all HTML elements which match:

{
    "Breaking: The server enables the HTTPBlock mod, making the world an IOT device!",
    "Breaking: The server goes into recession. Sell your houses before they become worthless!"
}

Poster #

Send a table containing the URL and data to post:

digiline_send("poster", {
    url = "thing.com",
    data = "stuff"
})

When the post request is done, you will recieve the error code. If it's not 200, something's gone wrong. ContentDB

Installation/Setup/Set Up #

Install like any other mod, but ensure you add this mod to trusted mods or Minetest probably won't let you send HTTP requests.

Roadmap #

Currently, the mod only contains the httpblock:httpblock. However, there are plans for more complicated blocks now that the Minetest interfacing code is mostly done:

Here are the ones which are 75% the way there but need a little more effort to become stable:

  • HTML Query block - give it table containing HTML and a query (like #id or .class), and it will return the contents of all elements matching the query. (i am currently working on this as we speak)
  • HTTP Posters - sends a post request

And here are the hypothetical ones:

  • JSON converters - turns JSON into a lua table for use later
  • Image-shower - Takes in images and turns them into a format suitable for use with the digilines screen

There are also plans for a web-based service to allow Minetest to interface with, allowing for admins to have an API to interface with scripts. For example, the server wiki might have a script scraping the first news item and sending it to endpoint 127.0.0.1/news.txt for the mod to send to LCD screens across the server.

In any case, if i don't make these before 2023-10-01, feel free to make them yourself.

Credits #

The code and textures are a lightly modified version of the digilines RTC - credit to the devs!

Beurocracy #

The license for the code is LGPL and the license for the image is CC0.

Reviews

Review

Do you recommend this mod?

  • No reviews, yet.