From 685aa7868d104c3d8e2583ae94eb208d97d7f9cc Mon Sep 17 00:00:00 2001 From: midoks Date: Sun, 29 Oct 2023 14:26:46 +0800 Subject: [PATCH] update --- plugins/gogs/index.py | 23 ++++++ plugins/gogs/js/gogs.js | 151 ++++++++++++++++++++++++++++++++++++++-- 2 files changed, 167 insertions(+), 7 deletions(-) diff --git a/plugins/gogs/index.py b/plugins/gogs/index.py index 88a27683a..bd5e8f112 100755 --- a/plugins/gogs/index.py +++ b/plugins/gogs/index.py @@ -727,6 +727,27 @@ def projectScriptDebug(): return mw.getJson(data) +def projectScriptRun(): + args = getArgs() + data = checkArgs(args, ['user', 'name']) + if not data[0]: + return data[1] + + user = args['user'] + name = args['name'] + '.git' + + path = getRootPath() + '/' + user + '/' + name + commit_sh = path + '/custom_hooks/commit' + commit_log = path + '/custom_hooks/sh.log' + script_run = 'sh -x ' + commit_sh + ' 2>' + commit_log + + if not os.path.exists(commit_sh): + return mw.returnJson(False, '脚本文件不存在!') + + mw.execShell(script_run) + return mw.returnJson(True, '脚本文件执行成功,观察日志!') + + def gogsEdit(): data = {} data['post_receive'] = getPluginDir() + '/hook/post-receive.tpl' @@ -805,6 +826,8 @@ if __name__ == "__main__": print(projectScriptUnload()) elif func == 'project_script_debug': print(projectScriptDebug()) + elif func == 'project_script_run': + print(projectScriptRun()) elif func == 'gogs_edit': print(gogsEdit()) elif func == 'get_rsa_public': diff --git a/plugins/gogs/js/gogs.js b/plugins/gogs/js/gogs.js index 44bd9db9d..7a80525e3 100755 --- a/plugins/gogs/js/gogs.js +++ b/plugins/gogs/js/gogs.js @@ -152,11 +152,13 @@ function gogsUserList(page, search) { ulist = rdata['data']['data']; for (i in ulist){ - email = ulist[i]["email"] == '' ? '无' : ulist[i]["email"]; + + var email = ulist[i]["email"] == '' ? '无' : ulist[i]["email"]; + var user_url = rdata['data']['root_url'] + ulist[i]["name"]; content += ''+ulist[i]["id"]+''+ ''+ulist[i]["name"]+''+ ''+email+''+ - '项目管理'+ + '项目管理'+ ''; } @@ -197,6 +199,30 @@ function userProjectList(user, search){ }); } +function userProjectList2(user, search){ + layer.open({ + type: 1, + title: '用户('+user+')项目列表', + area: '500px', + content:"
\ +
\ +
\ + \ + \ + \ +
项目操作
\ + \ +
\ +
\ +
", + success:function(){ + userProjectListPage(user,search); + } + }); +} + function userProjectListPage(user, search){ var req = {}; @@ -271,22 +297,126 @@ function gogsRepoListPage(page, search){ var ulist = rdata['data']['data']; var body = '' for (i in ulist){ - console.log(ulist[i]); + // console.log(ulist[i]); + + var option = ''; + if(ulist[i]['has_hook']){ + option += '卸载脚本' + ' | '; + option += '重载' + ' | '; + option += '编辑' + ' | '; + option += '日志' + ' | '; + option += '手动' + ' | '; + option += '自定义'; + } else{ + option += '加载脚本'; + } + + body += ''+ulist[i]["id"]+''+ '' + ulist[i]["name"]+''+ '' + ulist[i]["repo"]+''+ '' + '源码' + ' | ' + - '脚本' + ' | ' + - '源码' + + option + '' + ''; } + + + $('#repo_list tbody').html(body); $('#repo_list_page').html(rdata['data']['list']); + + + $('#repo_list .load').click(function(){ + var i = $(this).data('index'); + var user = ulist[i]["name"]; + var name = ulist[i]["repo"]; + + gogsPost('project_script_load', {'user':user,'name':name}, function(data){ + if (data.data != 'ok'){ + layer.msg(data.data,{icon:0,time:2000,shade: [0.3, '#000']}); + return; + } + layer.msg('加载成功!',{icon:1,time:2000,shade: [0.3, '#000']}); + setTimeout(function(){ + gogsRepoListPage(page, search); + }, 2000); + }); + }); + + $('#repo_list .unload').click(function(){ + var i = $(this).data('index'); + var user = ulist[i]["name"]; + var name = ulist[i]["repo"]; + + gogsPost('project_script_unload', {'user':user,'name':name}, function(data){ + if (data.data != 'ok'){ + layer.msg(data.data,{icon:0,time:2000,shade: [0.3, '#000']}); + return; + } + + layer.msg('卸载成功!',{icon:1,time:2000,shade: [0.3, '#000']}); + setTimeout(function(){ + gogsRepoListPage(page, search); + }, 2000); + }); + }); + + $('#repo_list .edit').click(function(){ + var i = $(this).data('index'); + var user = ulist[i]["name"]; + var name = ulist[i]["repo"]; + + gogsPost('project_script_edit', {'user':user,'name':name}, function(data){ + var rdata = $.parseJSON(data.data); + if (rdata['status']){ + onlineEditFile(0, rdata['data']['path']); + } else { + layer.msg(rdata.msg,{icon:1,time:2000,shade: [0.3, '#000']}); + } + }); + }); + + + $('#repo_list .debug').click(function(){ + var i = $(this).data('index'); + var user = ulist[i]["name"]; + var name = ulist[i]["repo"]; + + gogsPost('project_script_debug', {'user':user,'name':name}, function(data){ + var rdata = $.parseJSON(data.data); + if (rdata['status']){ + onlineEditFile(0, rdata['path']); + } else { + layer.msg(rdata.msg,{icon:1,time:2000,shade: [0.3, '#000']}); + } + }); + }); + + + $('#repo_list .run').click(function(){ + var i = $(this).data('index'); + var user = ulist[i]["name"]; + var name = ulist[i]["repo"]; + + gogsPost('project_script_run', {'user':user,'name':name}, function(data){ + var data = $.parseJSON(data.data); + layer.msg(data.msg,{icon:data.code?2:1,time:2000,shade: [0.3, '#000']}); + }); + }); + + + + + + + //--------- }); } + + function gogsRepoList() { content = '
'; content += '
'; @@ -353,7 +483,7 @@ function projectScriptLoad(user,name){ layer.msg('加载成功!',{icon:1,time:2000,shade: [0.3, '#000']}); setTimeout(function(){ - userProjectListPage(1); + gogsRepoListPage(1); }, 2000); }); } @@ -367,11 +497,18 @@ function projectScriptUnload(user,name){ layer.msg('卸载成功!',{icon:1,time:2000,shade: [0.3, '#000']}); setTimeout(function(){ - userProjectListPage(1); + gogsRepoListPage(1); }, 2000); }); } +function projectScriptRun(user, name){ + gogsPost('project_script_run', {'user':user,'name':name}, function(data){ + var data = $.parseJSON(data.data); + layer.msg(data.msg,{icon:data.code?2:1,time:2000,shade: [0.3, '#000']}); + }); +} + function projectScriptDebug(user,name){ gogsPost('project_script_debug', {'user':user,'name':name}, function(data){ var rdata = $.parseJSON(data.data);