This repository has been archived by the owner on Mar 14, 2024. It is now read-only.
/
Filebox.go
85 lines (76 loc) · 2.54 KB
/
Filebox.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
package FileBox
import (
. "github.com/XRSec/Go-Wechaty-Bot/General"
"github.com/beevik/etree"
log "github.com/sirupsen/logrus"
"github.com/wechaty/go-wechaty/wechaty"
"github.com/wechaty/go-wechaty/wechaty-puppet/schemas"
"github.com/wechaty/go-wechaty/wechaty/user"
)
var (
err error
)
func New() *wechaty.Plugin {
plug := wechaty.NewPlugin()
plug.OnMessage(onMessage)
return plug
}
func onMessage(context *wechaty.Context, message *user.Message) {
if message.Type() != schemas.MessageTypeUnknown && message.Type() != schemas.MessageTypeAttachment {
log.Printf("Type Pass, Type: [%v]:[%v] CoptRight: [%s]", message.Type().String(), message.Talker().Name(), Copyright(make([]uintptr, 1)))
return
}
if message.Type() == schemas.MessageTypeRecalled {
log.Infof("Type Pass, Type: [%v]:[%v] CoptRight: [%s]", message.Type().String(), message.Talker().Name(), Copyright(make([]uintptr, 1)))
return
}
/* TODO MessageType
MessageTypeUnknown
MessageTypeAttachment
MessageTypeAudio
MessageTypeContact
MessageTypeChatHistory
MessageTypeEmoticon
MessageTypeImage
MessageTypeText
MessageTypeLocation
MessageTypeMiniProgram
MessageTypeGroupNote
MessageTypeTransfer
MessageTypeRedEnvelope
MessageTypeRecalled
MessageTypeURL
MessageTypeVideo
*/
if message.Type() == schemas.MessageTypeUnknown && message.Talker().Name() == "微信团队" {
log.Infof("Type Pass, Type: [%v]:[%v] CoptRight: [%s]", message.Type().String(), message.Talker().Name(), Copyright(make([]uintptr, 1)))
return
}
log.Infof("FileBox, Type: [%v]:[%v] CoptRight: [%s]", message.Type().String(), message.Talker().Name(), Copyright(make([]uintptr, 1)))
fileType, fileName := FileType(message)
switch fileType {
case "pdf":
log.Infof("[fileType:%v] [fileName:%v] CoptRight: [%s]", fileType, fileName, Copyright(make([]uintptr, 1)))
case "rar|zip|tar|gz":
log.Infof("[fileType:%v] [fileName:%v] CoptRight: [%s]", fileType, fileName, Copyright(make([]uintptr, 1)))
default:
log.Infof("[fileType:%v] [fileName:%v] CoptRight: [%s]", fileType, fileName, Copyright(make([]uintptr, 1)))
}
}
func FileType(message *user.Message) (string, string) {
fileType := ""
fileName := ""
doc := etree.NewDocument()
if err = doc.ReadFromString(message.MentionText()); err != nil {
log.Errorf("FileType Error: [%v] CoptRight: [%s]", err, Copyright(make([]uintptr, 1)))
}
for _, t := range doc.FindElements("//fileext") {
fileType = t.Text()
}
for _, t := range doc.FindElements("//title") {
fileName = t.Text()
}
return fileType, fileName
}
func FileBoxPDF(message *user.Message) {
}