SocialDragon/snapchat/main.go

58 lines
1.5 KiB
Go
Raw Normal View History

package snapchat
import (
"log"
"git.1750studios.com/AniNite/SocialDragon/database"
)
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.")
}