package snapchat import ( "log" "git.1750studios.com/AniNite/SocialDragon/database" ) // LoadNewSnaps loads all new snaps from snapchat func LoadNewSnaps() { log.Print("Loading new Snaps...") cons, err := GetConversations() if err != nil { log.Printf("Can't load snaps: %+v", err) return } for _, con := range cons.ConversationsResponse { for _, snap := range con.PendingReceivedSnaps { var count int if database.Db.Model(database.Item{}).Where("original_id = ?", snap.ID).Count(&count); count > 0 { break } var US database.User if database.Db.Model(database.User{}).Where("name = ? AND service = ?", snap.Username, database.Snapchat).First(&US).Count(&count); count == 0 { US.DisplayName = snap.Username US.Name = snap.Username US.Service = database.Snapchat US.Blocked = false database.Db.Create(&US) } log.Printf("Found new Snap %s from %s", snap.ID, snap.Username) uname, err := GetBlob(snap) if err != nil { log.Printf("Can't load snap %s: %+v", snap.ID, err) return } log.Printf("Loaded snap %s, location %s!", snap.ID, uname) var IT database.Item IT.UserID = US.ID IT.IsVideo = snap.Movie != 0 IT.OriginalID = snap.ID IT.Path = uname IT.Service = database.Snapchat if US.Blocked { IT.State = database.Rejected } else { IT.State = database.Inbox } database.Db.Create(&IT) err = MarkAsSeen(snap, false) if err != nil { log.Printf("Could not mark snap %s as seen: %+v", snap.ID, err) return } } } log.Printf("Finished looking for new snaps.") }