Adium

Opened 15 years ago

Closed 13 years ago

Last modified 13 years ago

#3152 closed enhancement (fixed)

Support "current itunes track" available message

Reported by: leak Owned by: evands
Milestone: Adium X 1.1 Component: Service/AIM
Version: Severity: minor
Keywords: Cc: mark@…
Patch Status:

Description

There's some flag hidden somewhere

Change History (15)

comment:1 Changed 15 years ago by Keith Lea

Component: Noneadium-joscar
Milestone: Adium X 1.0

comment:2 Changed 15 years ago by Keith Lea

Owner: changed from Keith Lea to Evan Schoenberg

To set a status message which shows a link to the iTunes music store in iChat, you use conn.getBosService().setStatusMessageSong(message, band, album, song) or .setStatusMessageSong(message, itmsUrl). (joscar converts the former to an ITMS URL.) Other users' iTunes track ITMS URL's are stored in a new BuddyInfo property called "itunesUrl".

comment:3 Changed 15 years ago by Evan Schoenberg

Resolution: fixed
Status: newclosed

(In [15262]) iChat users now see the Adium 'iTunes Current Track' in the same way they see it from other iChat users -- with an iTunes music store link, if one exists. Closes #3152

comment:4 Changed 14 years ago by Evan Schoenberg

Component: adium-joscarAIM
Milestone: Adium X 1.0Adium X 1.1
Resolution: fixed
Status: closedreopened

This is one of the cool little things we lost in losing joscar; I'd like to have it available gaimside.

comment:5 Changed 14 years ago by Colin Barrett

Cc: mark@… added

comment:6 in reply to:  4 Changed 14 years ago by Chris Forsythe

Replying to evands:

This is one of the cool little things we lost in losing joscar; I'd like to have it available gaimside.

Are you ok with moving this to 1.2 or is this a definite needs 1.1 thing?

comment:7 Changed 14 years ago by Mark Doliner

So you just want to be able to set an available message? There are a few ways to accomplish this... I'm not sure which one makes the most sense. The most straightforward way to set an available message is to call:

gaim_account_set_status(account, "available", TRUE, "message", "I'm currently listening to Synchronicity II by The Police", NULL);

At least, I think that's right. You could also get the GaimPresence for the account and then activate the available status type and pass in a message. That's basically what the function mentioned above does. Does that make sense?

comment:8 Changed 14 years ago by Evan Schoenberg

Mark: we can set available messages already; this is a special case :)

The iTMS information is sent alongside a status message and is handled differently in iChat; iChat knows the status specifically refers to a song and offers a link to the song in the iTunes Music Store as well as indication that this is a song-status.

I can extract from joscar the difference in how the message is set if that'd be helpful.

comment:9 Changed 14 years ago by Mark Doliner

I see now. I don't think it'll be too hard to add support for that. How do you make iChat show the iTMS URL for yourself? Does it just happen automatically if you're using iTunes and iChat? Where does the info show up? Beneath your name in peoples buddy lists?

comment:10 Changed 14 years ago by Evan Schoenberg

It only happens when you pick a specific status (which appears as if it were a saved status) called, "iTunes Now Playing". Your status message becomes "track - artist" pulled from iTunes, and the iTMS URL is sent along with it.

On the other side, it shows as an Available message with the addition of a little button-arrow that directs to the song's page if clicked.

comment:11 in reply to:  9 Changed 14 years ago by Keith Lea

Replying to MarkDoliner:

I see now. I don't think it'll be too hard to add support for that. How do you make iChat show the iTMS URL for yourself? Does it just happen automatically if you're using iTunes and iChat? Where does the info show up? Beneath your name in peoples buddy lists?

Mark, it's been a while since I wrote this but I believe it's an extra TLV in the available message block that contains an itms:// URL. When the URL is present, iChat shows a little arrow next to your status, which you can click to open that song/album in iTunes.

comment:12 Changed 14 years ago by Mark Doliner

Alright, I think I have this working. I'll send Evan a patch to try out. I think the protocol-side of it works pretty well. The core side is a little clunky due to the way statuses are saved (it's something that could still use a little work). Basically you just set the "itmsurl" attribute for the active GaimStatus for an AIM account. It's currently only written to work when you're available. Should it work when you're away, too?

comment:13 Changed 14 years ago by Evan Schoenberg

Nope, just when you're available, Mark.

The only thing missing is retrieving the same information from other contacts when it's set, I believe.

comment:14 Changed 13 years ago by Evan Schoenberg

Resolution: fixed
Status: reopenedclosed

(In [19320]) Set the iTMS store link for the 'now playing' available status in AIM. Fixes #3152

comment:15 Changed 13 years ago by Mark Doliner

Alright, done. You should now be able to retrieve the same information from other contacts using current Pidgin MTN. It uses the same status attribute as when setting the URL. It's the "itmsurl" char * attribute for the "available" oscar PurpleStatusType

Note: See TracTickets for help on using tickets.