@@ -15,64 +15,62 @@ public object MiraiSkiaPlugin : KotlinPlugin(
15
15
JvmPluginDescription (
16
16
id = "xyz.cssxsh.mirai.mirai-skia-plugin",
17
17
name = "mirai-skia-plugin",
18
- version = "1.0.0-dev ",
18
+ version = "1.0.0",
19
19
) {
20
20
author("cssxsh")
21
21
}
22
22
) {
23
23
24
24
override fun onEnable () {
25
- launch {
26
- logger.info { " platform: ${hostId} , skia: ${Version .skia} , skiko: ${Version .skiko} " }
27
- loadFace(folder = dataFolder.resolve(" face" ))
28
- loadTypeface(folder = dataFolder.resolve(" fonts" ),
29
- " https://mirrors.tuna.tsinghua.edu.cn/github-release/be5invis/Sarasa-Gothic/LatestRelease/sarasa-gothic-ttc-0.35.9.7z" ,
30
- " http://dl.font.im/Noto_Sans.zip" ,
31
- " http://dl.font.im/Noto_Serif.zip"
32
- )
33
- logger.info { " fonts: ${FontUtils .provider.makeFamilies().keys} " }
34
- }
35
-
36
- // Test
37
- globalEventChannel().subscribeMessages {
38
- """ ^#ph\s+(\S+)\s+(\S+)""" .toRegex() findingReply { result ->
39
- logger.info { " ph ${result.value} " }
40
- val (porn, hub) = result.destructured
25
+ logger.info { " platform: ${hostId} , skia: ${Version .skia} , skiko: ${Version .skiko} " }
26
+ loadTypeface(folder = dataFolder.resolve(" fonts" ))
27
+ logger.info { " fonts: ${FontUtils .provider.makeFamilies().keys} " }
41
28
42
- subject.uploadImage(resource = pornhub(porn, hub).makeSnapshotResource())
29
+ val test = System .getProperty(" xyz.cssxsh.skia.test" , " false" ).toBoolean()
30
+ if (test) {
31
+ launch {
32
+ loadFace(folder = dataFolder.resolve(" face" ))
43
33
}
44
- """ ^#pet( \d+(?:\.\d+)?)?""" .toRegex() findingReply { result ->
45
- logger.info { " pet ${result.value} " }
46
- val delay = result.groups[1 ]?.value?.toDoubleOrNull() ? : 0.02
47
- val user = message.findIsInstance<At >()?.target?.let { (subject as ? Group )?.get(it) } ? : sender
48
- val file = dataFolder.resolve(" ${user.id} .jpg" )
49
- if (file.exists().not ()) download(urlString = user.avatarUrl, folder = dataFolder).renameTo(file)
50
- val face = SkiaImage .makeFromEncoded(file.readBytes())
34
+ globalEventChannel().subscribeMessages {
35
+ """ ^#ph\s+(\S+)\s+(\S+)""" .toRegex() findingReply { result ->
36
+ logger.info { " ph ${result.value} " }
37
+ val (porn, hub) = result.destructured
51
38
52
- subject.uploadImage(resource = SkiaExternalResource (origin = petpet(face, delay), formatName = " gif" ))
53
- }
54
- """ ^#shout(.+)""" .toRegex() findingReply { result ->
55
- logger.info { " shout ${result.value} " }
56
- val lines = message.firstIsInstance<PlainText >().content
57
- .removePrefix(" #shout" )
58
- .split(' ' ).filterNot { it.isBlank() }
59
- .toTypedArray()
60
- subject.uploadImage(resource = shout(lines = lines).makeSnapshotResource())
61
- }
62
- """ ^#choyen\s+(\S+)\s+(\S+)""" .toRegex() findingReply { result ->
63
- logger.info { " choyen ${result.value} " }
64
- val (top, bottom) = result.destructured
39
+ subject.uploadImage(resource = pornhub(porn, hub).makeSnapshotResource())
40
+ }
41
+ """ ^#pet( \d+(?:\.\d+)?)?""" .toRegex() findingReply { result ->
42
+ logger.info { " pet ${result.value} " }
43
+ val delay = result.groups[1 ]?.value?.toDoubleOrNull() ? : 0.02
44
+ val user = message.findIsInstance<At >()?.target?.let { (subject as ? Group )?.get(it) } ? : sender
45
+ val file = dataFolder.resolve(" ${user.id} .jpg" )
46
+ if (file.exists().not ()) download(urlString = user.avatarUrl, folder = dataFolder).renameTo(file)
47
+ val face = SkiaImage .makeFromEncoded(file.readBytes())
65
48
66
- subject.uploadImage(resource = choyen(top, bottom).makeSnapshotResource())
67
- }
68
- """ ^#lick""" .toRegex() findingReply { result ->
69
- logger.info { " lick ${result.value} " }
70
- val user = message.findIsInstance<At >()?.target?.let { (subject as ? Group )?.get(it) } ? : sender
71
- val file = dataFolder.resolve(" ${user.id} .jpg" )
72
- if (file.exists().not ()) download(urlString = user.avatarUrl, folder = dataFolder).renameTo(file)
73
- val face = SkiaImage .makeFromEncoded(file.readBytes())
49
+ subject.uploadImage(resource = SkiaExternalResource (origin = petpet(face, delay), formatName = " gif" ))
50
+ }
51
+ """ ^#shout(.+)""" .toRegex() findingReply { result ->
52
+ logger.info { " shout ${result.value} " }
53
+ val lines = message.firstIsInstance<PlainText >().content
54
+ .removePrefix(" #shout" )
55
+ .split(' ' ).filterNot { it.isBlank() }
56
+ .toTypedArray()
57
+ subject.uploadImage(resource = shout(lines = lines).makeSnapshotResource())
58
+ }
59
+ """ ^#choyen\s+(\S+)\s+(\S+)""" .toRegex() findingReply { result ->
60
+ logger.info { " choyen ${result.value} " }
61
+ val (top, bottom) = result.destructured
62
+
63
+ subject.uploadImage(resource = choyen(top, bottom).makeSnapshotResource())
64
+ }
65
+ """ ^#lick""" .toRegex() findingReply { result ->
66
+ logger.info { " lick ${result.value} " }
67
+ val user = message.findIsInstance<At >()?.target?.let { (subject as ? Group )?.get(it) } ? : sender
68
+ val file = dataFolder.resolve(" ${user.id} .jpg" )
69
+ if (file.exists().not ()) download(urlString = user.avatarUrl, folder = dataFolder).renameTo(file)
70
+ val face = SkiaImage .makeFromEncoded(file.readBytes())
74
71
75
- subject.uploadImage(resource = SkiaExternalResource (origin = lick(face), formatName = " gif" ))
72
+ subject.uploadImage(resource = SkiaExternalResource (origin = lick(face), formatName = " gif" ))
73
+ }
76
74
}
77
75
}
78
76
}
0 commit comments