HermesApp / Hermes

Compact macOS Pandora client that doesn’t use Flash
http://hermesapp.org/
MIT License
381 stars 99 forks source link

An error has occurred with Pandora #296

Closed specter119 closed 7 years ago

specter119 commented 7 years ago

current only show Read only mode, this situation lasts 2 days.

ryanbeymer commented 7 years ago

Bumped into the same thing, is pandora locking the account logged in?

nriley commented 7 years ago

Unlikely to be able to take a look at this for weeks to months, but just in case someone else jumps in… does this mean nothing is playing? Unfortunately Hermes’ GUI error reporting is pretty bad. Can you enable logging and see if there's anything more useful in there? (https://github.com/HermesApp/Hermes/blob/15228086486f02966bb7ec5841c94efc1a5947d5/Documentation/FAQ.md)

ryanbeymer commented 7 years ago

Code= 1000 (https://6xq.net/pandora-apidoc/json/errorcodes/)

Looks to be related to their new UI.

Pandora.m:290 -[Pandora doPartnerLogin:] Getting partner ID...
Pandora.m:842 -[Pandora sendRequest:] https://tuner.pandora.com/services/json/?method=auth.partnerLogin&partner_id=&auth_token=&user_id=
Pandora.m:842 -[Pandora sendRequest:] https://tuner.pandora.com/services/json/?method=auth.userLogin&partner_id=42&auth_token={redacted}&user_id=
Pandora.m:842 -[Pandora sendRequest:] https://tuner.pandora.com/services/json/?method=user.canSubscribe&partner_id=42&auth_token={redacted}&user_id={redacted}
HermesAppDelegate.m:693 -[HermesAppDelegate handlePandoraError:] error received {
    code = 1000;
    error = "An unexpected error occurred";
    request = "<PandoraRequest 0x7f85d2c935c0 user.canSubscribe>";
}
Pandora.m:842 -[Pandora sendRequest:] https://tuner.pandora.com/services/json/?method=user.canSubscribe&partner_id=42&auth_token={redacted}&user_id={redacted}
HermesAppDelegate.m:693 -[HermesAppDelegate handlePandoraError:] error received {
    code = 1000;
    error = "An unexpected error occurred";
    request = "<PandoraRequest 0x7f85d2c935c0 user.canSubscribe>";
}
Pandora.m:842 -[Pandora sendRequest:] https://tuner.pandora.com/services/json/?method=user.canSubscribe&partner_id=42&auth_token={redacted}&user_id={redacted}
bonwag commented 7 years ago

+1 - same issue

ryanbeymer commented 7 years ago

For the record, spinning up a new account on a different email is a workaround to the issue.

yerke commented 7 years ago

I have the same problem. I believe this issue could be caused by entering incorrect password several times.

HermesAppDelegate.m:198 -[HermesAppDelegate applicationDidFinishLaunching:] Starting in debug mode. Log file: /Users/yerke/Library/Logs/Hermes/HermesLog_2017-03-1800:10:20-0700.log Pandora.m:290 -[Pandora doPartnerLogin:] Getting partner ID... Pandora.m:842 -[Pandora sendRequest:] https://tuner.pandora.com/services/json/?method=auth.partnerLogin&partner_id=&auth_token=&user_id= Pandora.m:842 -[Pandora sendRequest:] https://tuner.pandora.com/services/json/?method=auth.userLogin&partner_id=42&auth_token={redacted}user_id= Pandora.m:842 -[Pandora sendRequest:] https://tuner.pandora.com/services/json/?method=user.canSubscribe&partner_id=42&auth_token={redacted}&user_id={redacted} HermesAppDelegate.m:693 -[HermesAppDelegate handlePandoraError:] error received { code = 1000; error = "An unexpected error occurred"; request = "<PandoraRequest 0x600000284b00 user.canSubscribe>"; } Pandora.m:842 -[Pandora sendRequest:] https://tuner.pandora.com/services/json/?method=user.canSubscribe&partner_id=42&auth_token={redacted}&user_id={redacted} HermesAppDelegate.m:693 -[HermesAppDelegate handlePandoraError:] error received { code = 1000; error = "An unexpected error occurred"; request = "<PandoraRequest 0x600000284b00 user.canSubscribe>"; }

cassdalton commented 7 years ago

I am also experiencing this. Some previous issue reports suggest to logout from the pandora menu, but my pandora menu is completely grayed out. I can access pandora from Chrome (on Mac) just fine, but Hermes continues to give the read only error. Is there a way to manually log Hermes out of pandora or some how force a reentry of login credentials?

yerke commented 7 years ago

I have a little update. As it is obvious from the logs posted here, user.canSubscribe method fails for some strange reason for some users. It returns error with code 1000 and message "An unexpected error occurred". From the list of error codes I found here (https://6xq.net/pandora-apidoc/json/errorcodes/), code 1000 should be "READ_ONLY_MODE", which obviously doesn't match.

I could partly fix issue by changing - (BOOL)doUserLogin:(NSString *)username password:(NSString *)password callback:(PandoraCallback)callback function in Pandora.m and adding

    self.cachedSubscriberStatus = @NO;

right before

    if (self.cachedSubscriberStatus == nil) {
      // Get subscriber status then reinvoke this method
      [self checkSubscriberStatus:^(NSDictionary *respDict) {
        [self doUserLogin:username password:password callback:callback];
      }];
      return;
    } else if (self.cachedSubscriberStatus.boolValue &&
               ![self.device[kPandoraDeviceUsername] isEqualToString:@"pandora one"]) {
      // Change our device to the desktop client, logout, then reinvoke this method
      NSLogd(@"Subscriber detected, re-logging-in...");
      self.device = [PandoraDevice desktop];
      [self logoutNoNotify];
      [self doUserLogin:username password:password callback:callback];
      return;
    }

Obviously this is a temporary fix and does not work if you are a PandoraOne subscriber. Hope it helps someone.

yerke commented 7 years ago

Okay. I found a way to get subscriber status without user.canSubscribe method just by passing additional parameter returnIsSubscriber: true in auth.userLogin, which is called before checkSubscriberStatus anyway.

I made pull request (https://github.com/HermesApp/Hermes/pull/298) that deals with this issue for both free and paid accounts.

Please let me know if it works fine for you (if you have the same issue).

nriley commented 7 years ago

I've released 1.3.1b1 with the changes @yerke made. I've never seen this issue myself but I'm a Pandora One subscriber.

Full changelog here. Please test and if it looks good I'll release in a day or two.

yerke commented 7 years ago

Works fine for me. Thanks

ryanbeymer commented 7 years ago

Works for me, i'm back in with my old account

specter119 commented 7 years ago

works for me.

nriley commented 7 years ago

OK, Hermes 1.3.1 is released. Thanks for your patience, everyone, and again to @yerke for tracking this down; closing for now.

cassdalton commented 7 years ago

Fixed my problem. Thanks.