Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | util.xtemplate: Yet another string template library | Kim Alvefur | 2022-01-24 | 1 | -0/+101 |
| | | | | | | This one takes a stanza as input Roughly based on util.interpolation | ||||
* | mod_cron: Allow for a small amount of timer drift | Kim Alvefur | 2022-01-15 | 1 | -1/+1 |
| | | | | | | | | | If the timer activates a bit early then a task might be just a few seconds short of being allowed to run. This would run such a task rather than wait another hour. The value 0.5% chosen so that a weekly task does not run an entire hour earlier than last time. | ||||
* | util.datamapper: Add support for $ref pointers | Kim Alvefur | 2021-12-29 | 1 | -21/+39 |
| | | | | Allows reuse of repetitive definitions in schemas. | ||||
* | util.jsonschema: Add support for $ref pointers | Kim Alvefur | 2021-12-29 | 1 | -23/+37 |
| | |||||
* | util.jsonpointer: Resolve JSON Pointers per RFC 6901 | Kim Alvefur | 2021-12-29 | 1 | -0/+46 |
| | |||||
* | util.smqueue: Simplify compat table, fix dependent modules (thanks Martin) | Kim Alvefur | 2021-12-16 | 1 | -15/+6 |
| | | | | | | There was an off-by-one in the modulo calculation. Switching to a plain old array-table makes the apparent size of the queue wrong, but since some of the queue may not be available this is likely for the best. | ||||
* | util.smqueue: Add missing method to Teal record spec | Kim Alvefur | 2021-12-16 | 1 | -1/+2 |
| | |||||
* | util.smqueue: Abstract queue with acknowledgements and overflow | Kim Alvefur | 2021-12-14 | 1 | -0/+107 |
| | | | | | | | | Meant to be used in mod_smacks for XEP-0198 Meant to have a larger virtual size than actual number of items stored, on the theory that in most cases, the excess will be acked before needed for a resumption event. | ||||
* | mod_cron: Add a 'weekly' job frequency | Kim Alvefur | 2021-12-03 | 1 | -1/+2 |
| | |||||
* | mod_cron: Initialize timestamp of new tasks to start of period | Kim Alvefur | 2021-12-03 | 1 | -3/+3 |
| | | | | | Makes it more generic so new periods (e.g. weekly etc) can be added easily. | ||||
* | mod_cron: Follow convention of imports at the top | Kim Alvefur | 2021-12-03 | 1 | -1/+2 |
| | |||||
* | mod_cron: Initialize daily tasks so they run around midnight UTC | Kim Alvefur | 2021-12-03 | 1 | -0/+5 |
| | | | | | | Eventually the goal is to have daily tasks run while there is little activity, but that will vary with the server and the usage patterns of its users. This is a start anyway. | ||||
* | mod_cron: Initial commit of periodic task runner | Kim Alvefur | 2021-11-21 | 1 | -0/+98 |
| | | | | | | A number of modules now have periodic tasks that need to run, e.g. for cleaning out old messages or files. This has highlighted a need for coordinating and optimizing scheduling of such tasks. | ||||
* | teal: Describe the module API interface | Kim Alvefur | 2021-03-24 | 1 | -0/+145 |
| | | | | Helps when writing modules in Teal | ||||
* | util.pposix: Bind isatty(3) | Kim Alvefur | 2021-07-04 | 1 | -0/+2 |
| | | | | | Useful for disabling certain behavior, ANSI colors etc when not connected to a terminal. | ||||
* | util.stanza: Export pretty printing function | Kim Alvefur | 2021-06-29 | 1 | -0/+1 |
| | |||||
* | teal: Add type spec for util.signal | Kim Alvefur | 2021-05-20 | 1 | -0/+41 |
| | |||||
* | teal: Add type spec for util.ringbuffer | Kim Alvefur | 2021-05-20 | 1 | -0/+20 |
| | |||||
* | teal: Describe util.net.local_addresses() return type | Kim Alvefur | 2021-05-20 | 1 | -1/+1 |
| | |||||
* | teal: Add new util.hashes APIs | Kim Alvefur | 2021-05-20 | 1 | -0/+2 |
| | |||||
* | util.datamapper: Don't include empty unwrapped arrays | Kim Alvefur | 2021-03-24 | 1 | -1/+4 |
| | | | | | | Since there is no way to distinguish an empty such array from a zero-length array. Dropping it seems like the least annoying thing to do. | ||||
* | util.datamapper: Fix error on attempt to coerce nil to something | Kim Alvefur | 2021-03-23 | 1 | -0/+1 |
| | | | | | | Turns falsy values into nil instead of nothing, which ensures this function always has 1 return value, or table.insert({}) complains. Would still happen on some unexpected input, but that's actually a good thing. | ||||
* | util.datamapper: Deal with locally built stanzas missing xmlns | Kim Alvefur | 2021-03-23 | 1 | -5/+5 |
| | | | | | | | | | | | | | | | | | | | | | So the problem is that xmlns is not inherited when building a stanza, and then :get_child(n, ns) with an explicit namespace does not find that such child tags. E.g. local t = st.stanza("foo", { xmlns = "urn:example:bar" }) :text_tag("hello", "world"); assert(t:get_child("hello", "urn:example:bar"), "This fails"); Meanwhile, during parsing (util.xmppstream or util.xml) child tags do get the parents xmlns when not overriding them. Thus, in the above example, if the stanza is passed trough `t = util.xml.parse(tostring(t))` then the assert succeeds. This change makes it so that it leaves out the namespace argument to :get_child when it is the same as the current/parent namespace, which behaves the same for both built and parsed stanzas. | ||||
* | util.datamapper: Factor out conversion from any value to XML string | Kim Alvefur | 2021-03-22 | 1 | -29/+17 |
| | | | | Since this was the last severely duplicated code left. | ||||
* | util.datamapper: Handle nested arrays or objects in arrays | Kim Alvefur | 2021-03-22 | 1 | -4/+22 |
| | |||||
* | util.datamapper: Fix to skip parsing wrapped arrays that aren't there | Kim Alvefur | 2021-03-22 | 1 | -2/+0 |
| | | | | Turns out the unreachable error is reachable :D | ||||
* | util.datamapper: Clear done TODO (arrays) | Kim Alvefur | 2021-03-21 | 1 | -1/+0 |
| | | | | | | | | | Relevant commits: * 6a51749af7f4 * 0e00fa518688 * d1982b7eb00d * c098d07e6717 * 348b191cd850 | ||||
* | util.datamapper: Complete array building support | Kim Alvefur | 2021-03-20 | 1 | -12/+3 |
| | |||||
* | util.datamapper: Factor out handling of object properties for array reuse | Kim Alvefur | 2021-03-20 | 1 | -79/+82 |
| | |||||
* | util.datamapper: Finally implement support for parsing arrays | Kim Alvefur | 2021-03-20 | 1 | -17/+13 |
| | |||||
* | util.datamapper: Factor out extraction of the XML part to use | Kim Alvefur | 2021-03-20 | 1 | -40/+42 |
| | | | | | | | | So extract_value() takes an XML tag and details about which part we're interested in and returns that. Factoring this out will help with array implementation since this will be common behavior. | ||||
* | util.datamapper: Only get element name if there's an element | Kim Alvefur | 2021-03-19 | 1 | -1/+3 |
| | | | | Fixes error due to attempting to index a nil value | ||||
* | util.datamapper: Fix arrays nesting one level too deep | Kim Alvefur | 2021-03-19 | 1 | -9/+7 |
| | |||||
* | util.datamapper: Deal with type name changes in util.jsonschema | Kim Alvefur | 2021-03-19 | 1 | -29/+33 |
| | |||||
* | util.jsonschema: Rename types for improved readability | Kim Alvefur | 2021-03-18 | 2 | -27/+44 |
| | |||||
* | teal: Use new integer support in Teal 0.13.0 | Kim Alvefur | 2021-03-18 | 14 | -53/+57 |
| | |||||
* | util.datamapper: Limited support for unparsing simple arrays of strings | Kim Alvefur | 2021-03-18 | 1 | -2/+32 |
| | |||||
* | util.datamapper: Add initial support for parsing arrays | Kim Alvefur | 2021-03-18 | 1 | -9/+47 |
| | |||||
* | util.datamapper: Factor out common schema unpacking | Kim Alvefur | 2021-03-14 | 1 | -83/+57 |
| | | | | | This code extracts the bits from the schema that determines how the data is to be mapped to/from XML. | ||||
* | util.datamapper: Separate extraction of xml from coercion to target type | Kim Alvefur | 2021-03-14 | 1 | -34/+28 |
| | | | | | | Now it gets the text, attribute or name first, then turns it into whatever the schema wants. This should be easier to further factor out into preparation for array support. | ||||
* | util.datamapper: Use enum instead of mutually exclusive booleans | Kim Alvefur | 2021-03-14 | 1 | -20/+27 |
| | | | | Cleaner and rules out invalid combinations. | ||||
* | util.datamapper: Enumerated elements | Kim Alvefur | 2021-03-12 | 1 | -1/+20 |
| | | | | E.g. error conditions or chat states. | ||||
* | util.datamapper: Some TODOs | Kim Alvefur | 2021-03-10 | 1 | -0/+4 |
| | |||||
* | util.datamapper: Add references with notes | Kim Alvefur | 2021-03-10 | 1 | -0/+14 |
| | |||||
* | util.datamapper: Add Copyright header | Kim Alvefur | 2021-03-10 | 1 | -0/+6 |
| | |||||
* | util.jsonschema: Add copyright-header | Kim Alvefur | 2021-03-10 | 1 | -0/+9 |
| | |||||
* | util.jsonschema: Restructure "type" keyword handling | Kim Alvefur | 2021-03-09 | 1 | -9/+10 |
| | | | | More in line with the other tests | ||||
* | util.jsonschema: Syntax tweak to not upset syntax highlighting | Kim Alvefur | 2021-03-09 | 1 | -2/+2 |
| | | | | | That whole condition stanza was shown as angry red, I think it's something with 'enum' being a key word in Teal. | ||||
* | util.jsonschema: Implement "propertyNames" | Kim Alvefur | 2021-03-09 | 1 | -0/+7 |
| | | | | This is a bit special in Lua as tables are not limited to string keys | ||||
* | util.jsonschema: Restructure handling of "properties" and "additionalProperties" | Kim Alvefur | 2021-03-09 | 1 | -22/+8 |
| | | | | This is a bit cleaner, I think |