Initial commit.
This commit is contained in:
@@ -0,0 +1,113 @@
|
||||
# AGPL 3 or any later version
|
||||
# (C) J.Y.Amihud ( Blender Dumbass )
|
||||
|
||||
from modules.Common import *
|
||||
from modules import Set
|
||||
|
||||
import os
|
||||
import sys
|
||||
import json
|
||||
import hashlib
|
||||
import traceback
|
||||
|
||||
Plugins = {}
|
||||
|
||||
def Import():
|
||||
|
||||
# This functions imports the plugins.
|
||||
|
||||
pluginsF = Set.Folder()+"/plugins"
|
||||
sys.path.append(Set.Folder())
|
||||
|
||||
if not os.path.exists(pluginsF+"/__init__.py"):
|
||||
t = open(pluginsF+"/__init__.py", "w")
|
||||
t.close()
|
||||
|
||||
for plugin in os.listdir(pluginsF):
|
||||
if plugin.endswith(".py"):
|
||||
plugin = plugin.replace(".py", "")
|
||||
exec("from plugins import "+plugin)
|
||||
Plugins[plugin] = eval(plugin)
|
||||
|
||||
def onHTML(server, html):
|
||||
|
||||
for plugin in Plugins:
|
||||
if "onHTML" in dir(Plugins[plugin]):
|
||||
try:
|
||||
html = Plugins[plugin].onHTML(server, html)
|
||||
except:
|
||||
print(traceback.format_exc())
|
||||
|
||||
return html
|
||||
|
||||
def onGET(server):
|
||||
|
||||
for plugin in Plugins:
|
||||
if "onGET" in dir(Plugins[plugin]):
|
||||
try:
|
||||
if Plugins[plugin].onGET(server):
|
||||
return True
|
||||
except:
|
||||
print(traceback.format_exc())
|
||||
return False
|
||||
|
||||
def onFEDI():
|
||||
|
||||
for plugin in Plugins:
|
||||
if "onFEDI" in dir(Plugins[plugin]):
|
||||
try:
|
||||
Plugins[plugin].onFEDI()
|
||||
except:
|
||||
print(traceback.format_exc())
|
||||
|
||||
def GetData():
|
||||
|
||||
config = Set.Load()
|
||||
pluginsF = Set.Folder()+"/plugins"
|
||||
data = {}
|
||||
|
||||
Pdata = {}
|
||||
|
||||
try:
|
||||
with open(Set.Folder()+"/plugins.json") as o:
|
||||
Pdata = json.load(o)
|
||||
except:
|
||||
pass
|
||||
|
||||
for plugin in os.listdir(pluginsF):
|
||||
if plugin.endswith(".py") and plugin != "__init__.py":
|
||||
|
||||
text = open(pluginsF+"/"+plugin, "r")
|
||||
text = text.read()
|
||||
|
||||
sha512 = hashlib.sha512(text.encode("utf-8")).hexdigest()
|
||||
sha256 = hashlib.sha256(text.encode("utf-8")).hexdigest()
|
||||
md5 = hashlib.md5(text.encode("utf-8")).hexdigest()
|
||||
|
||||
try:
|
||||
PluginData = dict(Plugins[plugin.replace(".py","")].PluginData)
|
||||
except:
|
||||
PluginData = {}
|
||||
|
||||
pluginData = {"sha512":sha512,
|
||||
"sha256":sha256,
|
||||
"md5" :md5}
|
||||
|
||||
for i in PluginData:
|
||||
pluginData[i] = PluginData[i]
|
||||
|
||||
pluginData["domains"] = [config.get("domain","localhost")]
|
||||
|
||||
for domain in Pdata:
|
||||
|
||||
if domain == config.get("domain"):
|
||||
continue
|
||||
|
||||
for pluginname in Pdata[domain]:
|
||||
pluginD = Pdata[domain][pluginname]
|
||||
#if pluginD.get("sha512") == sha512:
|
||||
# pluginData["domains"].append(domain)
|
||||
|
||||
|
||||
data[plugin] = pluginData
|
||||
return data
|
||||
Reference in New Issue
Block a user