Initial Commit
This commit is contained in:
commit
7e08d9e05c
31
README.md
Normal file
31
README.md
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
## Installation
|
||||||
|
|
||||||
|
Under
|
||||||
|
|
||||||
|
- `Dalamud Settings`
|
||||||
|
- `Experimental`
|
||||||
|
- `Custom Plugin Repositories`
|
||||||
|
|
||||||
|
add the following as new entry:
|
||||||
|
|
||||||
|
```
|
||||||
|
https://plugins.carvel.li
|
||||||
|
```
|
||||||
|
|
||||||
|
After that, all plugins listed (Palace Pal, Slice is Right, Fish Notify)
|
||||||
|
should appear as installable plugins.
|
||||||
|
|
||||||
|
## Licensing
|
||||||
|
|
||||||
|
Please do NOT include any plugins from this repository as part of other
|
||||||
|
dalamud plugin repositories.
|
||||||
|
|
||||||
|
You are welcome to fork any of the plugins listed here (please check individual
|
||||||
|
repositories for their license) and distribute your own forks freely, this is
|
||||||
|
only a kind request not to include this repository to build your own
|
||||||
|
"mega-repo" by including this JSON file elsewhere.
|
||||||
|
|
||||||
|
|
||||||
|
## Icons
|
||||||
|
|
||||||
|
[Horror](https://icons8.com/icon/kYhYEg0FYTPv/horror), [Bamboo](https://icons8.com/icon/tMwju5pp4cWb/bamboo), [Fish](https://icons8.com/icon/Z2NYk2SJACYj/fish) icons by [Icons8](https://icons8.com)
|
BIN
dist/FishNotify.png
vendored
Normal file
BIN
dist/FishNotify.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.4 KiB |
BIN
dist/Palace Pal.png
vendored
Normal file
BIN
dist/Palace Pal.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.4 KiB |
BIN
dist/SliceIsRight.png
vendored
Normal file
BIN
dist/SliceIsRight.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.8 KiB |
84
dist/pluginmaster.json
vendored
Normal file
84
dist/pluginmaster.json
vendored
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"Author": "Liza Carvelli",
|
||||||
|
"Name": "Slice is Right",
|
||||||
|
"InternalName": "SliceIsRight",
|
||||||
|
"AssemblyVersion": "6.1",
|
||||||
|
"Description": "Shows where Bamboo falls.",
|
||||||
|
"ApplicableVersion": "any",
|
||||||
|
"RepoUrl": "https://git.carvel.li/liza/SliceIsRight",
|
||||||
|
"Tags": [
|
||||||
|
"gold saucer",
|
||||||
|
"yojimbo"
|
||||||
|
],
|
||||||
|
"DalamudApiLevel": 8,
|
||||||
|
"LoadRequiredState": 0,
|
||||||
|
"LoadSync": false,
|
||||||
|
"LoadPriority": 0,
|
||||||
|
"IconUrl": "https://git.carvel.li/liza/plugin-repo/raw/branch/master/dist/SliceIsRight.png",
|
||||||
|
"Punchline": "Shows where Bamboo falls.",
|
||||||
|
"AcceptsFeedback": true,
|
||||||
|
"DownloadCount": 13433,
|
||||||
|
"LastUpdate": 1675714523,
|
||||||
|
"DownloadLinkInstall": "https://git.carvel.li/liza/SliceIsRight/releases/download/v6.1/SliceIsRight-6.1.zip",
|
||||||
|
"DownloadLinkUpdate": "https://git.carvel.li/liza/SliceIsRight/releases/download/v6.1/SliceIsRight-6.1.zip",
|
||||||
|
"Changelog": "v6.1 (2023-02-06)\n- Fix AoE markers generating new entries in dalamudUI.ini\n\nv6.0 (2023-01-11)\n- Dalamud API 8 update",
|
||||||
|
"IsHide": false,
|
||||||
|
"IsTestingExclusive": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Author": "Liza Carvelli",
|
||||||
|
"Name": "Fish Notify",
|
||||||
|
"InternalName": "FishNotify",
|
||||||
|
"AssemblyVersion": "5.0",
|
||||||
|
"Description": "Plays a sound when a fish is caught, depending on tug-strength",
|
||||||
|
"ApplicableVersion": "any",
|
||||||
|
"RepoUrl": "https://git.carvel.li/liza/FishNotify",
|
||||||
|
"Tags": [
|
||||||
|
"fishing"
|
||||||
|
],
|
||||||
|
"DalamudApiLevel": 8,
|
||||||
|
"LoadRequiredState": 0,
|
||||||
|
"LoadSync": false,
|
||||||
|
"LoadPriority": 0,
|
||||||
|
"IconUrl": "https://git.carvel.li/liza/plugin-repo/raw/branch/master/dist/FishNotify.png",
|
||||||
|
"Punchline": "Plays a sound when a fish is caught",
|
||||||
|
"AcceptsFeedback": true,
|
||||||
|
"DownloadCount": 0,
|
||||||
|
"LastUpdate": 1673460497,
|
||||||
|
"DownloadLinkInstall": "https://git.carvel.li/liza/FishNotify/releases/download/v5.0/FishNotify-5.0.zip",
|
||||||
|
"DownloadLinkUpdate": "https://git.carvel.li/liza/FishNotify/releases/download/v5.0/FishNotify-5.0.zip",
|
||||||
|
"IsHide": false,
|
||||||
|
"IsTestingExclusive": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Author": "Liza Carvelli",
|
||||||
|
"Name": "Palace Pal",
|
||||||
|
"InternalName": "Palace Pal",
|
||||||
|
"AssemblyVersion": "4.6",
|
||||||
|
"Description": "Shows possible trap & hoard coffer locations in Palace of the Dead & Heaven on High.\n\nThe default configuration requires Splatoon to be installed. If you do not wish to install Splatoon, you can switch to the experimental 'Simple' renderer in the configuration.",
|
||||||
|
"ApplicableVersion": "any",
|
||||||
|
"RepoUrl": "https://git.carvel.li/liza/PalacePal",
|
||||||
|
"Tags": [
|
||||||
|
"potd",
|
||||||
|
"palace",
|
||||||
|
"hoh",
|
||||||
|
"splatoon"
|
||||||
|
],
|
||||||
|
"DalamudApiLevel": 8,
|
||||||
|
"LoadRequiredState": 0,
|
||||||
|
"LoadSync": false,
|
||||||
|
"CanUnloadAsync": false,
|
||||||
|
"LoadPriority": 0,
|
||||||
|
"IconUrl": "https://git.carvel.li/liza/plugin-repo/raw/branch/master/dist/Palace%20Pal.png",
|
||||||
|
"Punchline": "Shows possible trap & hoard coffer locations in Palace of the Dead & Heaven on High.",
|
||||||
|
"AcceptsFeedback": true,
|
||||||
|
"DownloadCount": 45082,
|
||||||
|
"LastUpdate": 1690749171,
|
||||||
|
"DownloadLinkInstall": "https://git.carvel.li/liza/PalacePal/releases/download/v4.6/Palace%20Pal-4.6.zip",
|
||||||
|
"DownloadLinkUpdate": "https://git.carvel.li/liza/PalacePal/releases/download/v4.6/Palace%20Pal-4.6.zip",
|
||||||
|
"Changelog": "v4.6 (2023-07-30)\n- Update sever url\r\n- Cleanup\n\nv4.5 (2023-04-13)\n- Fix floor change regex (#18) not working anymore; the state of pomanders of sight/safety now gets updated properly again\r\n- Code cleanup\r\n- Server side optimizations\n\nv4.4 (2023-03-26)\n- Dependency Updates\n\nv4.3 (2023-03-25)\n- Update DE localization\r\n- Fix server logic for duplicate seen traps\n\nv4.2 (2023-03-11)\n- Improve error handling\r\n- Update dependencies",
|
||||||
|
"IsHide": false,
|
||||||
|
"IsTestingExclusive": false
|
||||||
|
}
|
||||||
|
]
|
73
generate_pluginmaster.py
Normal file
73
generate_pluginmaster.py
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
import datetime
|
||||||
|
import json
|
||||||
|
import os
|
||||||
|
from zipfile import ZipFile
|
||||||
|
import requests
|
||||||
|
|
||||||
|
plugin_names = [
|
||||||
|
# [path, internal name, github repo]
|
||||||
|
["../SliceIsRight", "SliceIsRight", "SliceIsRight"],
|
||||||
|
["../FishNotify", "FishNotify", "FishNotify"],
|
||||||
|
["../Pal/Pal.Client", "Palace Pal", "PalacePal"]
|
||||||
|
]
|
||||||
|
|
||||||
|
def extract_manifests():
|
||||||
|
manifests = []
|
||||||
|
for plugin_name in plugin_names:
|
||||||
|
path = f"{plugin_name[0]}/dist/{plugin_name[1]}"
|
||||||
|
for filename in [item for item in os.listdir(path) if item.endswith(".zip") ]:
|
||||||
|
print(f"== {filename} ==")
|
||||||
|
with ZipFile(f"{path}/{filename}", "r") as z:
|
||||||
|
manifest = json.loads(z.read(f"{plugin_name[1]}.json").decode())
|
||||||
|
manifest['InternalName'] = plugin_name[1]
|
||||||
|
|
||||||
|
releases = requests.get(f"https://git.carvel.li/api/v1/repos/liza/{plugin_name[2]}/releases?limit=1000").json()
|
||||||
|
manifest['DownloadCount'] = 0
|
||||||
|
manifest['LastUpdate'] = int(datetime.datetime.fromisoformat(releases[0].get('published_at').replace('Z', '+00:00')).timestamp())
|
||||||
|
|
||||||
|
changelog_counter = 0
|
||||||
|
changelog = ''
|
||||||
|
for release in releases:
|
||||||
|
for asset in release.get('assets'):
|
||||||
|
if asset.get('name').endswith('.zip'):
|
||||||
|
manifest['DownloadCount'] += asset.get('download_count')
|
||||||
|
|
||||||
|
if 'DownloadLinkInstall' not in manifest:
|
||||||
|
manifest["DownloadLinkInstall"] = manifest["DownloadLinkUpdate"] = asset.get('browser_download_url')
|
||||||
|
|
||||||
|
if changelog_counter < 5 and release.get('body'):
|
||||||
|
changelog_counter += 1
|
||||||
|
changelog += f"{release.get('tag_name')} ({datetime.datetime.fromisoformat(release.get('published_at').replace('Z', '+00:00')).date()})\n{release.get('body')}\n\n"
|
||||||
|
|
||||||
|
changelog = changelog.strip()
|
||||||
|
if changelog:
|
||||||
|
manifest['Changelog'] = changelog
|
||||||
|
print(changelog)
|
||||||
|
|
||||||
|
manifests.append(manifest)
|
||||||
|
|
||||||
|
return manifests
|
||||||
|
|
||||||
|
def add_extra_fields(manifests):
|
||||||
|
DEFAULTS = {
|
||||||
|
"IsHide": False,
|
||||||
|
"IsTestingExclusive": False,
|
||||||
|
"ApplicableVersion": "any",
|
||||||
|
}
|
||||||
|
|
||||||
|
for manifest in manifests:
|
||||||
|
for k, v in DEFAULTS.items():
|
||||||
|
if k not in manifest:
|
||||||
|
manifest[k] = v
|
||||||
|
|
||||||
|
def dump_master(manifests):
|
||||||
|
with open(f"dist/pluginmaster.json", "w") as f:
|
||||||
|
json.dump(manifests, f, indent=4)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
manifests = extract_manifests()
|
||||||
|
|
||||||
|
add_extra_fields(manifests)
|
||||||
|
|
||||||
|
dump_master(manifests)
|
Loading…
Reference in New Issue
Block a user