Fix the problem that the synchronization session is not consistent with the skype side
This commit is contained in:
parent
ab5d852629
commit
891ff890db
|
@ -484,7 +484,7 @@ func (handler *CommandHandler) CommandSync(ce *CommandEvent) {
|
|||
ce.Reply("Failed to contacts chat list (see logs for details)")
|
||||
}
|
||||
ce.Reply("Syncing conversations...")
|
||||
err = ce.User.Conn.GetConversations("")
|
||||
err = ce.User.Conn.GetConversations("", user.bridge.Config.Bridge.InitialChatSync)
|
||||
if err != nil {
|
||||
user.log.Errorln("Error get conversations:", err)
|
||||
ce.Reply("Failed to conversations list (see logs for details)")
|
||||
|
@ -625,7 +625,7 @@ func (handler *CommandHandler) CommandList(ce *CommandEvent) {
|
|||
return
|
||||
}
|
||||
} else {
|
||||
err = ce.User.Conn.GetConversations("")
|
||||
err = ce.User.Conn.GetConversations("", handler.bridge.Config.Bridge.InitialChatSync)
|
||||
if err != nil {
|
||||
ce.Reply("Get conversations error")
|
||||
return
|
||||
|
@ -669,7 +669,7 @@ func (handler *CommandHandler) CommandOpen(ce *CommandEvent) {
|
|||
ce.Reply("That looks like a user ID. Did you mean `pm %s`?", jid[:len(jid)-len(whatsappExt.NewUserSuffix)])
|
||||
return
|
||||
}
|
||||
ce.User.Conn.GetConversations("")
|
||||
ce.User.Conn.GetConversations("", handler.bridge.Config.Bridge.InitialChatSync)
|
||||
fmt.Println("user.Conn.Store.Chats: ", user.Conn.Store.Chats)
|
||||
chat, ok := user.Conn.Store.Chats[jid]
|
||||
if !ok {
|
||||
|
@ -923,7 +923,7 @@ func (handler *CommandHandler) CommandInvite(ce *CommandEvent) {
|
|||
fmt.Println("user.Conn.Store.Chats", user.Conn.Store.Contacts)
|
||||
if !ok {
|
||||
//user.Conn
|
||||
err := ce.User.Conn.GetConversations("")
|
||||
err := ce.User.Conn.GetConversations("", handler.bridge.Config.Bridge.InitialChatSync)
|
||||
//time.Sleep(5 * time.Second)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
|
|
|
@ -105,6 +105,8 @@ bridge:
|
|||
end: true
|
||||
|
||||
# Number of chats to sync for new users.
|
||||
# Since some of the obtained conversations are not the conversations that the user needs to see,
|
||||
# the actual number of conversations displayed on the matrix client will be slightly less than the set value
|
||||
initial_chat_sync_count: 10
|
||||
# Number of old messages to fill when creating new portal rooms.
|
||||
initial_history_fill_count: 20
|
||||
|
|
|
@ -620,6 +620,10 @@ func (portal *Portal) SyncSkype(user *User, chat skype.Conversation) {
|
|||
} else {
|
||||
fmt.Println("SyncSkype ensureUserInvited", portal.MXID)
|
||||
portal.ensureUserInvited(user)
|
||||
rep, err := portal.MainIntent().SetPowerLevel(portal.MXID, user.MXID, 100)
|
||||
if err != nil {
|
||||
portal.log.Warnfln("SyncSkype: SetPowerLevel err: ", err, rep)
|
||||
}
|
||||
}
|
||||
|
||||
if portal.IsPrivateChat() {
|
||||
|
@ -680,7 +684,7 @@ func (portal *Portal) SyncSkype(user *User, chat skype.Conversation) {
|
|||
func (portal *Portal) GetBasePowerLevels() *event.PowerLevelsEventContent {
|
||||
anyone := 0
|
||||
nope := 99
|
||||
invite := 99
|
||||
invite := 50
|
||||
if portal.bridge.Config.Bridge.AllowUserInvite {
|
||||
invite = 0
|
||||
}
|
||||
|
|
16
user.go
16
user.go
|
@ -399,7 +399,7 @@ func (user *User) Login(ce *CommandEvent, name string, password string) {
|
|||
user.JID = "8:" + user.Conn.UserProfile.Username + skypeExt.NewUserSuffix
|
||||
user.addToJIDMap()
|
||||
//user.PostLogin()
|
||||
ce.User.Conn.GetConversations("")
|
||||
ce.User.Conn.GetConversations("", user.bridge.Config.Bridge.InitialChatSync)
|
||||
}
|
||||
func loopPresence(user *User) {
|
||||
Loop:
|
||||
|
@ -571,8 +571,18 @@ func (user *User) syncPortals(chatMap map[string]skype.Conversation, createAll b
|
|||
if chat.Properties.ConversationStatus != "Accepted" && len(chat.ThreadProperties.Lastjoinat) < 1 {
|
||||
continue
|
||||
}
|
||||
// user.log.Warnfln("Non-integer last message time in %s: %s", chat.Id, t)
|
||||
//continue
|
||||
}
|
||||
// Filter calllogs conversation
|
||||
if chat.Id == "48:calllogs" {
|
||||
continue
|
||||
}
|
||||
// Filter conversations that have not sent messages
|
||||
if chat.LastMessage.Id == "" {
|
||||
continue
|
||||
}
|
||||
// 'Lastleaveat' value means that you have left the current conversation
|
||||
if len(chat.ThreadProperties.Lastleaveat) > 0 {
|
||||
continue
|
||||
}
|
||||
ts := uint64(t.UnixNano())
|
||||
cid, _ := chat.Id.(string)
|
||||
|
|
Loading…
Reference in New Issue