cross-posted from: https://lemmy.nz/post/4294116

I have a file with content like this:

item({
     ["attr"] = {
        ["size"] = "62091";
        ["filename"] = "qBuUP9-OTfuzibt6PQX4-g.jpg";
        ["stamp"] = "2023-12-05T19:31:37Z";
        ["xmlns"] = "urn:xmpp:http:upload:0";
        ["content-type"] = "image/jpeg";
     };
     ["key"] = "Wa4AJWFldqRZjBozponbSLRZ";
     ["with"] = "email@address";
     ["when"] = 1701804697;
     ["name"] = "request";
});

I need to know what format this is, and if there exists a tool in linux already to parse this or if I need to write one myself?

Thanks!

  • ∟⊔⊤∦∣≶OP
    link
    fedilink
    arrow-up
    5
    ·
    7 months ago

    Item is a function?

    Well actually, yeah thats kinda obvious isn’t it now I look at the whole thing.

    Thats fine, I’ll just use a bit of the old sed and json it.

    Aha I have avoided learning Lua yet again!

    • vrighter@discuss.tchncs.de
      cake
      link
      fedilink
      arrow-up
      2
      ·
      7 months ago

      the code is constructing a table, and passing it to a function called item. But if all you need is the data, you can just remove the function call and assign the table to a variable like so: local myvar = {…}.

      then you can just manipulate the table as usual.

      • ∟⊔⊤∦∣≶OP
        link
        fedilink
        arrow-up
        3
        ·
        7 months ago

        Unfortunately, this sequence is repeated many many times, so I would need to do a for-each and construct a new table for each inner section…

        There’s gotta be a better way. Time to read the source code and hijack whatever item() is doing.

      • vrighter@discuss.tchncs.de
        cake
        link
        fedilink
        arrow-up
        3
        arrow-down
        1
        ·
        7 months ago

        actually those semicolons indicate this isn’t actually lua, they are invalid in table constructors afaik