Jump to content

bulletp2000

Active Members
  • Posts

    28
  • Joined

  • Last visited

Everything posted by bulletp2000

  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?
  15. Did you change something in the Pandora Client (either Jan 22 or Jan 24 release) that now ties it to a specify proxy server? The client was working great for me using the old SProxy.exe. With the newest client, it will not work anymore. First I get "failed to establish connection". Then when I changed the listening ports for both version of SProxy to be the same port (I know - bad idea) - I get "failed to execute XMLRPC" Also, how does the client specify which port it is listening on? I know that you intend to bundle your Pandora Client and Saver2 together, but there really is no reason that they should be coupled. Theoretically, someone could use Fiddler behind the client as the proxy, or go to the internet directly.
  16. Because I have custom code that needs to be invoked. And I don’t understand enough of the new architecture to move my code (if it even can be done). Is the source to all of the new stuff published? Here’s what I understand so far . . . --------------------------------------- With the PSaver1 code, the executable SProxy.exe was launched and then it: 1) (somehow) created the Deezer, Grooveshark, and Pandora menus 2) (somehow) loaded the PandoraSaver.dll I wrote (somehow), b/c I’m a little fuzzy on the details. Anyway, thereafter the Firefox client would load Pandora.com’s flash plug-in which re-routed calls (via proxy) to PandoraSaver code which took care of: a) Writing the music files B) transcoding if necessary c) blacklists (custom code) d) rating songs positive/negative based on mp3 tag (custom code) Note that I use all of a,b,c, and d. So far, so good, except that my code base is getting old . . . --------------------------------------- With the new Saver2 code, the executable SProxy.exe still launches the whole thing: 1) (somehow) creates the Saver2 menu 2) (somehow) loads the Saver2 plug-in Now where do the following activities occur? Downloading the music Writing the music files Transcoding if necessary blacklists (custom code) rating songs (custom code) In other words, how much of the code that I have in PandorSaver would need to move? And where would it move to? I don't understand enough of the boundary between SProxy and the plug-in to know where my code now lives. I know that you re-architected the thing to allow for better plug-ins, but I didn’t see any development documentation on the saver2 web site. My apologies if this has already been FAQd.
  17. Not sure what the sequencing means, I have included a longer snippet. 1/21/2010 10:50:19 AM Client: Song finished 1/21/2010 10:50:20 AM Client: Fetching playlist... 1/21/2010 10:50:21 AM Client: Started playback of song Client.SongInfo 1/21/2010 10:50:22 AM StreamPlayer: Play URL http://audio-ash-t2-1.pandora.com/access/6...3x1xIc%2BRcw%3D 1/21/2010 10:50:25 AM StreamPlayer: Data pipe ready 1/21/2010 10:50:25 AM StreamPlayer: Beginning song download 1/21/2010 10:50:25 AM StreamPlayer: Song download complete 1/21/2010 10:50:25 AM StreamPlayer: Pipe connected 1/21/2010 10:50:25 AM StreamPlayer: Starting data transfer BTW, I'm using the stand-alone client with the old version (PSaver1) of sproxy.exe. I don't use turbo-mode (which was only experimental in this version. I don't really need it either. My physical machine has 6 GB, but I am running all of my PSaver stuff in a virtual WinXP machine which has 768 MB allocated to it. Don't have the exact message in front of me anymore. I will look next time. I did check the event viewer (nice tip) which did have interesting information but was DIFFERENT from the MS Report that it let me look at earlier. Event Type: Error Event Source: .NET Runtime 2.0 Error Reporting Event Category: None Event ID: 1000 Date: 1/15/2010 Time: 11:09:47 AM User: N/A Computer: PANDORAXPVM Description: Faulting application pandora.exe, version 1.3.0.0, stamp 4b454072, faulting module mscorwks.dll, version 2.0.50727.1873, stamp 4a7d131d, debug? 0, fault address 0x000bcbbc. For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp. When it dies, it is happening right after it queues up a new song. The song begins to play briefly (a few seconds) and then - boom. Also, here is another interesting symptom that is UNRELATED to the three crashes - but maybe is connected somehow. Today, the player just stopped playing with a streaming error (just sat there). 1/21/2010 11:51:08 AM Client: Song finished 1/21/2010 11:51:09 AM Client: Started playback of song Client.SongInfo 1/21/2010 11:51:10 AM StreamPlayer: Play URL http://audio-sjl-t2-1.pandora.com/access/?...ohgQ%2BOVeLbTW1 1/21/2010 11:52:23 AM StreamPlayer: Exception while starting --> System.Net.WebException: The request was aborted: The operation has timed out. at System.Net.HttpWebRequest.GetResponse() at Client.StreamPlayer.Play(String URL) in E:\Codin' Projects\Saver Project\Client\StreamPlayer.cs:line 247 1/21/2010 11:52:23 AM Client: Failed to play song, trying again 1/21/2010 11:52:24 AM Client: Started playback of song Client.SongInfo 1/21/2010 11:52:24 AM StreamPlayer: Play URL http://audio-ash-t1-1.pandora.com/access/?...AZJHyjJ%2F3aAod 1/21/2010 11:52:25 AM StreamPlayer: Exception while starting --> System.Net.WebException: The remote server returned an error: (500) Internal Server Error. at System.Net.HttpWebRequest.GetResponse() at Client.StreamPlayer.Play(String URL) in E:\Codin' Projects\Saver Project\Client\StreamPlayer.cs:line 247 1/21/2010 11:52:25 AM Client: ERROR Playback Error: HTTP streaming failure 1/21/2010 11:54:35 AM Client: Window closed
  18. How should we report issues with the Pandora Client? What files would you like? The client has blown up for me about 3 times in the last week. Each time, I get a message like: <Pandora Client 1.3 has encountered a problem and needs to close. We are sorry for the inconvenience. . .> Send Error Report / Don't Send Error report (to Microsoft) - like what are they gonna do? :) I checked the PandoraLog.txt file, but didn't see anything useful. The last lines of the entry is: 1/21/2010 10:50:25 AM StreamPlayer: Song download complete 1/21/2010 10:50:25 AM StreamPlayer: Pipe connected 1/21/2010 10:50:25 AM StreamPlayer: Starting data transfer I'm guessing that it is some sort of uncaught exception? I tried to capture the MS Error report, but they will SHOW it to you, but have disabled copy/paste - Uggggh! It didn't look very useful though anyway - lots of hex offsets. Not sure how useful that truly is. Thanks again.
  19. Um, has the new optional client update been posted? I followed the link in your sig, but it still has code from the 18th. And my apologies for not using the correct name of your great product.
  20. Thanks for the quick update. That will make my life easier. Last year when you posted the source code to PSaver1, I hacked the source code so that the client will use PandoraHelper to automatically send ratings to Pandora.com based on a tag in my MP3 files. So I am actually using your new client with the older version of SProxy.exe. (It works - cool). Ultimately, I should take my hacked code and make it into some sort of plug-in so that I can use it along-side your new SProxy2 app. But I haven't had the time yet . . . As for the web client . . . I can't use the client's web interface anymore because EnumChildWindows fails to find the Pandora flash window anymore. I've played around with this and it is NOT a firefox issue. My application runs in a Virtual Machine where NOTHING has changed except for the data feed from Pandora. I think they have changed something, but I don't have any stream captures of Pandora feeds from the past when it used to work to compare side by side. I'm thinking that they have changed the PROGID of the flash application or one of its settings. But, anyway I switched to your new client application which now gives me all of the same features that I used in the original client app. One other note (THIS IS NOT A COMPLAINT) -- has anyone else noticed that the mplayer.exe tends to "skip" quite a bit. It will play normally for a while, then it will skip like an old vinyl record for several skips and then finally will correct itself. But then the play elapsed window is incorrect and the song will end early. This is VERY noticeable if my system is doing something CPU intensive (like compiling). The old client web interface never had this problem even under system load. Again - NOT A COMPLAINT - just an observation. People that get really nice working code for free are not allowed to complain. :)
  21. Thanks for adding - move song to another station. YOU ROCK! Another small request: Could you please make all four buttons unique sizes again? They don't have any window text (because you are using windows bitmaps for the faces). I had PandoraHelper hooked up to find the four buttons - it was working great with your version from Jan 12 because each button was a unique size. Now with the code version from Jan 18th, the first two buttons are identical sizes. As always, I really appreciate your work on the entire Pandora Saver suite. Sample code from SendMsg(): case PLAYPAUSE: buttonHighlight = 1; if (custPlayer) //SendClick(Window, sequence, width, height) //SendClick(Pandora, buttonHighlight, 32, 20); SendClick(Pandora, buttonHighlight, 28, 18); else SendKey(Pandora, 0x000000B3); break; case PLAYNEXT: buttonHighlight = 2; if (custPlayer) //SendClick(Pandora, buttonHighlight, 34, 20); SendClick(Pandora, buttonHighlight, 28, 18); else SendKey(Pandora, 0x000000B0); break; case PLAYRATEDWN: buttonHighlight = 3; if (custPlayer) //SendClick(Pandora, buttonHighlight, 20, 20); SendClick(Pandora, buttonHighlight, 20, 18); else SendKey(Pandora, (uint)Keys.Subtract); break; case PLAYRATEUP: buttonHighlight = 4; if (custPlayer) //SendClick(Pandora, buttonHighlight, 18, 20); SendClick(Pandora, buttonHighlight, 18, 18); else SendKey(Pandora, (uint)Keys.Add); break;
  22. BTW, The link to the PandoraSaver source code is broken. Is this intentional? Also, I know that this app is now finished, but the EnumChildWindows no longer finds the Pandora flash window. Spy++ can't find it either. I think they changed something and made it disappear. I tried to force the wmode=window parameter, but this didn't change anything. Any ideas?
  23. Feature(s) request: Two options in the standard player that I use are: 1) Move song to another station 2) I'm tired of this song Do you think that you could add these to your player? Thanks for all of your hard work.
  24. My apologies for posting on the wrong thread - I kind of assumed the PS thread was dead - but my mistake. I need the encoding feature, so I cannot move to Saver2 yet. As for the file-date changing issue, PS1.008 logs a line to the log about "tagging file" while PS1.005 does not. PS1.008 changes the file-date time of existing files while PS1.005 does not. I assume this has to do with the re-work from Fiddler to SProxy. Unfortunately, I consider this to be a change for the worse because I use the file-date stamp as an indicater of what music is new and needs to be reviewed. With the latest code base (1.008) it makes ALL of my music look new. I have temporarily moved BACK (*sigh*) to the 1.005 release of PS1 because this change messes up my whole system. I know the PS code base is frozen, but . . . As another enhancement request to Saver2 (THIS THREAD) -- could you please have a checkbox indicating whether or not to edit tags in files that are already present? Thank you for your time.
×
×
  • Create New...