@candriajs/karin-plugin-git 1.4.0 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import{t as e}from"./root-q84D5Ojp.js";import{karinPathBase as t}from"node-karin";import n from"node-karin/sqlite3";const r=async(e,t,n=`main`,r=`main`)=>{await(await g()).run(`INSERT INTO push (repoId, sessionId, branch, commitSha) VALUES (?, ?, ?, ?)`,[e,t,n,r])},i=async()=>{let e=await g();return await new Promise((t,n)=>{e.all(`SELECT * FROM push`,[],(e,r)=>{e?n(e):t(r)})})},a=async(e,t,n)=>{let r=await g();return await new Promise((i,a)=>{r.get(`SELECT * FROM push WHERE repoId = ? AND sessionId = ? AND branch = ?`,[e,t,n],(e,t)=>{e?a(e):i(t)})})},o=async(e,t,n)=>{let r=await g();n?await r.run(`DELETE FROM push WHERE repoId = ? AND sessionId = ? AND branch = ?`,[e,t,n]):await r.run(`DELETE FROM push WHERE repoId = ? AND sessionId = ?`,[e,t])},s=async(e,t,n,r)=>{await(await g()).run(`UPDATE push SET commitSha = ? WHERE repoId = ? AND sessionId = ? AND branch = ?`,[r,e,t,n])},c=async(e,t)=>{await(await g()).run(`INSERT INTO session (botId,groupId) VALUES (?,?)`,[e,t])},l=async(e,t)=>{let n=await g();return typeof e==`string`?await new Promise((r,i)=>{n.get(`SELECT * FROM session WHERE botId = ? AND groupId = ?`,[e,t],(e,t)=>{e?i(e):r(t)})}):await new Promise((t,r)=>{n.get(`SELECT * FROM session WHERE id = ?`,[e],(e,n)=>{e?r(e):t(n)})})},u=async(e,t)=>{await(await g()).run(`INSERT INTO bind (groupId, repoId) VALUES (?, ?)`,[e,t])},d=async e=>{let t=await g();return await new Promise((n,r)=>{t.get(`SELECT * FROM bind WHERE groupId = ?`,[e],(e,t)=>{e?r(e):n(t)})})},f=async(e,t,n)=>{await(await g()).run(`INSERT INTO repo (platform,owner, repo) VALUES (?,?, ?)`,[e,t,n])},p=async()=>{let e=await g();return await new Promise((t,n)=>{e.all(`SELECT * FROM repo`,(e,r)=>{e?n(e):t(r)})})},m=async(e,t,n)=>{let r=await g();return typeof e==`number`?await new Promise((t,n)=>{r.get(`SELECT * FROM repo WHERE id = ?`,[e],(e,r)=>{e?n(e):t(r)})}):await new Promise((i,a)=>{r.get(`SELECT * FROM repo WHERE platform = ? AND owner = ? AND repo = ?`,[e,t,n],(e,t)=>{e?a(e):i(t)})})};let h=null;const g=async()=>{if(!h){let r=`${t}/${e.Plugin_Name}/data`;h=new n.Database(`${r}/data.db`)}return h},_=async()=>{let e=await g();e.exec(`
1
+ import{t as e}from"./root-q84D5Ojp.js";import{karinPathBase as t}from"node-karin";import n from"node-karin/sqlite3";const r=async(e,t,n=`main`,r=`main`)=>{await(await y()).run(`INSERT INTO push (repoId, sessionId, branch, commitSha) VALUES (?, ?, ?, ?)`,[e,t,n,r])},i=async()=>{let e=await y();return await new Promise((t,n)=>{e.all(`SELECT * FROM push`,[],(e,r)=>{e?n(e):t(r)})})},a=async(e,t,n)=>{let r=await y();return await new Promise((i,a)=>{r.get(`SELECT * FROM push WHERE repoId = ? AND sessionId = ? AND branch = ?`,[e,t,n],(e,t)=>{e?a(e):i(t)})})},o=async(e,t,n)=>{let r=await y();n?await r.run(`DELETE FROM push WHERE repoId = ? AND sessionId = ? AND branch = ?`,[e,t,n]):await r.run(`DELETE FROM push WHERE repoId = ? AND sessionId = ?`,[e,t])},s=async(e,t,n,r)=>{await(await y()).run(`UPDATE push SET commitSha = ? WHERE repoId = ? AND sessionId = ? AND branch = ?`,[r,e,t,n])},c=async(e,t)=>{await(await y()).run(`INSERT INTO session (botId,groupId) VALUES (?,?)`,[e,t])},l=async(e,t)=>{let n=await y();return typeof e==`string`?await new Promise((r,i)=>{n.get(`SELECT * FROM session WHERE botId = ? AND groupId = ?`,[e,t],(e,t)=>{e?i(e):r(t)})}):await new Promise((t,r)=>{n.get(`SELECT * FROM session WHERE id = ?`,[e],(e,n)=>{e?r(e):t(n)})})},u=async(e,t)=>{await(await y()).run(`INSERT INTO bind (groupId, repoId) VALUES (?, ?)`,[e,t])},d=async e=>{let t=await y();return await new Promise((n,r)=>{t.get(`SELECT * FROM bind WHERE groupId = ?`,[e],(e,t)=>{e?r(e):n(t)})})},f=async(e,t,n)=>{await(await y()).run(`INSERT INTO repo (platform,owner, repo) VALUES (?,?, ?)`,[e,t,n])},p=async()=>{let e=await y();return await new Promise((t,n)=>{e.all(`SELECT * FROM repo`,(e,r)=>{e?n(e):t(r)})})},m=async(e,t,n)=>{let r=await y();return typeof e==`number`?await new Promise((t,n)=>{r.get(`SELECT * FROM repo WHERE id = ?`,[e],(e,r)=>{e?n(e):t(r)})}):await new Promise((i,a)=>{r.get(`SELECT * FROM repo WHERE platform = ? AND owner = ? AND repo = ?`,[e,t,n],(e,t)=>{e?a(e):i(t)})})},h=async(e,t,n)=>{await(await y()).run(`INSERT INTO release (repoId, sessionId, tagName) VALUES (?, ?, ?)`,[e,t,n])},g=async(e,t,n)=>{let r=await y();return await new Promise((i,a)=>{n?r.get(`SELECT * FROM release WHERE repoId = ? AND sessionId = ? AND tagName = ?`,[e,t,n],(e,t)=>{e?a(e):i(t)}):r.get(`SELECT * FROM release WHERE repoId = ? AND sessionId = ?`,[e,t],(e,t)=>{e?a(e):i(t)})})},_=async(e,t)=>{await(await y()).run(`DELETE FROM release WHERE repoId = ? AND sessionId = ?`,[e,t])};let v=null;const y=async()=>{if(!v){let r=`${t}/${e.Plugin_Name}/data`;v=new n.Database(`${r}/data.db`)}return v},b=async()=>{let e=await y();e.exec(`
2
2
  CREATE TABLE IF NOT EXISTS repo (
3
3
  id INTEGER PRIMARY KEY AUTOINCREMENT,
4
4
  platform TEXT NOT NULL,
@@ -52,4 +52,4 @@ import{t as e}from"./root-q84D5Ojp.js";import{karinPathBase as t}from"node-karin
52
52
  FOREIGN KEY (sessionId) REFERENCES session(id) ON DELETE CASCADE,
53
53
  UNIQUE(repoId, sessionId, tagName)
54
54
  )
55
- `),e.exec(`CREATE INDEX IF NOT EXISTS idx_session_lookup ON session(botId, groupId)`),e.exec(`CREATE INDEX IF NOT EXISTS idx_repo_lookup ON repo(platform, owner, repo)`),e.exec(`CREATE INDEX IF NOT EXISTS idx_push_branch ON push(repoId, branch)`)};export{u as a,l as c,a as d,o as f,m as i,r as l,f as n,d as o,s as p,p as r,c as s,_ as t,i as u};
55
+ `),e.exec(`CREATE INDEX IF NOT EXISTS idx_session_lookup ON session(botId, groupId)`),e.exec(`CREATE INDEX IF NOT EXISTS idx_repo_lookup ON repo(platform, owner, repo)`),e.exec(`CREATE INDEX IF NOT EXISTS idx_push_branch ON push(repoId, branch)`)};export{f as a,u as c,l as d,r as f,s as g,o as h,_ as i,d as l,a as m,h as n,p as o,i as p,g as r,m as s,b as t,c as u};
package/lib/index.js CHANGED
@@ -1 +1 @@
1
- import{t as e}from"./root-q84D5Ojp.js";import{t}from"./db-DhpZxiAN.js";import{logger as n}from"node-karin";import r from"node-karin/axios";const i=async()=>{let i=`加载失败`;try{i=(await r.get(`https://api.wuliya.cn/api/image/count?name=${e.Plugin_Name}&type=json`,{timeout:500})).data.data.count}catch{n.error(n.chalk.red.bold(`⚠️ 访问统计数据失败,超时或网络错误`))}await t(),n.info(n.chalk.bold.rgb(0,255,0)(`========= 🌟🌟🌟 =========`)),n.info(n.chalk.bold.blue(`🌍 当前运行环境: `)+n.chalk.bold.white(`${e.Bot_Name}`)+n.chalk.gray(` | `)+n.chalk.bold.green(`🏷️ 运行版本: `)+n.chalk.bold.white(`V${e.Bot_Version}`)+n.chalk.gray(` | `)+n.chalk.bold.yellow(`📊 运行插件总访问/运行次数: `)+n.chalk.bold.cyan(i)),n.info(n.chalk.bold.rgb(255,215,0)(`✨ ${e.Plugin_Name} `)+n.chalk.bold.rgb(255,165,0).italic(e.Plugin_Version)+n.chalk.rgb(255,215,0).bold(` 载入成功 ^_^`)),n.info(n.chalk.green.bold(`=========================`))};export{i as KARIN_PLUGIN_INIT};
1
+ import{t as e}from"./root-q84D5Ojp.js";import{t}from"./db-DRx0_etZ.js";import{logger as n}from"node-karin";const r=async()=>{await t(),n.info(n.chalk.bold.rgb(0,255,0)(`========= 🌟🌟🌟 =========`)),n.info(n.chalk.bold.blue(`🌍 当前运行环境: `)+n.chalk.bold.white(`${e.Bot_Name}`)+n.chalk.gray(` | `)+n.chalk.bold.green(`🏷️ 运行版本: `)+n.chalk.bold.white(`V${e.Bot_Version}`)),n.info(n.chalk.bold.rgb(255,215,0)(`✨ ${e.Plugin_Name} `)+n.chalk.bold.rgb(255,165,0).italic(e.Plugin_Version)+n.chalk.rgb(255,215,0).bold(` 载入成功 ^_^`)),n.info(n.chalk.green.bold(`=========================`))};export{r as KARIN_PLUGIN_INIT};
@@ -0,0 +1,3 @@
1
+ import{d as e,g as t,o as n,p as r,s as i}from"./db-DRx0_etZ.js";import{n as a,t as o}from"./common-DKsRuZTK.js";import{components as s,contactGroup as c,getBot as l,logger as u}from"node-karin";import{isEmpty as d}from"es-toolkit/compat";import{CnbClient as f,GitCodeClient as p,GiteeClient as m,GithubClient as h}from"nipaw";const g=()=>{let e=new h;return d(a.proxy.reverseProxy)?d(a.proxy.proxy)||e.setProxy(a.proxy.proxy):e.setReverseProxy(a.proxy.reverseProxy),d(a.token.github)||e.setToken(a.token.github),e},_=()=>{let e=new m;return d(a.proxy.proxy)||e.setProxy(a.proxy.proxy),d(a.token.gitee)||e.setToken(a.token.gitee),e},v=()=>{let e=new p;return d(a.proxy.proxy)||e.setProxy(a.proxy.proxy),d(a.token.gitcode)||e.setToken(a.token.gitcode),e},y=()=>{let e=new f;return d(a.proxy.proxy)||e.setProxy(a.proxy.proxy),d(a.token.cnbcool)||e.setToken(a.token.cnbcool),e};var b=class{platform;client;constructor(e,t){this.platform=e,this.client=t}async action(){let[a,s]=await Promise.all([n(),r()]),d=a.filter(e=>e.platform===this.platform).map(e=>e.id),f=s.filter(e=>d.includes(e.repoId)),p=this.client.commit();f.forEach(async n=>{let r=await i(n.id);u.debug(`开始处理 ${this.platform} ${r.owner}/${r.repo} ${n.branch}}`);let a=await e(n.sessionId),s=await p.info({owner:r.owner,repo:r.repo},n.branch);if(s.sha===n.commitSha)return;let d=l(a.botId);if(!d)throw Error(`Bot ${a.botId} not found`);let f=s.commit.message.split(`
2
+ `),m={owner:r.owner,repo:r.repo,branch:n.branch,sha:s.sha,author:s.commit.author,committer:s.commit.committer,title:f[0],content:f.slice(1).join(`
3
+ `),stats:s.stats,files:s.files},h=await o.commit(this.platform,m),g=c(a.groupId);await d.sendMsg(g,[h]),await t(n.repoId,n.sessionId,n.branch,s.sha)})}},x=class extends b{constructor(){super(`GitHub`,g())}};const S=e=>[s.accordion.create(`github`,{label:`Github 相关`,children:[s.accordion.createItem(`config:github`,{title:`Github 相关`,subtitle:`Github 相关配置`,children:[s.input.string(`cron`,{label:`推送任务执行时间`,description:`推送任务执行时间`,placeholder:`请输入推送任务Cron 表达式`,defaultValue:a.github.cron})]})]}),s.accordionPro.create(`pushlist:github`,e.map(e=>({title:`${e.owner}/${e.repo}:${e.branch}`,subtitle:`${e.botId}:${e.groupId}`,...e})),{label:`Github 推送仓库列表`,children:s.accordion.createItem(`accordion-item-github`,{children:[s.input.string(`owner`,{label:`仓库所有者`,placeholder:`请输入 Github 仓库所有者`}),s.input.string(`repo`,{label:`仓库名称`,placeholder:`请输入 Github 仓库名称`}),s.input.string(`branch`,{label:`仓库分支`,placeholder:`请输入 Github 仓库分支`}),s.input.string(`botId`,{label:`推送机器人`,placeholder:`请输入 推送机器人账号`}),s.input.string(`groupId`,{label:`推送群组`,placeholder:`请输入 推送群组ID`}),s.checkbox.group(`event`,{label:`推送事件`,checkbox:[s.checkbox.create(`event:push`,{label:`push`,value:`push`}),s.checkbox.create(`event:release`,{label:`release`,value:`release`,isDisabled:!0})]})]})})];var C=class extends b{constructor(){super(`Gitee`,_())}};const w=e=>[s.accordion.create(`gitee`,{label:`Gitee 相关`,children:[s.accordion.createItem(`config:gitee`,{title:`Gitee 相关`,subtitle:`Gitee 相关配置`,children:[s.input.string(`cron`,{label:`推送任务执行时间`,description:`推送任务执行时间`,placeholder:`请输入推送任务Cron 表达式`,defaultValue:a.gitee.cron})]})]}),s.accordionPro.create(`pushlist:gitee`,e.map(e=>({title:`${e.owner}/${e.repo}:${e.branch}`,...e})),{label:`Gitee 推送仓库列表`,children:s.accordion.createItem(`accordion-item-gitee`,{subtitle:`Gitee 仓库`,children:[s.input.string(`owner`,{label:`仓库所有者`,placeholder:`请输入 Gitee 仓库所有者`}),s.input.string(`repo`,{label:`仓库名称`,placeholder:`请输入 Gitee 仓库名称`}),s.input.string(`branch`,{label:`仓库分支`,placeholder:`请输入 Gitee 仓库分支`,isRequired:!0}),s.checkbox.group(`event`,{label:`推送事件`,checkbox:[s.checkbox.create(`event:push`,{label:`push`,value:`push`}),s.checkbox.create(`event:release`,{label:`release`,value:`release`,isDisabled:!0})]})]})})];var T=class extends b{constructor(){super(`GitCode`,v())}};const E=e=>[s.accordion.create(`gitcode`,{label:`GitCode 相关`,children:[s.accordion.createItem(`config:gitcode`,{title:`GitCode 相关`,subtitle:`GitCode 相关配置`,children:[s.input.string(`cron`,{label:`推送任务执行时间`,description:`推送任务执行时间`,placeholder:`请输入推送任务Cron 表达式`,defaultValue:a.gitcode.cron})]})]}),s.accordionPro.create(`pushlist:gitcode`,e.map(e=>({title:`${e.owner}/${e.repo}:${e.branch}`,...e})),{label:`GitCode 推送仓库列表`,children:s.accordion.createItem(`accordion-item-gitcode`,{subtitle:`GitCode 仓库`,children:[s.input.string(`owner`,{label:`仓库所有者`,placeholder:`请输入 GitCode 仓库所有者`}),s.input.string(`repo`,{label:`仓库名称`,placeholder:`请输入 GitCode 仓库名称`}),s.input.string(`branch`,{label:`仓库分支`,placeholder:`请输入 GitCode 仓库分支`}),s.checkbox.group(`event`,{label:`推送事件`,checkbox:[s.checkbox.create(`event:push`,{label:`push`,value:`push`}),s.checkbox.create(`event:release`,{label:`release`,value:`release`,isDisabled:!0})]})]})})];var D=class extends b{constructor(){super(`CnbCool`,y())}};const O=e=>[s.accordion.create(`cnbcool`,{label:`CnbCool 相关`,children:[s.accordion.createItem(`config:gitcode`,{title:`CnbCool 相关`,subtitle:`CnbCool 相关配置`,children:[s.input.string(`cron`,{label:`推送任务执行时间`,description:`推送任务执行时间`,placeholder:`请输入推送任务Cron 表达式`,defaultValue:a.cnbcool.cron})]})]}),s.accordionPro.create(`pushlist:cnbcool`,e.map(e=>({title:`${e.owner}/${e.repo}:${e.branch}`,...e})),{label:`CnbCool 推送仓库列表`,children:s.accordion.createItem(`accordion-item-cnbcoool`,{subtitle:`CnbCool 仓库`,children:[s.input.string(`owner`,{label:`仓库所有者`,placeholder:`请输入 CnbCool 仓库所有者`}),s.input.string(`repo`,{label:`仓库名称`,placeholder:`请输入 CnbCool 仓库名称`}),s.input.string(`branch`,{label:`仓库分支`,placeholder:`请输入 CnbCool 仓库分支`}),s.checkbox.group(`event`,{label:`推送事件`,checkbox:[s.checkbox.create(`event:push`,{label:`push`,value:`push`}),s.checkbox.create(`event:release`,{label:`release`,value:`release`,isDisabled:!0})]})]})})];export{w as a,x as c,_ as d,g as f,T as i,y as l,D as n,C as o,E as r,S as s,O as t,v as u};
package/lib/web.config.js CHANGED
@@ -1 +1 @@
1
- import"./root-q84D5Ojp.js";import{c as e,d as t,f as n,i as r,l as i,n as a,s as o,u as s}from"./db-DhpZxiAN.js";import{i as c,n as l,r as u}from"./common-DJ-f21cV.js";import{a as d,r as f,s as p,t as m}from"./models-qDLDUVt0.js";import{components as h,defineConfig as g}from"node-karin";import{differenceWith as _}from"es-toolkit/array";const v=async t=>{let n=await s();if(!n.length)return[];let i=[...new Set(n.map(e=>e.repoId))],a=[...new Set(n.map(e=>e.sessionId))],[o,c]=await Promise.all([Promise.all(i.map(e=>r(e))),Promise.all(a.map(t=>e(t)))]),u=new Map(o.filter(Boolean).map(e=>[e.id,e])),d=new Map(c.filter(Boolean).map(e=>[e.id,e]));return n.filter(e=>{let n=u.get(e.repoId),r=d.get(e.sessionId);return n&&r&&(!t||n.platform===t)}).map(e=>{let t=u.get(e.repoId),n=d.get(e.sessionId);return{owner:t.owner,repo:t.repo,botId:n.botId,groupId:n.groupId,branch:e.branch,event:[l.Push]}})},y=(e,t)=>e.owner===t.owner&&e.repo===t.repo&&e.branch===t.branch&&e.botId===t.botId&&e.groupId===t.groupId,b=async(n,s)=>{n.length&&await Promise.all(n.map(async n=>{let[c,u]=await Promise.all([r(s,n.owner,n.repo),e(n.botId,n.groupId)]);u||=(await o(n.botId,n.groupId),await e(n.botId,n.groupId)),c||=(await a(s,n.owner,n.repo),await r(s,n.owner,n.repo)),n.event.includes(l.Push)&&(await t(c.id,u.id,n.branch)||await i(c.id,u.id,n.branch,``))}))},x=async(i,a)=>{i.length&&await Promise.all(i.map(async i=>{let[o,s]=await Promise.all([r(a,i.owner,i.repo),e(i.botId,i.groupId)]);!o||!s||i.event.includes(l.Push)&&await t(o.id,s.id,i.branch)&&await n(o.id,s.id,i.branch)}))};var S=g({info:{id:`@candriajs/karin-plugin-git`,name:`karin-plugin-git`,author:{name:`CandriaJS`,home:`https://github.com/CandriaJS`,avatar:`https://avatars.githubusercontent.com/u/196008293?s=200&v=4`}},components:async()=>[h.divider.create(`divider-1`,{description:`基础配置`,descPosition:50}),h.accordion.create(`token`,{label:`Token 配置`,children:[h.accordion.createItem(`config:github`,{title:`token 相关`,subtitle:`建议, 否则大部分功能不可用`,children:[h.input.string(`github`,{label:`Github`,description:`Github 访问令牌`,placeholder:`请输入 Github 访问令牌`,defaultValue:c.token.github,isClearable:!0,isRequired:!1}),h.input.string(`gitee`,{label:`Gitee`,description:`Gitee 访问令牌`,placeholder:`请输入 Gitee 访问令牌`,defaultValue:c.token.gitee,isClearable:!0,isRequired:!1}),h.input.string(`gitcode`,{label:`GitCode`,description:`GitCode 访问令牌`,placeholder:`请输入 GitCode 访问令牌`,defaultValue:c.token.gitcode,isClearable:!0,isRequired:!1}),h.input.string(`cnbcool`,{label:`CnbCool`,description:`CnbCool 访问令牌`,placeholder:`请输入 CnbCool 访问令牌`,defaultValue:c.token.cnbcool,isClearable:!0,isRequired:!1})]})]}),h.accordion.create(`proxy`,{label:`代理配置`,children:[h.accordion.createItem(`config:proxy`,{title:`代理相关`,subtitle:`此处用于网络访问请求`,children:[h.input.string(`proxy`,{label:`系统代理`,description:`系统代理`,placeholder:`请输入系统代理`,defaultValue:c.proxy.proxy,isClearable:!0,isRequired:!1}),h.input.string(`reverseProxy`,{label:`反向代理`,description:`反向代理`,placeholder:`请输入反向代理`,defaultValue:c.proxy.reverseProxy,isClearable:!0,isRequired:!1})]})]}),h.divider.create(`divider-2`,{description:`平台配置`,descPosition:50}),...p(await v(u.GitHub)),...d(await v(u.Gitee)),...f(await v(u.GitCode)),...m(await v(u.CnbCool))],save:async e=>{console.log(`config`,e);let t=e.token[0],n=e.proxy[0];c.Modify(`proxy`,`proxy`,n.proxy),c.Modify(`proxy`,`reverseProxy`,n.reverseProxy);{c.Modify(`token`,`github`,t.github);let n=u.GitHub,r=e.github[0],i=e[`pushlist:github`],a=_(i,await v(n),y),o=_(await v(n),i,y);await b(a,n),await x(o,n),c.Modify(`github`,`cron`,r.cron)}{c.Modify(`token`,`gitee`,t.gitee);let n=e.gitee[0],r=u.GitHub;c.Modify(`gitee`,`cron`,n.cron);let i=e[`pushlist:gitee`],a=_(i,await v(r),y),o=_(await v(r),i,y);await b(a,r),await x(o,r)}{c.Modify(`token`,`gitcode`,t.gitcode);let n=e.gitcode[0],r=u.GitCode,i=e[`pushlist:gitcode`];c.Modify(`gitcode`,`cron`,n.cron);let a=_(i,await v(r),y),o=_(await v(r),i,y);await b(a,r),await x(o,r)}{c.Modify(`token`,`cnbcool`,t.cnbcool);let n=e.cnbcool[0],r=u.CnbCool,i=e[`pushlist:cnbcool`],a=_(i,await v(r),y),o=_(await v(r),i,y);await b(a,r),await x(o,r),c.Modify(`cnbcool`,`cron`,n.cron)}return{success:!0,message:`保存成功 Ciallo~(∠・ω< )⌒☆`}}});export{S as default};
1
+ import{a as e,d as t,f as n,h as r,m as i,p as a,s as o,u as s}from"./db-DRx0_etZ.js";import{n as c}from"./common-DKsRuZTK.js";import{a as l,r as u,s as d,t as f}from"./models-ovIphdkj.js";import{components as p,defineConfig as m}from"node-karin";import{differenceWith as h}from"es-toolkit/array";const g=async e=>{let n=await a();if(!n.length)return[];let r=[...new Set(n.map(e=>e.repoId))],i=[...new Set(n.map(e=>e.sessionId))],[s,c]=await Promise.all([Promise.all(r.map(e=>o(e))),Promise.all(i.map(e=>t(e)))]),l=new Map(s.filter(Boolean).map(e=>[e.id,e])),u=new Map(c.filter(Boolean).map(e=>[e.id,e]));return n.filter(t=>{let n=l.get(t.repoId),r=u.get(t.sessionId);return n&&r&&(!e||n.platform===e)}).map(e=>{let t=l.get(e.repoId),n=u.get(e.sessionId);return{owner:t.owner,repo:t.repo,botId:n.botId,groupId:n.groupId,branch:e.branch,event:[`push`]}})},_=(e,t)=>e.owner===t.owner&&e.repo===t.repo&&e.branch===t.branch&&e.botId===t.botId&&e.groupId===t.groupId,v=async(r,a)=>{r.length&&await Promise.all(r.map(async r=>{let[c,l]=await Promise.all([o(a,r.owner,r.repo),t(r.botId,r.groupId)]);l||=(await s(r.botId,r.groupId),await t(r.botId,r.groupId)),c||=(await e(a,r.owner,r.repo),await o(a,r.owner,r.repo)),r.event.includes(`push`)&&(await i(c.id,l.id,r.branch)||await n(c.id,l.id,r.branch,``))}))},y=async(e,n)=>{e.length&&await Promise.all(e.map(async e=>{let[a,s]=await Promise.all([o(n,e.owner,e.repo),t(e.botId,e.groupId)]);!a||!s||e.event.includes(`push`)&&await i(a.id,s.id,e.branch)&&await r(a.id,s.id,e.branch)}))};var b=m({info:{id:`@candriajs/karin-plugin-git`,name:`karin-plugin-git`,author:{name:`CandriaJS`,home:`https://github.com/CandriaJS`,avatar:`https://avatars.githubusercontent.com/u/196008293?s=200&v=4`}},components:async()=>[p.divider.create(`divider-1`,{description:`基础配置`,descPosition:50}),p.accordion.create(`token`,{label:`Token 配置`,children:[p.accordion.createItem(`config:github`,{title:`token 相关`,subtitle:`建议, 否则大部分功能不可用`,children:[p.input.string(`github`,{label:`Github`,description:`Github 访问令牌`,placeholder:`请输入 Github 访问令牌`,defaultValue:c.token.github,isClearable:!0,isRequired:!1}),p.input.string(`gitee`,{label:`Gitee`,description:`Gitee 访问令牌`,placeholder:`请输入 Gitee 访问令牌`,defaultValue:c.token.gitee,isClearable:!0,isRequired:!1}),p.input.string(`gitcode`,{label:`GitCode`,description:`GitCode 访问令牌`,placeholder:`请输入 GitCode 访问令牌`,defaultValue:c.token.gitcode,isClearable:!0,isRequired:!1}),p.input.string(`cnbcool`,{label:`CnbCool`,description:`CnbCool 访问令牌`,placeholder:`请输入 CnbCool 访问令牌`,defaultValue:c.token.cnbcool,isClearable:!0,isRequired:!1})]})]}),p.accordion.create(`proxy`,{label:`代理配置`,children:[p.accordion.createItem(`config:proxy`,{title:`代理相关`,subtitle:`此处用于网络访问请求`,children:[p.input.string(`proxy`,{label:`系统代理`,description:`系统代理`,placeholder:`请输入系统代理`,defaultValue:c.proxy.proxy,isClearable:!0,isRequired:!1}),p.input.string(`reverseProxy`,{label:`反向代理`,description:`反向代理`,placeholder:`请输入反向代理`,defaultValue:c.proxy.reverseProxy,isClearable:!0,isRequired:!1})]})]}),p.divider.create(`divider-2`,{description:`平台配置`,descPosition:50}),...d(await g(`GitHub`)),...l(await g(`Gitee`)),...u(await g(`GitCode`)),...f(await g(`CnbCool`))],save:async e=>{console.log(`config`,e);let t=e.token[0],n=e.proxy[0];c.Modify(`proxy`,`proxy`,n.proxy),c.Modify(`proxy`,`reverseProxy`,n.reverseProxy);{c.Modify(`token`,`github`,t.github);let n=`GitHub`,r=e.github[0],i=e[`pushlist:github`],a=h(i,await g(n),_),o=h(await g(n),i,_);await v(a,n),await y(o,n),c.Modify(`github`,`cron`,r.cron)}{c.Modify(`token`,`gitee`,t.gitee);let n=e.gitee[0],r=`GitHub`;c.Modify(`gitee`,`cron`,n.cron);let i=e[`pushlist:gitee`],a=h(i,await g(r),_),o=h(await g(r),i,_);await v(a,r),await y(o,r)}{c.Modify(`token`,`gitcode`,t.gitcode);let n=e.gitcode[0],r=`GitCode`,i=e[`pushlist:gitcode`];c.Modify(`gitcode`,`cron`,n.cron);let a=h(i,await g(r),_),o=h(await g(r),i,_);await v(a,r),await y(o,r)}{c.Modify(`token`,`cnbcool`,t.cnbcool);let n=e.cnbcool[0],r=`CnbCool`,i=e[`pushlist:cnbcool`],a=h(i,await g(r),_),o=h(await g(r),i,_);await v(a,r),await y(o,r),c.Modify(`cnbcool`,`cron`,n.cron)}return{success:!0,message:`保存成功 Ciallo~(∠・ω< )⌒☆`}}});export{b as default};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@candriajs/karin-plugin-git",
3
- "version": "1.4.0",
3
+ "version": "1.8.0",
4
4
  "description": "一个karin的git平台仓库订阅推送",
5
5
  "keywords": [
6
6
  "karin-plugin",
@@ -38,7 +38,7 @@
38
38
  "watch": "cross-env EBV_FILE=\"development.env\" tsx watch --include \"src/**/*.ts\" src/app.ts"
39
39
  },
40
40
  "dependencies": {
41
- "@puniyu/component": "^0.6.0",
41
+ "@puniyu/lumio": "^0.1.2",
42
42
  "es-toolkit": "^1.44.0",
43
43
  "nipaw": "npm:@puniyu/nipaw@^1.9.5"
44
44
  },