本文整理汇总了Golang中github.com/janimo/textsecure.Message.Timestamp方法的典型用法代码示例。如果您正苦于以下问题:Golang Message.Timestamp方法的具体用法?Golang Message.Timestamp怎么用?Golang Message.Timestamp使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/janimo/textsecure.Message
的用法示例。
在下文中一共展示了Message.Timestamp方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: saveAttachment
func saveAttachment(contact contactInfo, attachment io.Reader, name string, msg *textsecure.Message) (err error) {
var output *os.File
attachmentPath := contact.AttachmentDir
err = os.MkdirAll(attachmentPath, 0700)
if err != nil {
return
}
if name == "" {
output, err = ioutil.TempFile(attachmentPath, "attachment_")
} else {
outputPath := filepath.Join(attachmentPath, name)
output, err = os.OpenFile(outputPath, os.O_WRONLY|os.O_CREATE|os.O_EXCL|os.O_TRUNC, 0600)
}
if err != nil {
return
}
defer output.Close()
io.Copy(output, attachment)
status.Log(syslog.LOG_NOTICE, "saved attachment from %s %s\n", contact.Name, contact.Number)
name = relativePath(output.Name())
updateHistory(contact, "["+name+"]", "<", msg.Timestamp())
return
}
示例2: messageHandler
func messageHandler(msg *textsecure.Message) {
status.Log(syslog.LOG_NOTICE, "received message from %s\n", msg.Source())
go func() {
n := status.Notify(syslog.LOG_NOTICE, "received message from %s\n", msg.Source())
time.Sleep(30 * time.Second)
status.Remove(n)
}()
contact, err := getContact(msg.Source())
if err != nil {
status.Error(err)
return
}
if msg.Message() != "" {
updateHistory(contact, msg.Message(), "<", msg.Timestamp())
}
attachments := msg.Attachments()
attachmentPattern := regexp.MustCompile("\\[" + attachmentMsg + "(.*)\\]$")
m := attachmentPattern.FindStringSubmatch(msg.Message())
// assign random name by default, use name embedded in msg for
// attachment sent via INTERLOCK
name := ""
if len(attachments) == 1 && len(m) == 2 {
name = path.Base(m[1])
}
for _, a := range attachments {
err := saveAttachment(contact, a, name, msg)
if err != nil {
status.Error(err)
return
}
}
}
示例3: timestamp
func timestamp(msg *textsecure.Message) string {
t := msg.Timestamp()
return t.Format(timeFormat)
}
示例4: timestamp
func timestamp(msg *textsecure.Message) string {
t := time.Unix(0, int64(msg.Timestamp())*1000000)
return t.Format(timeFormat)
}
示例5: messageHandler
func messageHandler(msg *textsecure.Message) {
var err error
f := ""
mt := ""
if len(msg.Attachments()) > 0 {
mt = msg.Attachments()[0].MimeType
f, err = saveAttachment(msg.Attachments()[0])
if err != nil {
log.Printf("Error saving %s\n", err.Error())
}
}
msgFlags := 0
text := msg.Message()
if msg.Flags() == textsecure.EndSessionFlag {
text = sessionReset
msgFlags = msgFlagResetSession
}
gr := msg.Group()
if gr != nil && gr.Flags != 0 {
_, ok := groups[gr.Hexid]
members := ""
if ok {
members = groups[gr.Hexid].Members
}
av := []byte{}
if gr.Avatar != nil {
av, err = ioutil.ReadAll(gr.Avatar)
if err != nil {
log.Println(err)
return
}
}
groups[gr.Hexid] = &GroupRecord{
GroupID: gr.Hexid,
Members: strings.Join(gr.Members, ","),
Name: gr.Name,
Avatar: av,
Active: true,
}
if ok {
updateGroup(groups[gr.Hexid])
} else {
saveGroup(groups[gr.Hexid])
}
if gr.Flags == textsecure.GroupUpdateFlag {
dm, _ := membersDiffAndUnion(members, strings.Join(gr.Members, ","))
text = groupUpdateMsg(dm, gr.Name)
msgFlags = msgFlagGroupUpdate
}
if gr.Flags == textsecure.GroupLeaveFlag {
text = telToName(msg.Source()) + " has left the group."
msgFlags = msgFlagGroupLeave
}
}
s := msg.Source()
if gr != nil {
s = gr.Hexid
}
session := sessionsModel.Get(s)
m := session.Add(text, msg.Source(), f, mt, false)
m.ReceivedAt = uint64(time.Now().UnixNano() / 1000000)
m.SentAt = msg.Timestamp()
m.HTime = humanizeTimestamp(m.SentAt)
qml.Changed(m, &m.HTime)
session.Timestamp = m.SentAt
session.When = m.HTime
qml.Changed(session, &session.When)
if gr != nil && gr.Flags == textsecure.GroupUpdateFlag {
session.Name = gr.Name
qml.Changed(session, &session.Name)
}
if msgFlags != 0 {
m.Flags = msgFlags
qml.Changed(m, &m.Flags)
}
saveMessage(m)
updateSession(session)
}