endless-sky / endless-sky/endless-sky-plugins
Please add more meta data from within plugins.txt
- Dominant language
- Python
- Stars
- 56
- Forks
- 54
- Avg merge
- 6h 6m
- Merged PRs (30d)
- 25
Description
Can all the information that is now supported from within `plugin.txt` be extracted and incorporated into the `plugins.json` file so that this information is available *before* downloading the `.zip` file and looking inside?
In particular:
- tags
- dependencies
- game version
- requires
- optional
- conflicts
See `Plugins::Load` within `Plugins.cpp`:
```c++
else if(key == "tags")
for(const DataNode &grand : child)
tags.insert(grand.Token(0));
else if(key == "dependencies")
{
for(const DataNode &grand : child)
{
const string &grandKey = grand.Token(0);
bool grandHasValue = grand.Size() >= 2;
if(grandKey == "game version" && grandHasValue)
dependencies.gameVersion = grand.Token(1);
else if(grandKey == "requires")
for(const DataNode &great : grand)
dependencies.required.insert(great.Token(0));
else if(grandKey == "optional")
for(const DataNode &great : grand)
dependencies.optional.insert(great.Token(0));
else if(grandKey == "conflicts")
for(const DataNode &great : grand)
dependencies.conflicted.insert(great.Token(0));
else
grand.PrintTrace("Skipping unrecognized attribute:");
}
}
```
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with Plugins::Load in Plugins.cpp and trace how plugin.txt data reaches plugins.json. Check how tags and dependency fields are represented, then verify that generated plugins.json exposes game version, requires, optional, and conflicts before a plugin archive is downloaded.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100