🔧 master: work in progress [might break]

This commit is contained in:
Leon van Kammen 2026-07-24 20:57:43 +02:00
parent 2b287e4a7e
commit ff3d5107d4
6 changed files with 202 additions and 4 deletions

View file

@ -24,6 +24,7 @@ scan files
## Ideas
* tabs horizontal stacked for xrforge.max.css
* fuzzy search: https://github.com/ssimonp/FuzzySearch-Roblox
* landingpage = /about
* scan functions in xrforge.lua / .xrforge

View file

@ -35,10 +35,14 @@ app.init = function() end
app.opts = require('config')(app)
-- load system plugins
app.plugin.moderation = require('plugin/moderation')
app.plugin.diskscan = require('plugin/diskscan')
app.plugin.manyfold = require('plugin/manyfold')
app.plugin.janusxr = require('plugin/janusxr')
app.plugin.moderation = require('plugin/moderation')
app.plugin.diskscan = require('plugin/diskscan')
app.plugin.manyfold = require('plugin/manyfold')
app.plugin.janusxr = require('plugin/janusxr')
app.plugin.git = require('plugin/git')
app.plugin.clouddrive = require('plugin/clouddrive')
app.plugin.webhook = require('plugin/webhook')
app.plugin.markdown = require('plugin/markdown')
-- ensure plugin config-defaults
foreach( app.plugin, function(name,plugin)

57
src/plugin/clouddrive.lua Normal file
View file

@ -0,0 +1,57 @@
local util = require('util')
app.on('scan_experience', function(exp)
--print_r(exp)
end)
app.on('scan_experience_file', function(exp)
end)
app.on('set', function(k,v)
print("content was updated")
end)
-- this registers the plugin UI
local plugin = {
name = 'Cloud drives <b class="tag">disabled</b>',
info = '',
opts = {
{
key='app.opts.plugin_clouddrive_webdir',
title='Webdirectory URL',
info='scan for experiences in open webdirs (apache/lighttpd/nginx/rclone/archive.org/copyparty)',
default="https://archive.org/download/janusxr-1",
values=''
},
{
key='app.opts.plugin_clouddrive_remotestorage',
title='Remotestorage URL',
info='scan for experiences via <a href="https://remotestorage.io/" target="_blank">remotestorage protocol</a> (via <a href="https://5apps.com" target="_blank">5apps</a> e.g.',
default="username@5apps.com",
values=''
},
{
key='app.opts.plugin_clouddrive_webdav',
title='WebDav URL',
info='scan for experiences in <a href="https://en.wikipedia.org/wiki/WebDAV" target="_blank">WebDav</a>-drive (NextCloud/copyparty e.g.) via <a href="https://rclone.org" target="_blank">rclone</a>',
default="",
values=''
},
{
key='app.opts.plugin_clouddrive_dropbox',
title='Dropbox remote',
info='scan for experiences in Dropbox via <a href="https://rclone.org" target="_blank">rclone</a>',
default="",
values=''
},
{
key='app.opts.plugin_clouddrive_gdrive',
title='Gdrive remote',
info='scan for experiences in <a href="https://drive.google.com" target="_blank">Google Drive</a> via <a href="https://rclone.org" target="_blank">rclone</a>',
default="",
values=''
}
}
}
return plugin

43
src/plugin/git.lua Normal file
View file

@ -0,0 +1,43 @@
local util = require('util')
app.on('scan_experience', function(exp)
--print_r(exp)
end)
app.on('scan_experience_file', function(exp)
end)
app.on('set', function(k,v)
print("content was updated")
end)
-- this registers the plugin UI
local plugin = {
name = 'Git <b class="tag">disabled</b>',
info = '',
opts = {
{
key='app.opts.plugin_git_repo_1',
title='Git repo 1 URL',
info='git repository to scan experiences',
default="https://codeberg.org/myuser/reponame",
values=''
},
{
key='app.opts.plugin_git_repo_2',
title='Git repo 2 URL',
info='git repository to scan experiences',
default="",
values=''
},
{
key='app.opts.plugin_git_repo_3',
title='Git repo 3 URL',
info='git repository to scan experiences',
default="",
values=''
}
}
}
return plugin

36
src/plugin/markdown.lua Normal file
View file

@ -0,0 +1,36 @@
local util = require('util')
app.on('scan_experience', function(exp)
--print_r(exp)
end)
app.on('scan_experience_file', function(exp)
end)
app.on('set', function(k,v)
print("content was updated")
end)
-- this registers the plugin UI
local plugin = {
name = 'Markdown <b class="tag">disabled</b>',
info = '',
opts = {
{
key='app.opts.plugin_markdown_files',
title='Markdown files',
info='Space-separated, <a href="http://lua-users.org/wiki/PatternsTutorial" target="_blank">lua patterns</a> are allowed',
default="README.md",
values=''
},
{
key='app.opts.plugin_markdown_strategy',
title='Markdown strategy',
info='',
default="README.md",
values={headerparagraph='title is first header + 1st paragraph is description',disabled='disabled'}
},
}
}
return plugin

57
src/plugin/webhook.lua Normal file
View file

@ -0,0 +1,57 @@
local util = require('util')
app.on('scan_experience', function(exp)
--print_r(exp)
end)
app.on('scan_experience_file', function(exp)
end)
app.on('set', function(k,v)
print("content was updated")
end)
-- this registers the plugin UI
local plugin = {
name = 'Webhooks <b class="tag">disabled</b>',
info = '',
opts = {
{
key='app.opts.plugin_webhook_method',
title='Webhook method',
info='http method to use',
default="POST",
values={POST="POST",GET="GET"}
},
{
key='app.opts.plugin_webhook_format',
title='Webhook format',
info='http format to use',
default="JSON",
values={JSON="JSON",text="text"}
},
{
key='app.opts.plugin_webhook_url_1',
title='Webhook URL 1',
info='URL to trigger when changes occur',
default="",
values=''
},
{
key='app.opts.plugin_webhook_url_2',
title='Webhook URL 2',
info='URL to trigger when changes occur',
default="",
values=''
},
{
key='app.opts.plugin_webhook_url_3',
title='Webhook URL 3',
info='URL to trigger when changes occur',
default="",
values=''
}
}
}
return plugin