114 lines
2.8 KiB
Python
114 lines
2.8 KiB
Python
|
import json
|
||
|
import account
|
||
|
import requests
|
||
|
import os
|
||
|
|
||
|
# Plugin Data
|
||
|
info = {
|
||
|
"name": "Custom Plugin Manager",
|
||
|
"description": "Import custom plugins from git repositories",
|
||
|
"version": "1.0",
|
||
|
"author": "Nathan.Woodburn/"
|
||
|
}
|
||
|
|
||
|
# Functions
|
||
|
functions = {
|
||
|
"add":{
|
||
|
"name": "Add Plugin repo",
|
||
|
"type": "default",
|
||
|
"description": "Add a plugin repo",
|
||
|
"params": {
|
||
|
"url": {
|
||
|
"name":"URL",
|
||
|
"type":"text"
|
||
|
}
|
||
|
},
|
||
|
"returns": {
|
||
|
"status":
|
||
|
{
|
||
|
"name": "Status of the function",
|
||
|
"type": "text"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"remove":{
|
||
|
"name": "Remove Plugins",
|
||
|
"type": "default",
|
||
|
"description": "Remove a plugin repo from the list",
|
||
|
"params": {
|
||
|
"url": {
|
||
|
"name":"URL",
|
||
|
"type":"text"
|
||
|
}
|
||
|
},
|
||
|
"returns": {
|
||
|
"status":
|
||
|
{
|
||
|
"name": "Status of the function",
|
||
|
"type": "text"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"list":{
|
||
|
"name": "List Plugins",
|
||
|
"type": "default",
|
||
|
"description": "List all imported plugins",
|
||
|
"params": {},
|
||
|
"returns": {
|
||
|
"plugins":
|
||
|
{
|
||
|
"name": "List of plugins",
|
||
|
"type": "list"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
def add(params, authentication):
|
||
|
url = params["url"]
|
||
|
if not os.path.exists("user_data/plugins.json"):
|
||
|
with open("user_data/plugins.json", "w") as f:
|
||
|
json.dump([], f)
|
||
|
|
||
|
with open("user_data/plugins.json", "r") as f:
|
||
|
importurls = json.load(f)
|
||
|
|
||
|
# Check if the plugin is already imported
|
||
|
if url in importurls:
|
||
|
return {"status": "Plugin already imported"}
|
||
|
|
||
|
importurls.append(url)
|
||
|
with open("user_data/plugins.json", "w") as f:
|
||
|
json.dump(importurls, f)
|
||
|
|
||
|
return {"status": "Imported"}
|
||
|
|
||
|
|
||
|
def remove(params, authentication):
|
||
|
url = params["url"]
|
||
|
if not os.path.exists("user_data/plugins.json"):
|
||
|
with open("user_data/plugins.json", "w") as f:
|
||
|
json.dump([], f)
|
||
|
|
||
|
with open("user_data/plugins.json", "r") as f:
|
||
|
importurls = json.load(f)
|
||
|
|
||
|
# Check if the plugin is already imported
|
||
|
if url not in importurls:
|
||
|
return {"status": "Plugin not imported"}
|
||
|
|
||
|
importurls.remove(url)
|
||
|
with open("user_data/plugins.json", "w") as f:
|
||
|
json.dump(importurls, f)
|
||
|
|
||
|
return {"status": "Removed"}
|
||
|
|
||
|
def list(params, authentication):
|
||
|
if not os.path.exists("user_data/plugins.json"):
|
||
|
with open("user_data/plugins.json", "w") as f:
|
||
|
json.dump([], f)
|
||
|
|
||
|
with open("user_data/plugins.json", "r") as f:
|
||
|
importurls = json.load(f)
|
||
|
|
||
|
return {"plugins": importurls}
|