Share on Twitter
I also added Shuffling and Repeat commands but they do not work properly, they can stop shuffling and repeat but cannot start, I don't know why.
You can check source code here: https://github.com/Doraemoe/Spotify-Plugin-for-Quicksilver
Download link: https://dl.dropboxusercontent.com/u/1660391/Spotify%20Plugin.qsplugin.zip
If you have any comments please let me know, I'm willing to improve it :)
You can check source code here: https://github.com/Doraemoe/Spotify-Plugin-for-Quicksilver
Download link: https://dl.dropboxusercontent.com/u/1660391/Spotify%20Plugin.qsplugin.zip
If you have any comments please let me know, I'm willing to improve it :)
On 1 Nov 2013, at 22:42, Yifan Jin wrote:
Thanks Rob! Sorry I don't have time to fix it until now.
No problem. Here are some more comments.
I added Info.plist to the project list, weird it dosen't show up.
I see it now. I also see a broken (red) reference to Spotify Info.plist
. That can be removed.
The automatic conversion from markdown to html doesn't work for me so I manually converted it and added it to the extended description.
Hmmm. Not sure why that would be, but it you don’t mind doing it manually, that’s fine.
The documentation says the commands are all prefixed with ‘S’, but that doesn’t appear to be the case in the plist. I wouldn’t do that, anyway. Use full words, like “Spotify Play”. Users can still find the commands just by typing “spl” if they want, but it will look nicer. Personally, I would add something to the end of all the commands instead, like “Play (Spotify)”. Similar to how we handle the “Current Web Page” for all the different browsers.
I noticed the catalog problem too, maybe it's a silly question but actually I don't know how not to nested it with children.
It looks like you inured that out.
Yeah, the QSRequirements was copied from the iTunes plug-in and I deleted them now. For those in QSResourceAdditions, I want to brorrow some icons from it so I will leave it there :P
You might want to remove the QSProxies and QSEventTriggers. They might cause useless things to appear in the interface.
I deleted the QSSpotify_PluginActionProvider class, no problem occured, seems I never used them...
What about QSSpotify_PluginSource
? It looks like it’s still there and still adding a useless test object to the catalog.
On 4 Jan 2014, at 22:34, Yifan Jin wrote:
Thanks Rob, I fixed all the problems (I hope...). If I have time I will look into if it's possible for me to add playlist information to the catalog.
Looks good. I just saw two small things:
QSResourceAdditions
section of the plist can be removed. It just redefines resources from the iTunes plug-in (and would conflict if they ever change).On 25 Apr 2014, at 2:46, Yifan Jin wrote:
Sorry it might be a stupid question, I want to add a preference panel to
this plugin, so I followed the instruction in the Plugin Development
Reference but the preference panel dosen't appear. The problem is like
this: http://d.pr/i/DFYIFunny thing is, after I compiled another plugin with preference panel and
added it into Quicksilver, the preference panel of this plugin will appear
(but the new one won't). I'm wondering maybe I need to init something? Can
anyone help? Thanks.
I don’t see any obvious problems. The only real difference I see is that you have Auto Layout enabled. We were turning that off to support 10.6, but that’s no longer a requirement. Still, I wonder if maybe it’s causing the controls to be displayed outside the bounds of the visible area or something.
If you figure it out, let me know so I can update the reference. If not, send me a copy of the generated Spotify.h
so I can try building it myself.
On 5 Dec 2014, at 21:29, Yifan Jin wrote:
I'm currently revisiting this plugin and want it to have more functions.
However, I encountered some problems while trying to add some items to the
catalog. I know Quicksilver will use
- (BOOL)indexIsValidFromDate:(NSDate *)indexDate forEntry:(NSDictionary *)theEntry
function to check whether catalog needs to be updated, and if yes,
Quicksilver will use
- (NSArray *)objectsForEntry:(NSDictionary *)theEntry
to update the catalog.However, since I'm dealing with online resources, all request to the online
server are operated asynchronously. That means, if I want to request new
items in the function
- (NSArray *)objectsForEntry:(NSDictionary *)theEntry
I don't know when the request resources will ready, thus at the end of this
method I don't know what to return.
I know exactly what you mean.
https://github.com/quicksilver/Quicksilver/issues/1766
For now, you’ll have to get creative and employ some work-arounds.
The short answer is to return nil
if you’re just initiating the request for remote data. But then you’ll need logic to see if that’s the case, or if data is available to turn into QSObject
s.
Maybe you could initiate the request in indexIsValidFromDate:forEntry:
, always returning YES
, then force a rescan when results are ready (see below). That assumes indexIsValidFromDate:forEntry:
won’t be called when you invalidate the entry, but I’m pretty sure that’s the case.
So my question is, is there a way to manually trigger catalog refresh when
I am certain my request resource are ready?
You can tell Quicksilver the source is invalid. That will trigger a rescan.
[[NSNotificationCenter defaultCenter] postNotificationName:QSCatalogSourceInvalidated object:@"name of catalog source"];
There are examples of this in the iTunes plug-in.
Let me know if you have any additional questions.
On 30 Dec 2014, at 5:59, Yifan Jin wrote:
The crash log looks like
Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason: '-[NSNull isEqualToString:]: unrecognized selector sent to instance
XXXXXXX, or
Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason: '-[NSNull length]: unrecognized selector sent to instance XXXXXXXNow, where should I look at to find what I did wrong in the code? Thanks.
It looks like there’s an instance of NSNull
where Quicksilver expects to see an instance of NSString
. Are you setting anything to NSNull
? The first things I’d check are the identifier, name, and details for the objects.
--
You received this message because you are subscribed to the Google Groups "Quicksilver - Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to quicksilver---deve...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
To unsubscribe from this group and stop receiving emails from it, send an email to quicksilver---development+unsub...@googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to quicksilver---deve...@googlegroups.com.