Skip to content

Commit

Permalink
feat: automatically agree group request (#14)
Browse files Browse the repository at this point in the history
  • Loading branch information
lava081 authored Aug 27, 2024
1 parent 02583f2 commit 8603adb
Show file tree
Hide file tree
Showing 2 changed files with 105 additions and 5 deletions.
84 changes: 81 additions & 3 deletions apps/进退群通知.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { karin, YamlEditor } from 'node-karin'
import { karin, YamlEditor, Cfg, segment } from 'node-karin'
import { Config } from '../components/index.js'

const groupState = {}
Expand Down Expand Up @@ -96,10 +96,88 @@ const updateNotificationStatus = async (e, action, successMessage, alreadyMessag
}
}

export const deal_invited_group = karin.accept('request.invited_group',
async (e) => {
const opts = Config.Other.DealRequest.InvitedJoinGroup
if (opts.accept) {
await e.bot.SetInvitedJoinGroupResult(e.raw_event.flag, true)
}
if (!opts.notify) return
const AvatarUrl = await e.bot.getGroupAvatarUrl(e.group_id)
Cfg.master.concat(Cfg.admin).forEach(master => {
try {
e.bot.SendMessage({ scene: 'friend', peer: master }, [
segment.image(AvatarUrl),
segment.text(`接到群『${e.group_id}』的拉群申请, ${opts.accept ? '已处理,' : ''}识别号: ${e.raw_event.flag}`)
])
} catch (error) { }
})
},
{
name: '处理拉群申请',
priority: 100,
log: true
}
)

export const deal_private_apply = karin.accept('request.private_apply',
async (e) => {
const opts = Config.Other.DealRequest.Friend
if (opts.accept) {
await e.bot.SetFriendApplyResult(e.raw_event.flag, true)
}
if (!opts.notify) return
const AvatarUrl = await e.bot.getAvatarUrl(e.user_id)
Cfg.master.concat(Cfg.admin).forEach(master => {
try {
e.bot.SendMessage({ scene: 'friend', peer: master }, [
segment.image(AvatarUrl),
segment.text(`接到${e.sender.nick || ''}${e.user_id}』的好友申请, ${opts.accept ? '已处理,' : ''}识别号: ${e.raw_event.flag}${e.content.message ? '\n申请理由: ' + e.content.message : ''}`)
])
} catch (error) { }
})
},
{
name: '处理加好友申请',
priority: 100,
log: true
}
)

export const deal_group_apply = karin.accept('request.group_apply',
async (e) => {
const opts = Array.isArray(Config.Other.DealRequest.Group) ? Config.Other.DealRequest.Group.find(group => group[e.group_id])[e.group_id] : Config.Other.DealRequest.Group
if (!opts) return
if (opts.accept) {
await e.bot.SetGroupApplyResult(e.raw_event.flag, true)
}
if (!opts.notify) return
const AvatarUrl = await e.bot.getAvatarUrl(e.user_id)
const GroupAvatarUrl = await e.bot.getGroupAvatarUrl(e.group_id)
Cfg.master.concat(Cfg.admin).forEach(master => {
try {
e.bot.SendMessage({ scene: 'friend', peer: master }, [
segment.image(GroupAvatarUrl),
segment.text(`接到群『${e.group_id}』的加群申请,申请人${e.sender.nick || ''}${e.user_id}』, ${opts.accept ? '已处理,' : ''}识别号: ${e.raw_event.flag}${e.content.message ? '\n申请理由: ' + e.content.message : ''}`)
])
} catch (error) { }
})
e.bot.SendMessage({ scene: 'group', peer: e.group_id }, [
segment.image(AvatarUrl),
segment.text(`接到${e.sender.nick || ''}${e.user_id}』的加群申请。 ${opts.accept ? '已处理。' : ''}${e.content.message ? '\n申请理由: ' + e.content.message : ''}`)
])
},
{
name: '处理加群申请',
priority: 100,
log: true
}
)

export const CloseNotification = karin.command(/^#关闭进群通知/, async (e) => {
return await updateNotificationStatus(e, 'add', '已经关闭群『{group_id}』的进群通知', '群『{group_id}』的进群通知目前已经处于关闭状态啦,无需重复关闭!')
}, { name: '关闭进群通知', priority: '-1', permission: 'master' })
}, { name: '关闭进群通知', priority: '-1', permission: 'group.admin' })

export const ActivateNotification = karin.command(/^#开启进群通知/, async (e) => {
return await updateNotificationStatus(e, 'remove', '已经开启群『{group_id}』的进群通知', '群『{group_id}』的进群通知目前已经处于开启状态啦,无需重复开启!')
}, { name: '开启进群通知', priority: '-1', permission: 'master' })
}, { name: '开启进群通知', priority: '-1', permission: 'group.admin' })
26 changes: 24 additions & 2 deletions config/default_config/other.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,28 @@ accept:
BlackGroup:
- "636023444"
cd: 30

# 渲染精度,可选值50~200,建议100。设置高精度会提高图片的精细度,过高可能会影响渲染与发送速度
renderScale: 100
renderScale: 100

# 群/好友请求处理
DealRequest:
# 处理拉群邀请
InvitedJoinGroup:
# 自动接受邀请
accept: false
# 给所有主人发送通知
notify: true
# 处理好友请求
Friend:
accept: false
notify: true
# 处理入群请求
Group:
# 支持指定若干群启用,指定后为白名单模式,只有在列表中的群才会被处理
- "12345":
accept: false
notify: true
# 支持全局设置,不指定群号则为全局设置
# accept: false
# notify: true

0 comments on commit 8603adb

Please sign in to comment.