Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
Colter23 committed Aug 24, 2022
1 parent 86a031f commit 3f6e9f7
Show file tree
Hide file tree
Showing 9 changed files with 75 additions and 44 deletions.
60 changes: 32 additions & 28 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
## 特性
**无论多少订阅均可在最低 10s 内检测所有动态**
使用 [skiko](https://github.com/JetBrains/skiko) 绘图
番剧订阅
动态过滤
扫码登录
可配置性高
Expand Down Expand Up @@ -50,13 +51,15 @@ Vtuber 字幕组及粉丝群如需要使用可通过群联系我, 使用我搭
如果你对这张图有什么建议也可以反馈
<img src="docs/img/help.png" width="500" alt="帮助">

| 订阅相关 | 描述 |
|-------------------------------------|---------------------|
| `/bili <h / help / menu / 帮助>` | 获取上面的帮助图片 |
| `/bili <login / 登录>` | 扫码登录 (需在配置文件中配置管理员) |
| `/bili <add / 添加 / 订阅> <id> [目标]` | 为目标 [目标] 添加一个订阅 |
| `/bili <del / 删除> <uid / 用户名> [目标]` | 为目标 [目标] 删除一个订阅 |
| `/bili <delAll / 删除全部订阅> [目标]` | 将目标 [目标] 的全部订阅删除 |
### 基础指令

| 订阅相关 | 描述 |
|------------------------------------|--------------------------------------------------------------------------------|
| `/bili <h / help / menu / 帮助>` | 获取上面的帮助图片 |
| `/bili <login / 登录>` | 扫码登录 (需在配置文件中配置管理员) |
| `/bili <add / 添加 / 订阅> <id> [目标]` | 为目标 [目标] 添加一个订阅 (id 可以为 用户ID 也可以为 番剧ID ) 番剧ID格式: `ss11111` `md22222` `ep33333` |
| `/bili <del / 删除> <id / 用户名> [目标]` | 为目标 [目标] 删除一个订阅 (id 可以为 用户ID 也可以为 番剧ID ) 删除用户同时支持用户名删除 |
| `/bili <delAll / 删除全部订阅> [目标]` | 将目标 [目标] 的全部订阅删除 |

| 订阅列表 | 描述 |
|--------------------------------------------|-------------------------|
Expand All @@ -79,13 +82,13 @@ Vtuber 字幕组及粉丝群如需要使用可通过群联系我, 使用我搭
| `/bili <search / s / 搜索> <动态ID>` | 通过ID搜索一个动态 |
| `/bili <new / 最新动态> <uid / 用户名> [数量]` | 获取用户最新动态 (支持用户名本地模糊搜索) |

| [分组指令](#分组指令) (v3.0.3) |
|------------------------|
| [分组指令](#分组指令) |
|-----------------|

| [动态过滤指令](#动态过滤指令) |
|--------------------|

**指令中的 `目标` 可以是 好友/群/分组 (v3.0.3)**
**指令中的 `目标` 可以是 好友 / 群 / 分组**

推荐使用 `config` 指令配置 模板 过滤器

Expand All @@ -104,18 +107,6 @@ Vtuber 字幕组及粉丝群如需要使用可通过群联系我, 使用我搭
/bili t d ForwardMsg #为当前群/好友动态推送模板设置为ForwardMsg
```

### 分组指令 (v3.0.3)
| 分组指令 | 描述 |
|-------------------------------------------------------|----------------------------------------|
| `/bili <create / 创建分组> <分组名>` | 创建一个分组 (分组名不能全为数字) |
| `/bili <listGroup / lg / 分组列表> [分组名]` | 查询分组列表 |
| `/bili <delGroup / dg / 删除分组> <分组名>` | 删除分组 (删除分组会同时删除分组所有数据) |
| `/bili <push / 添加分组> <分组名> <群/Q号列表>` | 向分组内添加用户 (支持批量添加,中间用逗号隔开) |
| `/bili <ban> <分组名> <群/Q号列表>` | 删除分组内用户 (支持批量删除,中间用逗号隔开) |
| `/bili <addGroupAdmin / aga / 添加分组管理员> <分组名> <QQ号列表>` | 设置分组管理员 (管理员只能是好友,不能是群。支持批量删除,中间用逗号隔开) |
| `/bili <banGroupAdmin / bga / 删除分组管理员> <分组名> <QQ号列表>` | 删除分组管理员 (支持批量删除,中间用逗号隔开) |


### 动态过滤指令
推荐使用 `/bili config` 交互式配置

Expand All @@ -130,13 +121,13 @@ Vtuber 字幕组及粉丝群如需要使用可通过群联系我, 使用我搭

过滤器模式黑名单模式

| 指令 | 描述 |
|-----------------------------------------------------------|-----------------------------------------------------------------------------|
| `/bili <filterType / ft / 类型过滤> <类型> [uid] [目标]` | 为目标 [目标] 添加 uid 的动态类型过滤器 |
| `/bili <filterReg / fr / 正则过滤> <正则表达式> [uid] [目标]` | 为目标 [目标] 添加 uid 的动态正则过滤器 |
| 指令 | 描述 |
|-------------------------------------------------------------|-----------------------------------------------------------------------------|
| `/bili <filterType / ft / 类型过滤> <类型> [uid] [目标]` | 为目标 [目标] 添加 uid 的动态类型过滤器 |
| `/bili <filterReg / fr / 正则过滤> <正则表达式> [uid] [目标]` | 为目标 [目标] 添加 uid 的动态正则过滤器 |
| `/bili <filterMode / fm / 过滤模式> <过滤器类型> <过滤器模式> [uid] [目标]` | 切换过滤器模式 <br/>过滤器类型: `t`(类型过滤器) `r`(正则过滤器) <br/>过滤器模式: `w`(白名单模式) `b`(黑名单模式) |
| `/bili <filterList / fl / 过滤列表> [uid] [目标]` | 列出 uid 的过滤器列表 |
| `/bili <filterDel / fd / 过滤删除> <index> [uid] [目标]` | 删除 uid 中 index 的过滤器 |
| `/bili <filterList / fl / 过滤列表> [uid] [目标]` | 列出 uid 的过滤器列表 |
| `/bili <filterDel / fd / 过滤删除> <index> [uid] [目标]` | 删除 uid 中 index 的过滤器 |

```
# 栗子
Expand Down Expand Up @@ -166,6 +157,19 @@ Vtuber 字幕组及粉丝群如需要使用可通过群联系我, 使用我搭
# 不填默认也为 0
```

### 分组指令
| 分组指令 | 描述 |
|-------------------------------------------------------|----------------------------------------|
| `/bili <create / 创建分组> <分组名>` | 创建一个分组 (分组名不能全为数字) |
| `/bili <listGroup / lg / 分组列表> [分组名]` | 查询分组列表 |
| `/bili <delGroup / dg / 删除分组> <分组名>` | 删除分组 (删除分组会同时删除分组所有数据) |
| `/bili <push / 添加分组> <分组名> <群/Q号列表>` | 向分组内添加用户 (支持批量添加,中间用逗号隔开) |
| `/bili <ban> <分组名> <群/Q号列表>` | 删除分组内用户 (支持批量删除,中间用逗号隔开) |
| `/bili <addGroupAdmin / aga / 添加分组管理员> <分组名> <QQ号列表>` | 设置分组管理员 (管理员只能是好友,不能是群。支持批量删除,中间用逗号隔开) |
| `/bili <banGroupAdmin / bga / 删除分组管理员> <分组名> <QQ号列表>` | 删除分组管理员 (支持批量删除,中间用逗号隔开) |

前面的 [基础指令](#基础指令)[动态过滤指令](#动态过滤指令) 中的 `目标` 可以是 好友 / 群 / 分组

## 权限
插件命令依赖 [chat-command](https://github.com/project-mirai/chat-command) 来正确处理聊天环境下的命令,请确保有此插件,否则插件可能无法正常工作

Expand Down
4 changes: 2 additions & 2 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ plugins {
}

group = "top.colter"
version = "3.0.4"
version = "3.1.0"

repositories {
mavenLocal()
Expand Down Expand Up @@ -43,7 +43,7 @@ dependencies {
}

implementation("com.google.zxing:javase:3.5.0")
compileOnly("xyz.cssxsh.mirai:mirai-skia-plugin:1.1.7")
compileOnly("xyz.cssxsh.mirai:mirai-skia-plugin:1.1.8")

testImplementation(kotlin("test", "1.7.0"))
testImplementation("org.jetbrains.skiko:skiko-awt-runtime-windows-x64:0.7.27")
Expand Down
Binary file modified docs/img/help.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ object BiliBiliDynamic : KotlinPlugin(
JvmPluginDescription(
id = "top.colter.bilibili-dynamic-mirai-plugin",
name = "BiliBili Dynamic",
version = "3.0.4",
version = "3.1.0",
) {
author("Colter")
dependsOn("xyz.cssxsh.mirai.plugin.mirai-skia-plugin", ">= 1.1.0")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,23 +53,23 @@ object DynamicCommand : CompositeCommand(
if (checkPerm(target)) {
if (pgcRegex.matches(id)) {
sendMessage(PgcService.followPgc(id, target.subject))
}else {
try {
DynamicService.addSubscribe(id.toLong(), target.subject).let {
sendMessage(it)
actionNotify(this.subject?.id, name, target.name, "订阅", it)
}
} catch (e: NumberFormatException) {
sendMessage("ID错误 [$id]")
}else try {
DynamicService.addSubscribe(id.toLong(), target.subject).let {
sendMessage(it)
actionNotify(this.subject?.id, name, target.name, "订阅", it)
}
} catch (e: NumberFormatException) {
sendMessage("ID错误 [$id]")
}
}
}

@SubCommand("del", "删除")
suspend fun CommandSender.del(user: String, target: GroupOrContact = GroupOrContact(Contact())) {
suspend fun CommandSender.del(id: String, target: GroupOrContact = GroupOrContact(Contact())) {
if (checkPerm(target)) {
matchUser(user) {
if (pgcRegex.matches(id)) {
sendMessage(PgcService.delPgc(id, target.subject))
}else matchUser(id) {
DynamicService.removeSubscribe(it, target.subject)
}?.let {
sendMessage(it)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ object DynamicService {
appendLine("番剧: ")
val cc = bangumi.count { (ssid, sub) ->
if (subject in sub.contacts) {
appendLine("${sub.title}@$ssid")
appendLine("${sub.title}@ss$ssid")
true
}else false
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ object PgcService {
}

suspend fun followPgcBySsid(ssid: Long, subject: String): String {
//return client.followPgc(ssid)?.toast!!
client.followPgc(ssid) ?: return "追番失败"
bangumi.getOrPut(ssid) {
val season = client.pgcSeasonInfo(ssid) ?: return "获取番剧信息失败, 如果是港澳台番剧请用 media id (md11111) 订阅"
Expand Down Expand Up @@ -59,6 +58,34 @@ object PgcService {
}
}

fun delPgc(id: String, subject: String): String {
val regex = pgcRegex.find(id) ?: return "ID 格式错误 例(ss11111, md22222)"

val type = regex.destructured.component1()
val id = regex.destructured.component2().toLong()

return when (type) {
"ss" -> {
val pgc = bangumi[id] ?: return "没有这个番剧哦"
if (pgc.contacts.remove(subject)) {
if (pgc.contacts.isEmpty()) bangumi.remove(id)
"删除成功"
} else "没有订阅这个番剧哦"
}
"md" -> {
val pgc = bangumi.filter { it.value.mediaId == id }.values
if (pgc.isEmpty()) return "没有这个番剧哦"
val contacts = pgc.first().contacts
if (contacts.remove(subject)) {
if (contacts.isEmpty()) bangumi.remove(pgc.first().seasonId)
"删除成功"
} else "没有订阅这个番剧哦"
}
"ep" -> "无法通过ep进行删除,请使用 ss 或 md"
else -> "额(⊙﹏⊙)"
}
}

fun type(type: Int) = when (type) {
1 -> "番剧"
2 -> "电影"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ fun trans(text: String): String? {
}
}
} catch (e: Exception) {
BiliBiliDynamic.logger.error("Baidu translation failure! 百度翻译失败!")
BiliBiliDynamic.logger.error("Baidu translation failure! 百度翻译失败! $e")
}
} else {
return null
Expand Down
Binary file modified src/main/resources/image/HELP.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 3f6e9f7

Please sign in to comment.