123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- package voicemail
- import (
- "encoding/json"
- "pms-api-go/pkg/lfshook"
- "strings"
- "gopkg.in/ini.v1"
- )
- // {"vmBox": "100", "newMsgs": "9"}
- type VocieMailNew struct {
- VMBox string `json:"vmBox"`
- NewMsgs string `json:"newMsgs"`
- }
- func ParseVoiceMailNew(in string) map[string]string {
- data := strings.Split(in, "\n")
- result := make(map[string]string)
- for _, item := range data {
- member := &VocieMailNew{}
- json.Unmarshal([]byte(item), member)
- result[member.VMBox] = member.NewMsgs
- }
- return result
- }
- type VoiceMail struct {
- ID string `json:"id"`
- Extension string `json:"extension"`
- MsgPath string `json:"msgPath"`
- MsgID string `json:"msgID"`
- Date string `json:"date"`
- Duration string `json:"duration"`
- CallerID string `json:"callerID"`
- Type string `json:"type"`
- Origdate string `json:"origdate"`
- }
- func ParseVoiceMail(in string) []*VoiceMail {
- data := strings.Split(in, "\n")
- result := make([]*VoiceMail, len(data))
- for index, item := range data {
- vmInfo := strings.Split(item, ",")
- member := &VoiceMail{
- ID: vmInfo[0],
- Extension: vmInfo[1],
- MsgPath: vmInfo[5],
- MsgID: vmInfo[4],
- Type: vmInfo[3],
- }
- iniInfo, err := ini.Load(vmInfo[2])
- if err != nil {
- lfshook.NewLogger().Error(err)
- } else {
- member.Duration = iniInfo.Section("message").Key("duration").Value()
- member.Origdate = iniInfo.Section("message").Key("origdate").Value()
- member.CallerID = iniInfo.Section("message").Key("callerid").Value()
- }
- result[index] = member
- }
- return result
- }
|