Jump to content

ZigZagJoe

Dedicated Members
  • Posts

    895
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by ZigZagJoe

  1. Looks like the forums are back. Anyways, an autoconfig URL really isn't possible - atleast, not simply. One would need to find a way to execute JS from inside C#. No doubt it's possible, just not in a clean way. The easiest way to go about it is if you go and look at the file, and set the proxy it has in there. --- What i'm currently working on (release in a day or so): release up see below --- There's been some updates while hak5 was down: 02/12/10: 1.2.4 build 425 Client/Fader: Changed a setting which caused a fatal error on systems using a different decimal delimiter Client: Fixed a bug causing a fatal error when sync failed to connect Tor: added manifest which was causing tor to not work ----- 02/11/10: 1.2.4 build 424 Client: Added pandora registration and changed login menu to register Client: Some internal fixes, no more duplicate requests Saver2: Longer delay before timing out when checking for updates Tor: Bugfix. ----- 02/11/10: 1.2.4 build 401 Saver2: Multiple autorun commands now supported a bit cleaner Saver2: Added wait for command to finish on autorun (prefix with &) Stage2: Saver2 autoupdate will not be disabled when using tor due to fix in saver2 Installer: firefox updated with new bookmarks and will no longer show an update screen on launch. Tor: Added -max command line option to only add x entries. Added a blacklist for non-us endpoints which are returned as us Known bugs: Scroll wheel does not control the volume control. Control is not recieving scroll events - can't do much about it. Tray icons are non responsive under win7. Unknown cause. ------ 02/10/10: 1.2.4 build 394 Selecting the TOR option now installs it automatically and requires NO configuration at all! Tell all your euro friends! Saver2: Support for multiple autoruns added Grooveshark: Added option to force override proxy (for nonus users who have tor for pandora setup) SProxy: Few strings changed about for readability Installer: Updated for new tor package. Dev: Updated SongInfo and Saverplugin, added youtube and simple blacklisting plugins' source, and the gadget
  2. If you mean to set firefox's proxies automatically; no, can't be done because firefox does not provide an interface to do so outside of killing the process and writing to the user prefs file manually, which is very icky. If you mean to take the proxy settings from firefox, that could probably be done.
  3. No, .NET is being pants on head retarded and refusing to launch a URL (the log link, on the main window, that you clicked) which in turn caused a fatal error causing the server thread to be stopped. When the messagebox that pops up is clicked it would have closed. Though, the only time i've seen that specific error is when running under wine because the wine shellexecute evidently does not expect to be passed URLs, which is a perfectly valid operation under windows and functions as expected.
  4. :) Looks like it just spams youtube videos. The youtube saver should work for it, in settings on the youtube tab select treat all videos as songs. I'm not sure if they will have a title or not, though (depends on how it does the videos). BTW, if you set up tor you can listen to pandora in other countries.
  5. Another nonvital update. The big news in this is blacklisting is back. I'm not happy with how it works (it's unchanged from the original pandorasaver) but it's useful to some people so here it is. Changelog: 02/07/10: 1.2.4 build 389 Saver2: Configuration screen made a little scarier with the addition of warning text. Saver2: Reinstated blacklisting tab Saver2: Version number incremented due to addition to plugin API Saver2: Blacklisting support added - a plugin must override bool IsBlacklisted(SongInfo) and return true if it is blacklisted. SimpleBlacklist: Ported successfully from original PandoraSaver; now looks for blacklists in Sproxy folder being the only change Installer: Added new plugin and blacklist example files Blacklisting is back, in the same form as it took in the original pandorasaver. I'm honestly not quite happy with how it works but it was useful for some people, so it comes back. This also means that feature parity has been reached with the original pandorasaver (and then some). No reason to be using it, now. To reload blacklists without restarting SProxy select Simple Blacklisting on the plugin screen, and hit "Configure Simple Blacklisting".
  6. Both w7 and xp ran the installer fine over here... First error (w7): Check that your internet connection is functional and try again. Usually caused by a proxy being configured and none running.... Second error: Post the contents of install.log Actually, i just managed to replicate the second error. Not quite sure why it's happening, as nothing has changed there... Right, try it again. I still don't know why that error is occuring but i have no way to debug it, so i put in a "dirty" fix. Seems like there is two copies of the Proxy.Settings static class bouncing about, which is weird. I hope noone dropped because of this :|
  7. Posted a new (non-vital) update. This fixes the DPI issue, and is mostly an internal update. Also has jjjameson's feature request. 02/05/10: 1.2.3 build 364 Client: Old save button disabled and forced off when running standalone as it has no use in standalone mode. Client: Fixed shared stations not being detected properly Client: Internal rework for more responsive GUI stuff Client: Scrolling speed reduced slightly Client: All sorts of misc gui tweaks Client: Fixed window sizing not respecting DPI Client: Fixed window being too large when using either gui on vista (yay, vista.) Client: Player priority now exposed in advanced settings Pandora: Added the ability to force turbo speed to a certain value (change ForceTurboSpeed from -1 to 5-180) YouTube: Now enabled by default. Misc: BrowserPac.js now has a commented-out youtube section As always, posts comments and questions here. CAD at the moment has pretty much been sidelined due to unresolveable problems. going to poke at it some more, but i don't know if it will ever work. I'm open to feature requests (within reason) due to honestly not having all that much to do at the moment. Try me. Stuff already discussed and closed: CAD Spotify Imeem Deezer (may take a look at this again)
  8. It must be set to normal otherwise it will exhibit the same behavior. You might try enablng the old gui, it might or might not fix it. You enable it by either editing the config file by hand or using sproxy's advanced settings. I forget the exact name, it contains enablenewgui or something like that in it.
  9. I'll look into adding a way to adjust the minimum turbo speed used. Not hard to do, the question is how to change the setting. Probably will just use a hidden setting. It looks to me like your display DPI is messed up, that is, it is not set to the default value. Window size is correct (for standard DPI) yet all the controls are larger than they should be. I'll check and verify this in a bit. Yes, you have your DPI set to a non standard value. How to fix this (until the client is fixed): http://zzj.itf-inc.com/downloads/dpifix.jpg (i'm amazed this W7 RC is still working - surely, ms was to have locked this out by now?) Previous versions will always get the XMLRPC failure because they are trying to use an older protocol version, which pandora doesn't allow and thus returns an error. This should be able to be fixed -it's caused by the base size being hardcoded. It should be being set to the same as the initial size, but i seem to have forgotten that. I imagine the window is being automatically scaled w/ the DPI change but since that is hardcoded it just gets set right back but is stuck with the larger controls. Glad you like it.
  10. I will take a look at it, but there's no logical reason that it's not getting the tag proper in 7. There is no way to skip to the next song in 50 seconds currently. Are you trying to do turbo mode, or something?
  11. Seems to be related to the custom wndproc. I'm wondering if the reference isn't in a stable location or something... i'm pretty sure this would require unsafe code (as C# puts it) to even try to fix
  12. Unfortunately i'm now getting weirdshit errors (memory corruption....??) bleh
  13. it's not a new process - it's just a hidden window belonging to the same process.
  14. It's not (really) CAD's fault - it's .NET's. The API that CAD uses is about what i expected, sending messages via SendMessage(). Not terribly hard to implement (and truthfully, I'd rather it than the alternatives). But since it wants to be able to send messages back, you need to either provide a non-changing window title (loosing station name and paused state from the client) or a window class name. However, .NET is fail in that it has what's as i understand it a bug in the window creation code, which as such disables the creation of somewhat different window class names instead getting a nice exception. And trying to register a global name would be seriously bad practice on top of i have no idea how to do it. So, idea was, have a C++ program (utilizing the CLR) in which I _do_ know how to create a window create it, hide it, but give it a proper class name then have an eventhandler which will call back into C# (and the client) where the client can do whatever it likes, when a window message is recieved. Rather convoluted, but it should work. Problem i'm facing now is you can only define a static wndproc (ugh) when doing a register, so i need a way to get back to the eventhandler which was registered in the class. The method i used in c++, keep a pointer to the object in the window userdata won't work here, looks like. Or write it all statically. I found a thing that does the same thing in C#, but the problem remains: getting back to the original. Might have to do some douchebaggery with a static list or summat.
  15. Right, I've been taking a look at it. Fairly simple, just need to eat a few messages (prev), so i went and translated the various values into declarations in my source. Then, looking again at the register bit.... it needs either a title (but our title changes! nope...) or a class name (fuuuuuck). The later is bad because all windows in C# have a weirdshit classname and there is bluntly put no way to make it even semi distinct (all SProxy windows/controls share the same class name - thus, it's useless). i'm poking at some sort of C++/CLR faggotry which will create a hidden window and then call a callback into C# where the various messages are handled (idea being, give this hidden window a proper name/class). But other than this it's disable changing of title text (i'd really rather not, if it even works) or nothing.
  16. http://www.pjirc.com/main.php is the applet that is being used for it + some javascript for the entry field
  17. Any empty space is likely there from pandora unless it is actual empty space like zeros when seen in a hex editor which would be a bit odd. Yeah, it's fine to rename them back to mp3s - the tmp files are the finished product with the new tag + the mp3 content of the original which are then renamed to the final extension. I'm guessing there is some weird lag related to the remotely mounted share: the Move command isn't throwing an exception but is getting eaten somewhere along the line.
  18. In the source, I could force HttpWebRequests to use a certain proxy or not. It doesn't really have any bearing on what you asked, though. @ USSRNUKE, sorry, i was AFK. If you are using the browserPAC method, you must add a section for youtube in it. Should be fairly obvious how to do it, though; just hit reload in proxy settings (in firefox) when you have done. Also, don't check the second option in youtube settings unless you want to get music only.
  19. Yes, it picks them up from IE. They can be manually configured but when not in sproxy they are not, so the base wininet settings are used. Fiddler may not be causing wininet to update proxy settings, or i know for a fact the old version of sproxy don't when set IE proxies are set , so until you relaunch the browser or go into the internet settings they will be pointing at a port that has no server on it. (settings could be changed by editing the various httpwebrequests to force a certain one on or off - this happens when running under sproxy. there is no external way to do so, however.)
  20. Actually, I'm leaning towards the contrary: separating the client and saver2/sproxy. It's mostly a matter of convenience that they are together for now. Also, changing the listening port without restarting sproxy will not do anything and two servers can not listen on the same port. The client does not listen on ports. It's a client, it knows how to play music from pandora, and that's about it. It has no concept of saving music (other than sending an approval to saver2 if possible). It should be able to go to the internet directly.. testing it here, it is working fine. Make sure you have your proxy settings correct.
  21. Plugins: Downloading the music and metadata Saver2: Writing the music files Saver2: Transcoding if necessary Technically saver2, but it's not implemented: Blacklisting (custom code) N/A: rating songs (custom code) Saver2 has no concept of rating songs, and the pandora plugin can read feedback but not send it. this would require an authtoken + postdata: the url alone will just generate an exception on pandora's end. Pandora will approve songs based on feedback if you have enabled it. (hmm, just realized there is no facility to dismiss songs based on negative feedback). One could implement a pseudo blacklist by making generous use of the approve and dismiss methods with the song's ID. It's currently not implemented because 1. noone has requested it so far and 2. i'm not happy with the implementation in the original pandorasaver. Couldn't deal with other organization and naming formats, for one.
  22. http://hak5.org/forums/index.php?showtopic...st&p=151300 has some of this. also, i'm on irc right now, if you want to ask questions there: http://zzj.itf-inc.com/s2/irc/ or irc.coldfront.net and join the #saver2 channel. there is also dev stuff at http://zzj.itf-inc.com/s2/S2dev.zip SProxy checks any dlls in the same folder as it for classes implementing the SPlugin interface (should be ISPlugin, i guess?). Any dlls which do have the ShouldLoad() method called, which is where a plugin should check if its dependencies are available (say invoke dlls and such). After all plugins are loaded, they then have the Start() method called. If an exception is thrown or a nonzero code is returned, Unload() is called. When Start() is called for saver2, first it sets up the basic menu items. It then verifies the presence of mplayer.exe, mp4tags.exe, and lame.exe. It then sends a notify to ALL sproxy plugins (the PluginMgr.NotifyAll method) with the arg NOTIFY_SAVER2_PLUGIN_INIT [1000] and object of this (the saver class instance). any plugin which returns 1000 is added to a list by PluginMgr.NotifyAll and is considered to be a Saver plugin meaning it will get various notifications as to the state of songs. If saver plugins were found, the worker thread is started and then the plugins are notified with NOTIFY_SAVER2_PLUGIN_START and null. In the SaverPlugin class, which all plugins should extend, if AddMenuLink or AddConfLink are set to true, menuitems are added for those two (a menuitem which launches the SaverSvcUrl and a menuitem which calls DoConfig(), respectively). SetupMenu is then called, if AddMenuLink || AddConfLink the menuitem it is passed with is our submenu (named {SaverName}) otherwise it is called with the Saver2 menuitem. If a sub menu was created, it is then added to Saver2's menu. Finally, OnStarted() is called in which you should do any setup of your own. Once all this is done, Saver2 sorts all the acquired menu items alphabetically, grouping menus with subitems first. Saver2 then launches the autorun command (if set). If something goes horribly wrong, savers are notified with NOTIFY_SAVER2_CRIT_ERROR, which calls Unload and causes the plugin to no longer look at any responses from SProxy. Saver2 is now started and sproxy has finished loading. A request is made through the proxy. All SPlugins have their TamperBefore(Proxy.Session s, ref Proxy.ProxyHandlingMode mode) method called. If a plugin implements SaverPlugin, it will need to set mode.DoPostTamper = true for the SniffMusic method to be called. TamperBefore has the headers the server sent back available in the session object but not the response body. SniffMusic is called when a request which a plugin has set DoPostTamper is called and the plugin in question has been started and is enabled (has __(name)_Enabled set to true). In here, a plugin should inspect the contents of the session and pull out metadata or songdata or what not. When it finds song data, it should save said song data to disk. Easier to explain this in code: SongInfo s = NewSong() // method of SaverPlugin, generates a new song belonging to this class // you really should create the songinfo objects when the metadata is sniffed, though and fields like artist title etc need to be populated session.SaveResponseBody(s.TempFile); Parent.AddSong(s); // Parent is the Saver plugin's instance, set by the SaverPlugin base class when notified. The plugin's involvement ends here. It found a song, and passed both the data of said song (mp3, etc) along with its metadata to saver2. Some plugin bits: // THIS MUST BE PRESENT! protected override Proxy.CallResult GetEnabledInfo() { return new Proxy.CallResult(Settings.GetBool("Enabled", true) ? 1 : 0, Settings.GetMangledName("Enabled")); } .ctor () { Settings.Default("Enabled", true); // adds key to config. SaverName = "Example"; SaverVersion = "1.0"; SaverSvcUrl = "http://example.com"; } I recommend you take a look at SimplePluginExample.cs AddSong, in saver2 then does some sanity checks and then calls Prepare() which figures out paths and what not, if there is a duplicate, etc. if a song already exists and will not be replacing another song, savers are notified with NOTIFY_SAVER2_SONG_SAVED and the song, the song is then disposed (temp file deleted along with album art). The song disappears into the abyss, as it were. Otherwise the song goes through a blacklist stub which does nothing. If auto rip is on or the song is marked for immediate download (ImmediateDownload) which is the case when a song which is not done downloading in pandora but is rated good it then goes on to ProcessSong. If not, the song is then added to the pending songs list, a tray notification displayed if enabled, and savers notified with NOTIFY_SAVER2_SONG_READY and the song. In ProcessSong: NotifySavers(NOTIFY_SAVER2_SONG_PROC, song); the dir in which the song will go is created, the duplicate deleted (if this is the case) and references removed. If the song will be encoded, it it sent to the encodermanager which will either begin encoding it immediately (if a processor is available) otherwise FinishSong is called. Songs already in the encoder's format will not be reencoded. FinishSong moves Song.TempFile to Song.FileName (the formatted name), writes it to the newmusic playlist, tags it, and then NotifySavers(NOTIFY_SAVER2_SONG_SAVED, song) shit that was a lot of text. if in wait for approval mode, ApproveSong() must be called to trigger saving. You can either do this by calling the method directly, or opening a url which contains "?saver/catch&song=[sONG ID]". Dismissal of a song causes it to be deleted as well (the temp file). Hopefully this will get you started somewhat. Sounds a lot worse than it is really.
  23. If you can get an account i will take a look at it. Edit: Took a look at it. Uses https for normal communication and kills itself when a debugger is detected. There's no sane way to save music from it, really. Seems to do a checksum of its executable as well.
  24. http://zzj.itf-inc.com/s2/Saver2Setup.exe Update up. This isn't a vital update, per se, but i marked it as such due to the volume of changes/fixes/additions. Per usual, post feedback here. Also, I'm on irc now: http://zzj.itf-inc.com/s2/irc/ Alternatively, one can connect to irc.coldfront.net and join the #saver2 channel. WOn't be on much until later however. Changelog: YouTube plugin added! However, it is disabled by default. Look in settings. Amazon album art search has been fixed - when available (and enabled) it will give songs 300x300 or larger art! Many various bugfixes/minor improvements in the Pandora Client. Client: Song lengths are now read properly (instead of being estimated) Client: The old save button can be enabled in settings. Client: A window will be shown when the pandora protocol has been updated with instructions on what to do. Client: All mplayer output is now saved to mplayer.log Client: Standalone log is now named pclient.log, formerly PandoraLog.txt Client: Fixed subtext when mplayer had to be downloaded and completed successfully Client: Time elapsed will not skew when pausing a lot now. Client: (Saver2) Location of window will now be remebered properly when launched manually. Client: Fixed standalone client not remebering volume, always on top, last position, current station, and shaded state. Pandora: Some unnessiary log messages removed. Pandora: Negatively rated songs will now be removed from any playlists which reference them. Saver2: Amazon art fetching is now completely reliable. Saver2: Bugfix in encoder which prevented the decoding(rencoding) of flv properly. Saver2: References to songs which were replaced will be removed from playlists Saver2/ID3: will nolonger lock saver2 when encountering an esoteric error. Saver2/ID3: Small bugfixes in Save(), hopefully will correct the problem theds encountered. SProxy: IE settings are correctly updated when exiting now. Before, reopening apps was required for it to be updated. This fixes some update errors (and general usability). SProxy: Log file is now named sproxy.log, formerly SPLog.txt Installer: Added YouTube and tenatively fixed a case where the installer would delete a conf when it should not. YouTube: First release. Updated assembly information for all files. It's 2010 now! Forcing videos to be treated as songs in youtube settings will cause them to be re-encoded using the settings on the encoding tab. (by default, 160kbs mp3). You're probably better off searching on grooveshark, though... Known bugs: YouTube: Videos played on channel pages (not a page with watch in the URL) will not have a title and will be named by ID. YouTube: Save format is forced to either flat structure or \YouTube\; the file names will either be the title or the ID (if title is not available)
×
×
  • Create New...