Jump to content

bulletp2000

Active Members
  • Posts

    28
  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

bulletp2000's Achievements

Newbie

Newbie (1/14)

  1. I send HTTP requests to pandora and grab the XML auth token credentials by intercepting previous requests. I started by sending positive feedback, negative feedback, but now I also send the song.tired request as well. Most of the code is based on sample code that you provided. Here is your comment from Mar 17: I don't understand your visibility comment (as it relates to other plug-ins), but I don't have nearly the feel for the lay of the code land that you do. Perhaps, you could put back the Pandora.Crypto hooks and just have them point to the new client code?
  2. I'm sorry if I don't have this correct yet. I have modified my source to use Client.Crypto instead of Pandora.Crypto. However, now I get "Client.Crypto' is inaccessible due to its protection level. When using the MS Studio object browser (up and down the tree), I am not able to find this function in PandoraClient.dll or Saver.Pandora.dll or Saver2.dll or SProxy.exe. What am I missing?
  3. ZZJ, With the latest code release (Nov 6), my Saver2 plug-in will no longer compile. During compliation, I get: The type or namespace 'Crypto' does not exist in the namespace 'Pandora' (are you missing an assembly reference?) For my lines of code: Pandora.Crypto.DecryptStr() and Pandora.Crypto.EncryptStr() Also get a similar message during run-time. Did something change with this latest release?
  4. From "I think they changed the keys. . ." Could you elaborate on this? In the current setup, the Sync request gives a unique security key that you send back in every request along with a timing interval. Has this mechanism changed? What did Pandora change that is breaking everything? How could they change something like this and maintain backward compatibility? I'm sorry if this is a stupid question. I own a WD HD TV Live Pro (physical device) that let's me play Pandora on my TV. I have used it every day this week without issue (no firmware updates) . If they changed the keys, wouldn't it break this device? Just a little bit confused. . . And as always - LOVE the work that you are doing!
  5. Oh, just that there are lots of moving pieces SProxy, Saver2, Saver.Pandora, and Saver.PandoraEX. It's nice in the log to see where each piece stands when something goes wrong.
  6. Glad to see that it was something simple. I don't need access to .toHTML() specifically, but I would like access to some function that prints all of the current settings to a string. I was object browsing and found toHTML() met my needs (enumerated all of the settings). Here's a snippet of my code: public PandoraEx() : base() { . . . . basic startup stuff here . . .. // start logging LogIt("PandoraSaverEx init"); getAJAXAuthToken(); LogIt("Base Settings: " + Settings.toHTML()); LogIt("Pandora Settings: " + StatusRptHTML(), false); // launch the helper launch_helper(); } BTW in my code, I keep my feedback (1 star to 5 star) plus the Pandora IDs for all the songs played in MP3 tags, so that I can play radio station DJ later. For example - I created a "female artist" station by copying all of the female lead songs from one directory to another. Then I manually create a Pandora station and have the helper send all of the feedback. Yeah, I also resurrected Pandora's helper (I like it) Thought you might like to know because it uses your software as a toolkit in a direction that (very likely) you never intended. But that's what good architecture does . . . Here is a screen shot:
  7. ZZJ, First of all just wanted to say a BIG THANK YOU for all your hard work. Both the Pandora Client and Saver2 app are Marvelous!! I also love that because of you "plug-in" architecture, I can create a customized plug-in to meet my needs (which I have done). My plug-in has been working for about six months (No real changes on my side). However, with your latest birthday update, I am now getting the following message: Error while loading plugin Saver.PandoraEx.dll: SystemReflectionTargetInvocationException System.Reflection.TargetInvocationException: Exception has been thrown by the target of the invocation --> System.NullReferenceException: Object reference not set to an instance of an object. at Proxy.Settings.toHTML() in E:\Codin' Projects\Saver Project\SPRoxy\Settings.cs: line 454 at PandoraEXPlugin.PandoraEX..ctor() in C:\Data\Projects\CSharp\Saver2Ex\PandoraEx\PandoraEX.cs:line 72 I understand what is going on, my plugin is crashing (no try/catch clause) when calling the Proxy.Settings.toHTML() function in the constructor b/c I log all of the settings to my log file on startup. No problem, I have added a try/catch clause, and I am back in business - but my question is: What changed in SProxy\Settings.cs so that line 454 is now throwing an error?
  8. I have downloaded the PandoraSaver.exe (client standalone bundle) from two different browsers to make sure that I am not getting a cached version. Whenever I run the install, I see Pandora Setup build 6:33:51 PM 4/17/10. And it still sends protocol v26 Thoughts?
  9. uh -- SEET was supposed to be SWEET! Not some new technical acronym :)
  10. "Bizarre" - you say potato - i say PoTATo. I knew it's not what you intended with your architecture ... but it does work. I actually think it's cool because it allows me to keep my custom code going independent of the code you are distributing. For example - earlier this week, you distributed a new Saver.Pandora.dll with the ID3 reference ripped out. A quick recompile of my code, and I am back in business - SEET! So kudos to your plug-in inheritance strategy. Yes, I did mean SaverPlugin.Log. I would please like some sample code for reading and writing to the TagLib libraries. Regarding feedback, I will have to take a look at getting the authToken from the XML so that I can spoof a request. I already know that the format of the request is: //String strRequest = rootURL + "&method=addFeedback&arg1=" + dict["stationId"] + "&arg2=" + dict["musicId"] + "&arg3=" + dict["userSeed"] + "&arg4=&arg5=&arg6=&arg7=" + strFeedback + "&arg8=false"; For songs that have been played in the current session, all of the songInfo metadata is present. So the only challenges are: a) the authToken b ) encrypting/transmitting the response Doesn't the Pandora Client already have to do a) and b )? If so, could you send me sample source of how this is done? As for your other responses, I will have to take a look at using them to improve the code. Your config library is neat, but it took a little bit of playing around with it to figure out how it worked (after the fact).
  11. Comment time: --------------------- Many thanks for your hak5 postings, I was finally able to take my custom code an merge it into a new plug-in for Saver2 -- finally ditched all of the PS1 code! I emailed you a copy of the code (thought you might like to see it) - but haven't seen a reply. Perhaps your spam filter bounced it because it had an attachment? Question time: --------------------- 1) The P.Client has a "Network Config" button on the options dialog. But mine is disabled? Is this functionality there yet? It would be nice to run the client on one box and the SProxy.exe on another (without changing I.E.'s proxy settings). 2) Can you please change the signature of Saver2.Log() so that it is virtual()? I would like to hook it in my plug-in for logging. 3) I see that you ripped out Saver2.ID3. What replaces it? I had been using it - so now I had to bring over the old ID3 code. 4) Can you please talk more about URLs like "?saver/catch&song=[sONG ID]". I think I have heard you refer to it as your thin client. My current implementation sends feedback to Pandora by using PandoraHelper to press the buttons on the Pandora Client. I would like a way to send the feedback to Pandora directly from the Plug-in. In my house, I have been playing around with running Sproxy.exe + plugins on one computer and the Pandora client on another (via proxy settings). 5) Your latest fix list states that feedback has been moved into Saver2. I must not be thinking of feedback the same way that you are. How is Saver2 going to send feedback to Pandora, when only the Plug-ins know how to parse the urls of the various music services?
  12. Trouble with SProxy (please help) Running ALL of your code release from (1/24/10) I do all of my listening to Pandora at work and the network group has now installed software that intercepts file downloads and scans them for viruses. It pops up an additional window, which hangs around for a second or two, and then the real download usually resumes. Screenshot attached Unfortunately, somehow the Pandora song download requests (even though they are not files) are also being intercepted by this utility which fowls up everything. Running Pandora in a browser will usually hang the browser (and sometimes blue-screen-of death) -- running the stand-alone client will usually survive by aborting the song and trying another (sometimes 5 or 6 in a row). This latter scenario is likely to get my Pandora account suspended as it looks like I am just clicking the next button again and again. I don't understand enough of the handoffs going on in the proxy, but I'm betting you do. I have attached a sample log (sorry - its BIG) where the feed was intercepted twice with two different but equally bad outcomes). I would appreciate any help. Tunneling is not really an option for me because it would look VERY bad to the network folks (if discovered). I was hoping that Sproxy could be beefed up a little to retry the request when it goes off of the rails. That must be what the browser is doing when the actual file download succeeds. ------------------------LOG ----------------------------- http://www.keepandshare.com/doc/1760188/cr...47-pm-146k?da=y ------------------------LOG -----------------------------
  13. I'm sorry. I didn't understand what you meant by this sentence.
  14. You were right, I had to re-start SProxy.exe. But that still doesn't explain why I had to reconfigure the port from 8888 to 8887. Most application that send requests to the internet establishe a connection based on some configuration criteria. The browsers also allow you to use a proxy (which is nice). Firefox has its own settings, IE has its settings, Chrome, etc. This is how you can use one proxy for IE, and another for Firefox. If your Pandora Player doesn't have its own communication configuration settings, it must be picking them up by default from one of the other browser configs. IE, perhaps?
×
×
  • Create New...