func (adb *AniDB) User() *User {
if adb != nil && adb.udp != nil {
- return adb.udp.user
+ if adb.udp.user != nil {
+ return adb.udp.user
+ } else if adb.udp.credentials != nil {
+ // see if we can get it from the cache
+ adb.udp.user = UserByName(decrypt(adb.udp.credentials.username))
+ return adb.udp.user
+ }
}
return nil
}
udp.connected = err == nil
if udp.connected {
+ // We can't use SendRecv here as it would deadlock
ch := make(chan udpapi.APIReply, 1)
udp.sendQueueCh <- paramSet{
cmd: "USER",
return nil
}
+func UserByName(name string) *User {
+ var uid UID
+ if CacheGet(&uid, "user", "by-name", name) == nil {
+ return uid.User()
+ }
+ return nil
+}
+
func (adb *AniDB) GetCurrentUser() <-chan *User {
ch := make(chan *User, 1)