From f29dca93e6629fab814db28a1b2d506411dc1713 Mon Sep 17 00:00:00 2001 From: August Johnson Date: Tue, 8 Oct 2024 08:01:06 -0500 Subject: [PATCH] ruleset to gamesystem --- CONTRIBUTING.md | 2 +- README.md | 2 +- api_v2/management/commands/export.py | 6 +++--- api_v2/migrations/0001_initial.py | 6 +++--- api_v2/models/creature.py | 2 +- api_v2/models/document.py | 4 ++-- api_v2/tests/test_router.py | 2 +- api_v2/views/ability.py | 4 ++-- api_v2/views/alignment.py | 2 +- api_v2/views/background.py | 2 +- api_v2/views/characterclass.py | 2 +- api_v2/views/condition.py | 2 +- api_v2/views/creature.py | 6 +++--- api_v2/views/damagetype.py | 2 +- api_v2/views/document.py | 4 ++-- api_v2/views/environment.py | 2 +- api_v2/views/feat.py | 2 +- api_v2/views/item.py | 8 ++++---- api_v2/views/language.py | 2 +- api_v2/views/race.py | 2 +- api_v2/views/size.py | 2 +- api_v2/views/spell.py | 2 +- data/v2/GameSystem.json | 4 ++-- data/v2/en-publishing/a5e-ag/Document.json | 2 +- data/v2/en-publishing/a5e-ddg/Document.json | 2 +- data/v2/en-publishing/a5e-gpg/Document.json | 2 +- data/v2/en-publishing/mmenag/Document.json | 2 +- data/v2/green-ronin/tdcs/Document.json | 2 +- data/v2/kobold-press/bfrd/Document.json | 2 +- data/v2/kobold-press/ccdx/Document.json | 2 +- data/v2/kobold-press/deepm/Document.json | 2 +- data/v2/kobold-press/deepmx/Document.json | 2 +- data/v2/kobold-press/kp/Document.json | 2 +- data/v2/kobold-press/tob-2023/Document.json | 2 +- data/v2/kobold-press/tob/Document.json | 2 +- data/v2/kobold-press/tob2/Document.json | 2 +- data/v2/kobold-press/tob3/Document.json | 2 +- data/v2/kobold-press/toh/Document.json | 2 +- data/v2/kobold-press/vom/Document.json | 2 +- data/v2/kobold-press/wz/Document.json | 2 +- data/v2/open5e/open5e/Document.json | 2 +- data/v2/wizards-of-the-coast/srd/Document.json | 2 +- docs/v2/data.md | 2 +- server/urls.py | 2 +- 44 files changed, 57 insertions(+), 57 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d3f9bdea..37826ba3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -79,7 +79,7 @@ it with the content you add. create a new one. - `Publisher`: The publisher of the source. Select one of the available publishers. If the publisher is not available, create a new one. -- `GameSystem`: The ruleset the source is associated with. Select one of the available rulesets. If the ruleset is not available, +- `GameSystem`: The gamesystem the source is associated with. Select one of the available gamesystems. If the gamesystem is not available, create a new one. - `Author`: The author of the source. This can be a single author or a list of authors. List them in the format `Author 1, Author 2, Author 3`. - `Published at`: The Date and Time the source was published. Select the date it was published on. The time can be set to 00:00:00. diff --git a/README.md b/README.md index e789185c..ec24fe40 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@

https://open5e.com
- A JSON API for the D&D 5e ruleset + A JSON API for the D&D 5e gamesystem


diff --git a/api_v2/management/commands/export.py b/api_v2/management/commands/export.py index 6f5dc963..3d6914e0 100644 --- a/api_v2/management/commands/export.py +++ b/api_v2/management/commands/export.py @@ -83,13 +83,13 @@ def handle(self, *args, **options) -> None: self.stdout.write(self.style.SUCCESS('Data for v1 data complete.')) # Start V2 output. - rulesets = GameSystem.objects.all() - ruleset_path = get_filepath_by_model( + gamesystems = GameSystem.objects.all() + gamesystem_path = get_filepath_by_model( 'GameSystem', 'api_v2', base_path=options['dir'], format=options['format']) - write_queryset_data(ruleset_path, rulesets, format=options['format']) + write_queryset_data(gamesystem_path, gamesystems, format=options['format']) license_path = get_filepath_by_model( 'License', diff --git a/api_v2/migrations/0001_initial.py b/api_v2/migrations/0001_initial.py index f1ece946..ff61a4b8 100644 --- a/api_v2/migrations/0001_initial.py +++ b/api_v2/migrations/0001_initial.py @@ -99,7 +99,7 @@ class Migration(migrations.Migration): fields=[ ('name', models.CharField(help_text='Name of the item.', max_length=100)), ('desc', models.TextField(help_text='Description of the game content item. Markdown.')), - ('key', models.CharField(help_text='Unique key for the ruleset the document was published for.', max_length=100, primary_key=True, serialize=False)), + ('key', models.CharField(help_text='Unique key for the gamesystem the document was published for.', max_length=100, primary_key=True, serialize=False)), ('content_prefix', models.CharField(blank=True, help_text='Short code prepended to content keys.', max_length=10)), ], options={ @@ -533,8 +533,8 @@ class Migration(migrations.Migration): ), migrations.AddField( model_name='document', - name='ruleset', - field=models.ForeignKey(help_text="The document's game system that it was published for.", on_delete=django.db.models.deletion.CASCADE, to='api_v2.ruleset'), + name='gamesystem', + field=models.ForeignKey(help_text="The document's game system that it was published for.", on_delete=django.db.models.deletion.CASCADE, to='api_v2.gamesystem'), ), migrations.CreateModel( name='Size', diff --git a/api_v2/models/creature.py b/api_v2/models/creature.py index 3487ca6f..526cfa77 100644 --- a/api_v2/models/creature.py +++ b/api_v2/models/creature.py @@ -23,7 +23,7 @@ class CreatureType(HasName, HasDescription, FromDocument): class Creature(Object, HasAbilities, HasSenses, HasLanguage, HasSpeed, FromDocument): """ - This is the model for a Creature, per the 5e ruleset. + This is the model for a Creature, per the 5e gamesystem. This extends the object and abilities models. """ diff --git a/api_v2/models/document.py b/api_v2/models/document.py index 76968e60..d93f80f8 100644 --- a/api_v2/models/document.py +++ b/api_v2/models/document.py @@ -21,7 +21,7 @@ class Document(HasName, HasDescription): on_delete=models.CASCADE, help_text="Publisher which has written the game content document.") - ruleset = models.ForeignKey( + gamesystem = models.ForeignKey( "GameSystem", on_delete=models.CASCADE, help_text="The document's game system that it was published for." @@ -107,7 +107,7 @@ class GameSystem(HasName, HasDescription): key = models.CharField( primary_key=True, max_length=100, - help_text="Unique key for the ruleset the document was published for." + help_text="Unique key for the gamesystem the document was published for." ) content_prefix = models.CharField( diff --git a/api_v2/tests/test_router.py b/api_v2/tests/test_router.py index 78f3bb01..680c19c9 100644 --- a/api_v2/tests/test_router.py +++ b/api_v2/tests/test_router.py @@ -28,7 +28,7 @@ def test_get_root_list(self): self.assertContains(response, 'documents', count=2) self.assertContains(response, 'publishers', count=2) self.assertContains(response, 'licenses', count=2) - self.assertContains(response, 'rulesets', count=2) + self.assertContains(response, 'gamesystems', count=2) self.assertContains(response, 'items', count=4) #include itemsets self.assertContains(response, 'itemsets', count=2) self.assertContains(response, 'weapons', count=2) diff --git a/api_v2/views/ability.py b/api_v2/views/ability.py index c3155a7a..66b52a79 100644 --- a/api_v2/views/ability.py +++ b/api_v2/views/ability.py @@ -13,7 +13,7 @@ class Meta: 'key': ['in', 'iexact', 'exact' ], 'name': ['iexact', 'exact','contains'], 'document__key': ['in','iexact','exact'], - 'document__ruleset__key': ['in','iexact','exact'], + 'document__gamesystem__key': ['in','iexact','exact'], } class AbilityViewSet(viewsets.ReadOnlyModelViewSet): @@ -33,7 +33,7 @@ class Meta: 'key': ['in', 'iexact', 'exact' ], 'name': ['iexact', 'exact','contains'], 'document__key': ['in','iexact','exact'], - 'document__ruleset__key': ['in','iexact','exact'], + 'document__gamesystem__key': ['in','iexact','exact'], } diff --git a/api_v2/views/alignment.py b/api_v2/views/alignment.py index bb79d01e..77fa334d 100644 --- a/api_v2/views/alignment.py +++ b/api_v2/views/alignment.py @@ -13,7 +13,7 @@ class Meta: 'key': ['in', 'iexact', 'exact' ], 'name': ['iexact', 'exact','contains'], 'document__key': ['in','iexact','exact'], - 'document__ruleset__key': ['in','iexact','exact'], + 'document__gamesystem__key': ['in','iexact','exact'], } class AlignmentViewSet(viewsets.ReadOnlyModelViewSet): diff --git a/api_v2/views/background.py b/api_v2/views/background.py index ab1428f8..3dfb830e 100644 --- a/api_v2/views/background.py +++ b/api_v2/views/background.py @@ -14,7 +14,7 @@ class Meta: 'key': ['in', 'iexact', 'exact'], 'name': ['iexact', 'exact'], 'document__key': ['in', 'iexact', 'exact'], - 'document__ruleset__key': ['in','iexact','exact'], + 'document__gamesystem__key': ['in','iexact','exact'], } diff --git a/api_v2/views/characterclass.py b/api_v2/views/characterclass.py index 76ff0163..bee3fc17 100644 --- a/api_v2/views/characterclass.py +++ b/api_v2/views/characterclass.py @@ -17,7 +17,7 @@ class Meta: 'key': ['in', 'iexact', 'exact' ], 'name': ['iexact', 'exact','contains'], 'document__key': ['in','iexact','exact'], - 'document__ruleset__key': ['in','iexact','exact'], + 'document__gamesystem__key': ['in','iexact','exact'], 'subclass_of': ['exact'] } diff --git a/api_v2/views/condition.py b/api_v2/views/condition.py index 63f357fc..7bef9322 100644 --- a/api_v2/views/condition.py +++ b/api_v2/views/condition.py @@ -13,7 +13,7 @@ class Meta: 'key': ['in', 'iexact', 'exact' ], 'name': ['iexact', 'exact','contains'], 'document__key': ['in','iexact','exact'], - 'document__ruleset__key': ['in','iexact','exact'], + 'document__gamesystem__key': ['in','iexact','exact'], } diff --git a/api_v2/views/creature.py b/api_v2/views/creature.py index c02e6da8..5234ddc7 100644 --- a/api_v2/views/creature.py +++ b/api_v2/views/creature.py @@ -15,7 +15,7 @@ class Meta: 'key': ['in', 'iexact', 'exact' ], 'name': ['iexact', 'exact', 'icontains'], 'document__key': ['in','iexact','exact'], - 'document__ruleset__key': ['in','iexact','exact'], + 'document__gamesystem__key': ['in','iexact','exact'], 'size': ['exact'], 'category': ['exact', 'iexact'], 'subcategory': ['exact', 'iexact'], @@ -73,7 +73,7 @@ class Meta: 'key': ['in', 'iexact', 'exact' ], 'name': ['iexact', 'exact','contains'], 'document__key': ['in','iexact','exact'], - 'document__ruleset__key': ['in','iexact','exact'], + 'document__gamesystem__key': ['in','iexact','exact'], } @@ -94,7 +94,7 @@ class Meta: 'key': ['in', 'iexact', 'exact' ], 'name': ['iexact', 'exact','contains'], 'document__key': ['in','iexact','exact'], - 'document__ruleset__key': ['in','iexact','exact'], + 'document__gamesystem__key': ['in','iexact','exact'], } diff --git a/api_v2/views/damagetype.py b/api_v2/views/damagetype.py index e477a1e2..89865441 100644 --- a/api_v2/views/damagetype.py +++ b/api_v2/views/damagetype.py @@ -13,7 +13,7 @@ class Meta: 'key': ['in', 'iexact', 'exact' ], 'name': ['iexact', 'exact','contains'], 'document__key': ['in','iexact','exact'], - 'document__ruleset__key': ['in','iexact','exact'], + 'document__gamesystem__key': ['in','iexact','exact'], } diff --git a/api_v2/views/document.py b/api_v2/views/document.py index 73eb3c64..3d7bb133 100644 --- a/api_v2/views/document.py +++ b/api_v2/views/document.py @@ -10,9 +10,9 @@ class GameSystemViewSet(viewsets.ReadOnlyModelViewSet): """" - list: API Endpoint for returning a set of rulesets. + list: API Endpoint for returning a set of gamesystems. - retrieve: API endpoint for return a particular ruleset. + retrieve: API endpoint for return a particular gamesystem. """ queryset = models.GameSystem.objects.all().order_by('pk') serializer_class = serializers.GameSystemSerializer diff --git a/api_v2/views/environment.py b/api_v2/views/environment.py index b41f5174..83f83f8e 100644 --- a/api_v2/views/environment.py +++ b/api_v2/views/environment.py @@ -15,7 +15,7 @@ class Meta: 'key': ['in', 'iexact', 'exact' ], 'name': ['iexact', 'exact','contains'], 'document__key': ['in','iexact','exact'], - 'document__ruleset__key': ['in','iexact','exact'], + 'document__gamesystem__key': ['in','iexact','exact'], } diff --git a/api_v2/views/feat.py b/api_v2/views/feat.py index bf80a5a9..4a24e69c 100644 --- a/api_v2/views/feat.py +++ b/api_v2/views/feat.py @@ -13,7 +13,7 @@ class Meta: 'key': ['in', 'iexact', 'exact' ], 'name': ['iexact', 'exact'], 'document__key': ['in','iexact','exact'], - 'document__ruleset__key': ['in','iexact','exact'], + 'document__gamesystem__key': ['in','iexact','exact'], } diff --git a/api_v2/views/item.py b/api_v2/views/item.py index fecb3f3d..a881599c 100644 --- a/api_v2/views/item.py +++ b/api_v2/views/item.py @@ -22,7 +22,7 @@ class Meta: 'requires_attunement': ['exact'], 'category': ['in', 'exact'], 'document__key': ['in','iexact','exact'], - 'document__ruleset__key': ['in','iexact','exact'], + 'document__gamesystem__key': ['in','iexact','exact'], } @@ -56,7 +56,7 @@ class Meta: 'key': ['in', 'iexact', 'exact' ], 'name': ['iexact', 'exact'], 'document__key': ['in','iexact','exact'], - 'document__ruleset__key': ['in','iexact','exact'], + 'document__gamesystem__key': ['in','iexact','exact'], } @@ -89,7 +89,7 @@ class Meta: 'key': ['in', 'iexact', 'exact' ], 'name': ['iexact', 'exact'], 'document__key': ['in','iexact','exact'], - 'document__ruleset__key': ['in','iexact','exact'], + 'document__gamesystem__key': ['in','iexact','exact'], 'damage_dice': ['in','iexact','exact'], 'versatile_dice': ['in','iexact','exact'], 'range_reach': ['exact','lt','lte','gt','gte'], @@ -127,7 +127,7 @@ class Meta: 'key': ['in', 'iexact', 'exact' ], 'name': ['iexact', 'exact'], 'document__key': ['in','iexact','exact'], - 'document__ruleset__key': ['in','iexact','exact'], + 'document__gamesystem__key': ['in','iexact','exact'], 'grants_stealth_disadvantage': ['exact'], 'strength_score_required': ['exact','lt','lte','gt','gte'], 'ac_base': ['exact','lt','lte','gt','gte'], diff --git a/api_v2/views/language.py b/api_v2/views/language.py index 40402511..19e57fc4 100644 --- a/api_v2/views/language.py +++ b/api_v2/views/language.py @@ -13,7 +13,7 @@ class Meta: 'key': ['in', 'iexact', 'exact' ], 'name': ['iexact', 'exact'], 'document__key': ['in','iexact','exact'], - 'document__ruleset__key': ['in','iexact','exact'], + 'document__gamesystem__key': ['in','iexact','exact'], 'is_exotic': ['exact'], 'is_secret': ['exact'] } diff --git a/api_v2/views/race.py b/api_v2/views/race.py index edc3e93c..0d3bf4a5 100644 --- a/api_v2/views/race.py +++ b/api_v2/views/race.py @@ -13,7 +13,7 @@ class Meta: 'key': ['in', 'iexact', 'exact'], 'name': ['iexact', 'exact'], 'document__key': ['in', 'iexact', 'exact'], - 'document__ruleset__key': ['in','iexact','exact'], + 'document__gamesystem__key': ['in','iexact','exact'], 'subrace_of': ['isnull'], 'subrace_of__key':['in', 'iexact', 'exact'], } diff --git a/api_v2/views/size.py b/api_v2/views/size.py index a20bad26..9bba509a 100644 --- a/api_v2/views/size.py +++ b/api_v2/views/size.py @@ -13,7 +13,7 @@ class Meta: 'key': ['in', 'iexact', 'exact' ], 'name': ['iexact', 'exact','contains'], 'document__key': ['in','iexact','exact'], - 'document__ruleset__key': ['in','iexact','exact'], + 'document__gamesystem__key': ['in','iexact','exact'], } diff --git a/api_v2/views/spell.py b/api_v2/views/spell.py index 012744ae..8aa46ea8 100644 --- a/api_v2/views/spell.py +++ b/api_v2/views/spell.py @@ -13,7 +13,7 @@ class Meta: 'key': ['in', 'iexact', 'exact'], 'name': ['iexact', 'exact', 'contains', 'icontains'], 'document__key': ['in', 'iexact', 'exact'], - 'document__ruleset__key': ['in', 'iexact', 'exact'], + 'document__gamesystem__key': ['in', 'iexact', 'exact'], 'classes__key': ['in', 'iexact', 'exact'], 'classes__name': ['in'], 'level': ['exact', 'range', 'gt', 'gte', 'lt', 'lte'], diff --git a/data/v2/GameSystem.json b/data/v2/GameSystem.json index 0db0c774..a55780ad 100644 --- a/data/v2/GameSystem.json +++ b/data/v2/GameSystem.json @@ -1,6 +1,6 @@ [ { - "model": "api_v2.ruleset", + "model": "api_v2.gamesystem", "pk": "o5e", "fields": { "name": "5th Edition", @@ -9,7 +9,7 @@ } }, { - "model": "api_v2.ruleset", + "model": "api_v2.gamesystem", "pk": "a5e", "fields": { "name": "Advanced 5th Edition", diff --git a/data/v2/en-publishing/a5e-ag/Document.json b/data/v2/en-publishing/a5e-ag/Document.json index 8848ea00..2dd504ad 100644 --- a/data/v2/en-publishing/a5e-ag/Document.json +++ b/data/v2/en-publishing/a5e-ag/Document.json @@ -6,7 +6,7 @@ "name": "Adventurer's Guide", "desc": "In this guide to Level Up, the advanced roleplaying game, you will find everything you need to play. Create diverse and unique heroes, engage in epic combat with villainous foes, cast powerful spells, and build mighty strongholds!", "publisher": "en-publishing", - "ruleset": "a5e", + "gamesystem": "a5e", "author": "EN Publishing", "published_at": "2021-11-01T00:00:00", "permalink": "https://a5esrd.com/a5esrd", diff --git a/data/v2/en-publishing/a5e-ddg/Document.json b/data/v2/en-publishing/a5e-ddg/Document.json index 599c74a5..872e0cda 100644 --- a/data/v2/en-publishing/a5e-ddg/Document.json +++ b/data/v2/en-publishing/a5e-ddg/Document.json @@ -6,7 +6,7 @@ "name": "Dungeon Delver’s Guide", "desc": "The Dungeon Delver's Guide is a resource for Narrators that want to create compelling and deadly mazes and lairs, and adventurers who want to venture below and return to the surface alive.", "publisher": "en-publishing", - "ruleset": "a5e", + "gamesystem": "a5e", "author": "EN Publishing", "published_at": "2023-10-03T00:00:00", "permalink": "https://a5esrd.com/a5esrd", diff --git a/data/v2/en-publishing/a5e-gpg/Document.json b/data/v2/en-publishing/a5e-gpg/Document.json index 783f7e69..2ec0d0bd 100644 --- a/data/v2/en-publishing/a5e-gpg/Document.json +++ b/data/v2/en-publishing/a5e-gpg/Document.json @@ -6,7 +6,7 @@ "name": "Gate Pass Gazette", "desc": "The Gate Pass Gazette is the official monthly magazine for Level Up: Advanced 5th Edition. You can subscribe to it on Patreon. The content below includes mechanical elements of the magazine, but not the full text or context of the articles.\r\n\r\nThe first issue (which we called Issue #0) of the Gate Pass Gazette included the artificer class, lycanthropy rules, the construct heritage, and the jabberwock monster. We release an issue every month, including new heritages, archetypes, monsters, magic items, and much much more.", "publisher": "en-publishing", - "ruleset": "a5e", + "gamesystem": "a5e", "author": "EN Publishing", "published_at": "2022-01-01T00:00:00", "permalink": "https://a5esrd.com/a5esrd", diff --git a/data/v2/en-publishing/mmenag/Document.json b/data/v2/en-publishing/mmenag/Document.json index 703d528c..8c76acb5 100644 --- a/data/v2/en-publishing/mmenag/Document.json +++ b/data/v2/en-publishing/mmenag/Document.json @@ -6,7 +6,7 @@ "name": "Monstrous Menagerie", "desc": "The Monstrous Menagerie provides nearly 600 monsters, variants, monster templates, and hordes for your Level Up: Advanced 5th Edition game. Populate your game world with classic monsters ranging from the lowly stirge to the terrifying tarrasque, along with new horrors like the khalkos and the phase monster. Challenge even the mightiest adventurers with elite monsters like great wyrm dragons and the Medusa Queen. Use simple templates to create new monsters like zombie sea serpents and merfolk alchemists. Overwhelm opposition with stat blocks representing hordes of guards, skeletons, or demons.", "publisher": "en-publishing", - "ruleset": "a5e", + "gamesystem": "a5e", "author": "Paul Hughes", "published_at": "2021-12-12T00:00:00", "permalink": "https://enpublishingrpg.com/collections/level-up-advanced-5th-edition-a5e/products/level-up-monstrous-menagerie-a5e", diff --git a/data/v2/green-ronin/tdcs/Document.json b/data/v2/green-ronin/tdcs/Document.json index 49daea95..c5695019 100644 --- a/data/v2/green-ronin/tdcs/Document.json +++ b/data/v2/green-ronin/tdcs/Document.json @@ -6,7 +6,7 @@ "name": "Tal'dorei Campaign Setting", "desc": "Critical Role: Tal'Dorei Campaign Setting is a sourcebook that details the continent of Tal'Dorei from the Critical Role campaign setting for the 5th edition of the Dungeons & Dragons fantasy role-playing game. It was published by Green Ronin Publishing and released on August 17, 2017.", "publisher": "green-ronin", - "ruleset": "o5e", + "gamesystem": "o5e", "author": "Matthew Mercer, James Haeck", "published_at": "2017-08-17T00:00:00", "permalink": "https://en.wikipedia.org/wiki/Critical_Role%3A_Tal'Dorei_Campaign_Setting", diff --git a/data/v2/kobold-press/bfrd/Document.json b/data/v2/kobold-press/bfrd/Document.json index 9aba61f8..ce633b4b 100644 --- a/data/v2/kobold-press/bfrd/Document.json +++ b/data/v2/kobold-press/bfrd/Document.json @@ -6,7 +6,7 @@ "name": "Black Flag SRD", "desc": "Black Flag Roleplaying Reference Document v0.2", "publisher": "kobold-press", - "ruleset": "o5e", + "gamesystem": "o5e", "author": "Open Design LLC d/b/a Kobold Press", "published_at": "2023-10-16T00:00:00", "permalink": "https://koboldpress.com/black-flag-reference-document/", diff --git a/data/v2/kobold-press/ccdx/Document.json b/data/v2/kobold-press/ccdx/Document.json index c4cbcece..8647103b 100644 --- a/data/v2/kobold-press/ccdx/Document.json +++ b/data/v2/kobold-press/ccdx/Document.json @@ -6,7 +6,7 @@ "name": "Creature Codex", "desc": "Whether you need scuttling dungeon denizens, alien horrors, or sentient avatars of the World Tree, the Creature Codex has you covered! Nearly 400 new foes for your 5th Edition game—everything from acid ants and grave behemoths to void giants and zombie lords.\r\n\r\nThe 424 PAGES OF THE CREATURE CODEX INCLUDE:\r\n\r\n A dozen new demons and five new angels\r\n Wasteland dragons and dinosaurs\r\n All-new golems, including the altar flame golem, doom golem, and keg golem\r\n Elemental lords and animal lords to challenge powerful parties\r\n Chieftains and other leaders for ratfolk, centaurs, goblins, trollkin, and more\r\n New undead, including a heirophant lich to menace lower-level characters\r\n\r\n…and much more! Use them in your favorite published setting, or populate the dungeons in a world of your own creation. Pick up Creature Codex and surprise your players with monsters they won’t be expecting!\r\n\r\nCOMPATIBLE WITH THE 5TH EDITION OF THE WORLD’S FIRST ROLEPLAYING GAME!", "publisher": "kobold-press", - "ruleset": "o5e", + "gamesystem": "o5e", "author": "Wolfgang Baur, Dan Dillon, Richard Green, James Haeck, Chris Harris, Jeremy Hochhalter, James Introcaso, Chris Lockey, Shawn Merwin, and Jon Sawatsky", "published_at": "2018-06-01T00:00:00", "permalink": "https://koboldpress.com/kpstore/product/creature-codex-for-5th-edition-dnd/", diff --git a/data/v2/kobold-press/deepm/Document.json b/data/v2/kobold-press/deepm/Document.json index 0dc36c34..19ed2fe9 100644 --- a/data/v2/kobold-press/deepm/Document.json +++ b/data/v2/kobold-press/deepm/Document.json @@ -6,7 +6,7 @@ "name": "Deep Magic for 5th Edition", "desc": "*Command 700 New Spells for 5th Edition!*\r\n\r\nNo matter how you slice it, magic is at the heart of fantasy—and nothing says magic like a massive tome of spells.\r\n\r\nThis tome collects, updates, tweaks, and expands spells from years of the Deep Magic for Fifth Edition series—more than 700 new and revised spells. And it adds a lot more:\r\n\r\n* 19 divine domains from Beer to Mountain and Speed to Winter;\r\n* 13 new wizard specialties, such as the elementalist and the timekeeper;\r\n* 6 new sorcerous origins, including the Aristocrat and the Farseer;\r\n* 3 otherworldly patrons for warlocks, including the Sibyl;\r\n* expanded treatments of familiars and other wizardly servants;\r\n* and much more!\r\n\r\nThis 356-page tome is not just for wizards, warlocks, and sorcerers. Deep Magic also expands the horizons of what’s possible for bards, clerics, druids, and even rangers and paladins. It offers something new for every spellcasting class!\r\n\r\nWith these new spells and options, your characters (or your villains) can become masters of winter magic, chaos magic, or shadow magic. Seek out hidden colleges and academies of lost lore. Learn new runes, hieroglyphs, and cantrips to break down the walls of reality, or just bend them a bit.\r\n\r\nDeep Magic contains nothing but magic from start to finish!", "publisher": "kobold-press", - "ruleset": "o5e", + "gamesystem": "o5e", "author": "Dan Dillon, Chris Harris, and Jeff Lee", "published_at": "2020-02-13T00:00:00", "permalink": "https://koboldpress.com/kpstore/product/deep-magic-for-5th-edition-hardcover/", diff --git a/data/v2/kobold-press/deepmx/Document.json b/data/v2/kobold-press/deepmx/Document.json index 5cb2a8ad..b9554c55 100644 --- a/data/v2/kobold-press/deepmx/Document.json +++ b/data/v2/kobold-press/deepmx/Document.json @@ -6,7 +6,7 @@ "name": "Deep Magic Extended", "desc": "?", "publisher": "kobold-press", - "ruleset": "o5e", + "gamesystem": "o5e", "author": "Not sure.", "published_at": "2024-02-14T19:02:02", "permalink": "https://koboldpress.com/deepmagic", diff --git a/data/v2/kobold-press/kp/Document.json b/data/v2/kobold-press/kp/Document.json index b31892ba..81edfcbd 100644 --- a/data/v2/kobold-press/kp/Document.json +++ b/data/v2/kobold-press/kp/Document.json @@ -6,7 +6,7 @@ "name": "Kobold Press Compilation", "desc": "Kobold Press Community Use Policy", "publisher": "kobold-press", - "ruleset": "o5e", + "gamesystem": "o5e", "author": "Various", "published_at": "2024-02-14T19:53:41", "permalink": "https://koboldpress.com/", diff --git a/data/v2/kobold-press/tob-2023/Document.json b/data/v2/kobold-press/tob-2023/Document.json index 3e1b888a..60284075 100644 --- a/data/v2/kobold-press/tob-2023/Document.json +++ b/data/v2/kobold-press/tob-2023/Document.json @@ -6,7 +6,7 @@ "name": "Tome of Beasts 1 (2023 Edition)", "desc": "Whether you need dungeon vermin or world-shaking villains, the Tome of Beasts 1 (2023 Edition) has it. This book presents more than 400 foes suitable for any campaign setting—from tiny drakes and peculiar spiders to demon lords and ancient dragons.\r\n\r\nTome of Beasts 1 (2023 Edition) introduces new foes and upgrades monsters that originally appeared in Tome of Beasts, including:\r\n\r\n Updates to include errata and streamline mechanics\r\n 11 new creatures like the ashwalker, planewatcher, and the ancient cave dragon\r\n Expanded tables by creature type and terrain\r\n New monster art—and much more!", "publisher": "kobold-press", - "ruleset": "o5e", + "gamesystem": "o5e", "author": "Dan Dillon, Chris Harris, Rodrigo Garcia Carmona, Wolfgang Baur", "published_at": "2024-03-22T00:00:00", "permalink": "https://koboldpress.com/kpstore/product/tome-of-beasts-1-2023-edition-hardcover/", diff --git a/data/v2/kobold-press/tob/Document.json b/data/v2/kobold-press/tob/Document.json index 4a8d4a38..d0e3b7cf 100644 --- a/data/v2/kobold-press/tob/Document.json +++ b/data/v2/kobold-press/tob/Document.json @@ -6,7 +6,7 @@ "name": "Tome of Beasts", "desc": "Tome of Beasts from Kobold Press brings more than 400 new monsters to the 5th Edition! Use them in your favorite setting for fantasy adventure! Pick up Tome of Beasts and give your players an encounter they won’t soon forget.", "publisher": "kobold-press", - "ruleset": "o5e", + "gamesystem": "o5e", "author": "Chris Harris, Dan Dillon, Rodrigo Garcia Carmona, and Wolfgang Baur", "published_at": "2016-01-01T00:00:00", "permalink": "https://koboldpress.com/tome-of-beasts/", diff --git a/data/v2/kobold-press/tob2/Document.json b/data/v2/kobold-press/tob2/Document.json index 8acab7a0..a090d350 100644 --- a/data/v2/kobold-press/tob2/Document.json +++ b/data/v2/kobold-press/tob2/Document.json @@ -6,7 +6,7 @@ "name": "Tome of Beasts 2", "desc": "From the creators of the original Tome of Beasts! Kobold Press has wrangled a new horde of wildly original, often lethal, and highly entertaining 5E-compatible monsters to challenge new players and veterans alike.\r\n\r\nThe Tome of Beasts 2 brings 400 new monsters to 5th edition, from angelic enforcers, sasquatch, and shriekbats, to psychic vampires, zombie dragons, and so much more.\r\n\r\nIn addition to the hardcover volume and PDFs, there’s also Tome of Beasts 2: Pawns and Tome of Beasts 2: Lairs with beautiful maps and more!", "publisher": "kobold-press", - "ruleset": "o5e", + "gamesystem": "o5e", "author": "Wolfgang Baur, Celeste Conowitch, Darrin Drader, James Introcaso, Philip Larwood, Jeff Lee, Kelly Pawlik, Brian Suskind, Mike Welham", "published_at": "2020-10-20T00:00:00", "permalink": "https://koboldpress.com/tome-of-beasts-2/", diff --git a/data/v2/kobold-press/tob3/Document.json b/data/v2/kobold-press/tob3/Document.json index 7f52dc15..b0e4b692 100644 --- a/data/v2/kobold-press/tob3/Document.json +++ b/data/v2/kobold-press/tob3/Document.json @@ -6,7 +6,7 @@ "name": "Tome of Beasts 3", "desc": "Coming soon to Kickstarter, with over 400 monsters at your fingertips, Tome of Beasts 3 is sure to challenge, delight, and even terrify your players:\r\n\r\n An appendix filled with NPCs\r\n Monsters designed by guest designers, such as B. Dave Walters, Gail Simone, and many more\r\n Monsters designed by our very own backers\r\n Monsters ranging from familiars to coastal environments to towering undead to forest-haunting dragons\r\n Backers can playtest the monsters!\r\n\r\nTome of Beasts 3 Lairs contains 18 mapped adventures, plus any reached stretch-goal adventures, including:\r\n\r\n A shipwreck filled with treasure—and danger!\r\n A bakery-owning drake with a spooky problem\r\n A cult hunting a fey that can allow them to travel the planes\r\n A farmer whose prize-winning sheep are disappearing", "publisher": "kobold-press", - "ruleset": "o5e", + "gamesystem": "o5e", "author": "Wolfgang Baur, Celeste Conowitch, Darrin Drader, James Introcaso, Philip Larwood, Jeff Lee, Kelly Pawlik, Brian Suskind, Mike Welham", "published_at": "2022-01-10T00:00:00", "permalink": "https://koboldpress.com/tome-of-beasts-3/", diff --git a/data/v2/kobold-press/toh/Document.json b/data/v2/kobold-press/toh/Document.json index 66e9cde0..b951fcd8 100644 --- a/data/v2/kobold-press/toh/Document.json +++ b/data/v2/kobold-press/toh/Document.json @@ -6,7 +6,7 @@ "name": "Tome of Heroes", "desc": "Tome of Heroes Open-Gaming License Content by Kobold Press", "publisher": "kobold-press", - "ruleset": "o5e", + "gamesystem": "o5e", "author": "Kelly Pawlik, Ben Mcfarland, and Briand Suskind", "published_at": "2022-06-01T00:00:00", "permalink": "https://koboldpress.com/kpstore/product/tome-of-heroes-for-5th-edition/", diff --git a/data/v2/kobold-press/vom/Document.json b/data/v2/kobold-press/vom/Document.json index fb960cdc..00ec0d86 100644 --- a/data/v2/kobold-press/vom/Document.json +++ b/data/v2/kobold-press/vom/Document.json @@ -6,7 +6,7 @@ "name": "Vault of Magic", "desc": "Inside Vault of Magic, you’ll find a vast treasure trove of enchanted items of every imaginable use—more than 900 in all! There are plenty of armors, weapons, potions, rings, and wands, but that’s just for starters. From mirrors to masks, edibles to earrings, and lanterns to lockets, it’s all here, ready for you to use in your 5th Edition game.\r\n\r\nThis 240-page volume includes:\r\n\r\n More than 30 unique items developed by special guests, including Patrick Rothfuss, Gail Simone, Deborah Ann Woll, and Luke Gygax\r\n Fabled items that grow in power as characters rise in levels\r\n New item themes, such as monster-inspired, clockwork, and apprentice wizards\r\n Hundreds of full-color illustrations\r\n 25 treasure-generation tables sorted by rarity and including magic items from the core rules\r\n\r\nAmaze and delight your players and spice up your 5th Edition campaign with fresh, new enchanted items from Vault of Magic. It’ll turn that next treasure hoard into something . . . wondrous!\r\n\r\nSKU: KOB-9245-DnD-5E", "publisher": "kobold-press", - "ruleset": "o5e", + "gamesystem": "o5e", "author": "Phillip Larwood, Jeff Lee, and Christopher Lockey", "published_at": "2021-11-20T00:00:00", "permalink": "https://koboldpress.com/kpstore/product/vault-of-magic-for-5th-edition/", diff --git a/data/v2/kobold-press/wz/Document.json b/data/v2/kobold-press/wz/Document.json index f90c69cb..fba6fdb9 100644 --- a/data/v2/kobold-press/wz/Document.json +++ b/data/v2/kobold-press/wz/Document.json @@ -6,7 +6,7 @@ "name": "Warlock Zine", "desc": "The Warlock zines published and available on KP's Warlock booklets.", "publisher": "kobold-press", - "ruleset": "o5e", + "gamesystem": "o5e", "author": "Woflgang Baur, others.", "published_at": "2017-08-02T00:00:00", "permalink": "https://koboldpress.com/kpstore/product-category/all-products/warlock-5th-edition-dnd/", diff --git a/data/v2/open5e/open5e/Document.json b/data/v2/open5e/open5e/Document.json index cf508a80..30a38568 100644 --- a/data/v2/open5e/open5e/Document.json +++ b/data/v2/open5e/open5e/Document.json @@ -6,7 +6,7 @@ "name": "Open5e Originals", "desc": "Original items from Open5e", "publisher": "open5e", - "ruleset": "o5e", + "gamesystem": "o5e", "author": "Ean Moody, Various", "published_at": "2024-02-15T02:15:19", "permalink": "https://open5e.com/", diff --git a/data/v2/wizards-of-the-coast/srd/Document.json b/data/v2/wizards-of-the-coast/srd/Document.json index a85a666c..1c451129 100644 --- a/data/v2/wizards-of-the-coast/srd/Document.json +++ b/data/v2/wizards-of-the-coast/srd/Document.json @@ -6,7 +6,7 @@ "name": "Systems Reference Document", "desc": "The Systems Reference Document (SRD) contains guidelines for publishing content under the Open-Gaming License (OGL) or Creative Commons. The Dungeon Masters Guild also provides self-publishing opportunities for individuals and groups.", "publisher": "wizards-of-the-coast", - "ruleset": "o5e", + "gamesystem": "o5e", "author": "Mike Mearls, Jeremy Crawford, Chris Perkins, Rodney Thompson, Peter Lee, James Wyatt, Robert J. Schwalb, Bruce R. Cordell, Chris Sims, and Steve Townshend, based on original material by E. Gary Gygax and Dave Arneson.", "published_at": "2023-01-23T00:00:00", "permalink": "https://dnd.wizards.com/resources/systems-reference-document", diff --git a/docs/v2/data.md b/docs/v2/data.md index 759160f0..7183b9e7 100644 --- a/docs/v2/data.md +++ b/docs/v2/data.md @@ -2,7 +2,7 @@ Within the v2 api, the data loading is completely distinct from the v1 data. It uses the /data/v2 folder in the repository. It also follows a heirarchy that looks like this: -Descriptions of the licenses for data that we serve, and rulesets for the data. +Descriptions of the licenses for data that we serve, and gamesystems for the data. > /data/v2/License.json > /data/v2/GameSystem.json diff --git a/server/urls.py b/server/urls.py index 9b630588..ed0f967a 100644 --- a/server/urls.py +++ b/server/urls.py @@ -60,7 +60,7 @@ router_v2.register(r'publishers',views_v2.PublisherViewSet) router_v2.register(r'weapons',views_v2.WeaponViewSet) router_v2.register(r'armor',views_v2.ArmorViewSet) -router_v2.register(r'rulesets',views_v2.GameSystemViewSet) +router_v2.register(r'gamesystems',views_v2.GameSystemViewSet) router_v2.register(r'backgrounds',views_v2.BackgroundViewSet) router_v2.register(r'feats',views_v2.FeatViewSet) router_v2.register(r'races',views_v2.RaceViewSet)