summaryrefslogtreecommitdiff
path: root/lib (follow)
Commit message (Collapse)AuthorAgeFilesLines
* simple graphviz visualisation of a repositorystuebinm2021-12-172-5/+27
| | | | might be useful to have
* some simple graph algorithmsstuebinm2021-12-172-67/+120
| | | | | | | | | | this just checks for maps from which it's impossible to reach `main.json`, and then gives a warning. Properly it should check if these maps have an exit to outside the repository (in which case it may give a suggestion, and an error otherwise). Also, redid some of the CheckDir code. No idea what that mess was, but it's marginally nicer now.
* fix a bug when writing things outstuebinm2021-12-161-3/+3
| | | | (it didn't check if directories to save maps in actually existed)
* special handling of world:// and assembly namesstuebinm2021-12-163-19/+41
| | | | | these now have their own top-level config attribute which is essentially a shorthand for setting one that's deeper nested.
* fixed some warnings (and disabled others)stuebinm2021-12-162-2/+2
| | | | | | | | | So far i've never found an instance of -Wname-shadowing telling me anything useful, so it's disabled now, and most of the other trivial ones are fixed. (I assume this means I'll need -Wname-shadowing in about a day or two to find some bug ...)
* fixed & removed a bunch of old TODOsstuebinm2021-12-167-32/+50
|
* "collides" can't be set on layersstuebinm2021-12-161-4/+4
|
* abort copying on missing assetsstuebinm2021-12-161-1/+3
|
* lint if tileset properties are set on the map insteadstuebinm2021-12-161-1/+5
| | | | (this seems to be a common mistake so far)
* made a partial function totalstuebinm2021-12-161-0/+2
| | | | | (shouldn't have been called anyways, but it's still nice not to have it fail if it ever does get called with that case)
* we don't support ellipsesstuebinm2021-12-162-9/+5
|
* suggest setting map meta properties if not givenstuebinm2021-12-153-5/+18
|
* deal with group layer in existence checks properlystuebinm2021-12-141-11/+20
| | | | | (before it would fail to find e.g. the start layer if it wasn't a top-level layer)
* allow scripts from https://static.rc3.world/scriptsstuebinm2021-12-141-15/+10
| | | | | The script inject doesn't do anything for now; guess I'll re-add that once we actually have a URI for that.
* downgrade disallowed path-related lint levelsstuebinm2021-12-141-3/+3
| | | | | (these were `error` before, which didn't really make sense, since workadventure can deal with them, they're just not allowed at rc3)
* audioVolumne is of type float, not intstuebinm2021-12-142-16/+43
| | | | also, float properties exist, apparently
* startLayer can actually be set to `false`stuebinm2021-12-141-3/+2
| | | | (in which case it just doesn't do anything at all)
* refuse doubled map propertiesstuebinm2021-12-131-1/+2
|
* complain if map links that don't go to .json filesstuebinm2021-12-132-6/+20
|
* add special warning for rc3 old-style linksstuebinm2021-12-132-2/+13
| | | | (the format used last year is no longer applicable to this year's event)
* changes to tiled map formatstuebinm2021-12-132-3/+8
| | | | (found by running through rc3 2021 map submissions and looking at what failed)
* downgrad mapCopyright lint to suggestionstuebinm2021-12-121-1/+1
| | | | | (as per today's discussion with tabascoeye, mapCopyright should not be required, though I've left it as recommended)
* better lints for invalid linksstuebinm2021-12-122-21/+22
|
* lints for names that are used more than twicestuebinm2021-12-121-7/+13
| | | | | (previously it would just lint "can't use name twice" multiple times, which looks kind of silly)
* handle text objects in objectgroup layersstuebinm2021-12-122-22/+37
|
* lint individual tile propertiesstuebinm2021-12-121-1/+15
|
* rudimentary linting for overlapping layersstuebinm2021-12-084-1/+65
|
* fix mapCopyright lintstuebinm2021-12-081-3/+3
| | | | | (forgot that `error` is the builtin haskell function; the one to create linter errors is called `complain`)
* properties: copyright → tilesetCopyrightstuebinm2021-12-071-2/+2
|
* require mapCopyright to be setstuebinm2021-12-071-0/+3
|
* lots of code reorganising and some deduplicationstuebinm2021-12-047-228/+286
| | | | | | | it was kinda getting messy in places. Also found some accidental isomorphisms between types, so these are now only one type because the consequences were getting silly.
* refuse doubled namesstuebinm2021-12-044-16/+52
|
* collect badges from object layersstuebinm2021-12-027-52/+229
| | | | | this includes a halfway-reasonable parsing of object layers, as well as some monad plumbing to get them all in the right place.
* do (naïve) html escapingstuebinm2021-12-022-6/+17
| | | | | | because we can't ever trust workadventure, apparently. why are we using that thing again?
* prepend jitsi room names with assembly tagstuebinm2021-11-301-2/+7
| | | | | (to prevent name clashes between assemblies; shared jitsi rooms are still possible simply by letting their names start with "shared-")
* jitsiRoomAdminTag: prepend "assembly-" before namestuebinm2021-11-301-0/+2
| | | | | (since otherwise we might run into namespace clashes for assemblies with funny names)
* allow unknown propertiesstuebinm2021-11-301-11/+2
| | | | | | since the scripting API can define new properties and we (for now) do not know what the script may or may not be able to do, the linter would otherwise reject potentially valid maps.
* rudimentary emulation of bbbRoom etc.stuebinm2021-11-301-4/+26
| | | | | | ("rudimentary" since for now the best it can do is just replacing / prepending urls; presumably, it should also do a sanity check or something of the like)
* various fixes to bugsstuebinm2021-11-285-83/+96
| | | | | | | | | | Among them - always set correct exit codes - refuse to write out files if the out path already exists - calculate the overall severity correctly - slightly changed the json output schema - also output the text output format in json - make the default config.json suitable for a production environment
* why oh why does the prelude contain unsafe functionsstuebinm2021-11-231-1/+1
| | | | some parts of haskell are really, really old …
* add a severity attribute to the json outputstuebinm2021-11-231-11/+16
|
* whoops, forgot to add a filestuebinm2021-11-201-0/+80
|
* make link adjustments configurablestuebinm2021-11-203-43/+48
| | | | | | this allows for creating custom URI "schemas" in the linter's config, which may be either allowed, prefixed, or translated according to some (domain-based) substitution.
* add domain allow- and blocklists for weblinksstuebinm2021-11-193-4/+29
| | | | | | (these use a rather crude regex for parsing, which may be possible to side-step, and which should probably be replaced by something that was actually written while following the relevant rfc)
* fix group layer handlingstuebinm2021-11-191-9/+22
| | | | we don't want to accidentally copy maps, whoopsie
* add lint for empty group layersstuebinm2021-11-191-0/+7
|
* deal with group layersstuebinm2021-11-192-9/+37
| | | | | I have no idea why these even exist, but apparently they do, so here's some code to deal with them in a hopefully useful manner …
* assorted lints for properties found in some mapsstuebinm2021-11-181-17/+56
| | | | | (mostly to do with the scripting API, but also some old ones which are already deprecated / not even mentioned in the documentation anymore)
* add warnings for as-yet unlinted layer propertiesstuebinm2021-11-171-0/+9
|
* small fixesstuebinm2021-11-171-8/+7
|