Andreas Mieke
0a69d4a9f2
Implemented getters for: * Snapchat * Twitter * Instagram Also implemented config and database modules.
58 lines
1.5 KiB
Go
58 lines
1.5 KiB
Go
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.")
|
|
}
|