From 0563555a6ab1426a5f994baab1442ff47dd84fd7 Mon Sep 17 00:00:00 2001 From: whyour Date: Fri, 16 Apr 2021 17:30:22 +0800 Subject: [PATCH] =?UTF-8?q?diy=E6=94=AF=E6=8C=81=E4=BB=BB=E6=84=8F?= =?UTF-8?q?=E4=BB=93=E5=BA=93=E5=9C=B0=E5=9D=80=EF=BC=8C=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0ck=E6=8A=A5=E9=94=99=EF=BC=8C=E7=A7=BB?= =?UTF-8?q?=E9=99=A4monk=E4=BB=93=E5=BA=93=E5=86=85=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- back/loaders/initData.ts | 28 +++++++++------------- docker/Dockerfile | 7 ------ docker/docker-entrypoint.sh | 19 +++------------ shell/git_diy.sh | 13 +++++------ shell/rebuild.sh | 1 + src/layouts/index.less | 6 +++++ src/pages/cookie/index.tsx | 46 ++++++++++++++++++++++--------------- 7 files changed, 54 insertions(+), 66 deletions(-) diff --git a/back/loaders/initData.ts b/back/loaders/initData.ts index 7bf1545c..65e0126d 100644 --- a/back/loaders/initData.ts +++ b/back/loaders/initData.ts @@ -16,23 +16,17 @@ const initData = [ status: CrontabStatus.idle, }, { - name: '自定义仓库', - command: `sleep ${randomSchedule( - 60, - 1, - )} && diy whyour hundun "quanx/jx|quanx/jd" tokens >> $QL_DIR/log/diy_pull.log 2>&1`, - schedule: `${randomSchedule(60, 1)} ${randomSchedule( - 24, - 6, - ).toString()} * * *`, - status: CrontabStatus.idle, + name: 'build面板', + command: 'rebuild >> ${QL_DIR}/log/rebuild.log 2>&1', + schedule: '30 7 */7 * *', + status: CrontabStatus.disabled, }, { name: '自定义仓库', command: `sleep ${randomSchedule( 60, 1, - )} && diy monk-coder dust "i-chenzhe|normal" >> $QL_DIR/log/diy_pull.log 2>&1`, + )} && diy whyour hundun "quanx/jx|quanx/jd" tokens >> $QL_DIR/log/diy_pull.log 2>&1`, schedule: `${randomSchedule(60, 1)} ${randomSchedule( 24, 6, @@ -45,12 +39,6 @@ const initData = [ schedule: '48 5 * * *', status: CrontabStatus.idle, }, - { - name: 'build面板', - command: 'rebuild >> ${QL_DIR}/log/rebuild.log 2>&1', - schedule: '30 7 */7 * *', - status: CrontabStatus.disabled, - }, { name: '删除日志', command: 'rm_log >/dev/null 2>&1', @@ -63,6 +51,12 @@ const initData = [ schedule: '33 6 */7 * *', status: CrontabStatus.disabled, }, + { + name: '启动挂机程序', + command: 'js hangup', + schedule: '33 6 */7 * *', + status: CrontabStatus.disabled, + }, { name: '运行所有脚本(慎用)', command: 'js runall', diff --git a/docker/Dockerfile b/docker/Dockerfile index ff8a82fa..57954725 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -2,7 +2,6 @@ FROM node:lts-alpine LABEL maintainer="whyour" ARG QL_BASE_URL=https://github.com.cnpmjs.org/whyour/qinglong ARG QL_BASE_BRANCH=master -ARG SSH_PRIVATE_KEY ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \ LANG=zh_CN.UTF-8 \ SHELL=/bin/bash \ @@ -23,15 +22,9 @@ RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories nginx \ python3 \ jq \ - openssh \ && rm -rf /var/cache/apk/* \ && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ && echo "Asia/Shanghai" > /etc/timezone \ - && mkdir -p /root/.ssh \ - && chmod 700 /root/.ssh \ - && echo -e $SSH_PRIVATE_KEY > /root/.ssh/id_rsa \ - && chmod 600 /root/.ssh/id_rsa \ - && ssh-keyscan github.com > /root/.ssh/known_hosts \ && touch ~/.bashrc \ && mkdir /run/nginx \ && git clone -b ${QL_BASE_BRANCH} ${QL_BASE_URL} ${QL_DIR} \ diff --git a/docker/docker-entrypoint.sh b/docker/docker-entrypoint.sh index 17e1ca96..501bb54f 100755 --- a/docker/docker-entrypoint.sh +++ b/docker/docker-entrypoint.sh @@ -49,23 +49,10 @@ echo -e "======================3. 启动控制面板========================\n" pm2 start ${QL_DIR}/build/app.js -n panel echo -e "控制面板启动成功...\n" -echo -e "======================4. 启动挂机程序========================\n" -CookieConf=${QL_DIR}/config/cookie.sh -. ${QL_DIR}/config/config.sh -. ${CookieConf} -if [[ ${ENABLE_HANGUP} == true ]]; then - if [ -s ${CookieConf} ]; then - js hangup 2>/dev/null - echo -e "挂机程序启动成功...\n" - else - echo -e "尚未在Cookie管理中添加一条Cookie,可能是首次部署容器,因此不启动挂机程序...\n" - fi -else - echo -e "默认不自动启动挂机程序,跳过...\n" -fi - echo -e "\n容器启动成功...\n" -echo -e "\n请先访问5700端口,登录面板成功之后手动执行一次git_pull命令...\n" +echo -e "\n请先访问5700端口,登录面板成功之后先手动执行一次git_pull命令...\n" +echo -e "\n如果需要启动挂机程序手动执行docker exec -it qinglong js hangup...\n" +echo -e "\n或者去cron管理搜索hangup手动执行挂机任务...\n" if [ "${1#-}" != "${1}" ] || [ -z "$(command -v "${1}")" ]; then set -- node "$@" diff --git a/shell/git_diy.sh b/shell/git_diy.sh index c525ee16..e0dd5358 100755 --- a/shell/git_diy.sh +++ b/shell/git_diy.sh @@ -11,8 +11,7 @@ ListCronCurrent=$ConfigDir/crontab.list AuthConf=$ConfigDir/auth.json declare -A BlackListDict -author=$1 -repo=$2 +url=$1 path=$3 blackword=$4 @@ -31,11 +30,11 @@ diyscriptsdir=/ql/diyscripts mkdir -p ${diyscriptsdir} if [ ! -d "$diyscriptsdir/${author}_${repo}" ]; then - echo -e "${author}本地仓库不存在,从gayhub拉取ing..." - url="https://ghproxy.com/https://github.com/${author}/${repo}" - if [ $author == "monk-coder" ] && [ $repo == "dust" ]; then - url="git@github.com:monk-coder/dust.git" - fi + echo -e "${author}本地仓库不存在,从远程拉取ing..." + repoTmp=${url##*/} + repo=${repoTmpName%.*} + tmp=${url%/*} + author=${tmp##*/} cd ${diyscriptsdir} && git clone $url ${author}_${repo} gitpullstatus=$? [ $gitpullstatus -eq 0 ] && echo -e "${author}本地仓库拉取完毕" diff --git a/shell/rebuild.sh b/shell/rebuild.sh index 42e40958..8dea6af0 100755 --- a/shell/rebuild.sh +++ b/shell/rebuild.sh @@ -12,6 +12,7 @@ echo -e "重新build...\n" yarn install --network-timeout 1000000000 || yarn install --registry=https://registry.npm.taobao.org --network-timeout 1000000000 yarn build yarn build-back +yarn cache clean echo -e "重新build完成...\n" echo -e "重启服务...\n" diff --git a/src/layouts/index.less b/src/layouts/index.less index c1fe4a56..e0f8d31d 100644 --- a/src/layouts/index.less +++ b/src/layouts/index.less @@ -23,6 +23,12 @@ body { } } +.cookie-wrapper { + th { + white-space: nowrap; + } +} + @media (max-width: 768px) { .ant-pro-grid-content.wide { .ant-pro-page-container-children-content { diff --git a/src/pages/cookie/index.tsx b/src/pages/cookie/index.tsx index 30a6a57d..14fdea01 100644 --- a/src/pages/cookie/index.tsx +++ b/src/pages/cookie/index.tsx @@ -220,14 +220,19 @@ const Config = () => { .get(`${config.apiPrefix}cookies`) .then((data: any) => { setValue(data.data); - asyncUpdateStatus(data.data); }) .finally(() => setLoading(false)); }; - const asyncUpdateStatus = async (data: any[]) => { - for (let i = 0; i < data.length; i++) { - const cookie = data[i]; + useEffect(() => { + if (value && loading) { + asyncUpdateStatus(); + } + }, [value]); + + const asyncUpdateStatus = async () => { + for (let i = 0; i < value.length; i++) { + const cookie = value[i]; await sleep(1000); refreshStatus(cookie, i); } @@ -347,25 +352,28 @@ const Config = () => { }); }; - const handleCancel = (cookie: any) => { + const handleCancel = (cookies: any[]) => { setIsModalVisible(false); - if (cookie) { - handleCookies(cookie); + if (cookies && cookies.length > 0) { + handleCookies(cookies); } }; - const handleCookies = (cookie: any) => { - const index = value.findIndex((x) => x._id === cookie._id); - const result = [...value]; - if (index === -1) { - result.push(...cookie); - } else { - result.splice(index, 1, { - ...cookie, - }); + const handleCookies = (cookies: any[]) => { + for (let i = 0; i < cookies.length; i++) { + const cookie = cookies[i]; + const index = value.findIndex((x) => x._id === cookie._id); + const result = [...value]; + if (index === -1) { + result.push(cookie); + } else { + result.splice(index, 1, { + ...cookie, + }); + } + setValue(result); + refreshStatus(cookie, index); } - refreshStatus(cookie, index); - setValue(result); }; const components = { @@ -414,7 +422,7 @@ const Config = () => { return (