discord / discord-rpc

https://discordapp.com/developers
MIT License
1.06k stars 329 forks source link

[Feature Request] Dynamically Set Application name #54

Closed Kraust closed 5 years ago

Kraust commented 6 years ago

I noticed that Rich Presence does not support a custom App Name (as in "Now Playing ..."). It instead takes the App Name from the Application Name from under https://discordapp.com/developers/. Is it planned in the future to allow the developer to set the App Name? I would like to create a dynamic App Name for something that I am working on.

crmarsh commented 6 years ago

We didn't plan on having that.. what are you working on that would use that? It sounds like it would just be confusing. Why not just set the state and/or details string?

Kraust commented 6 years ago

I am currently working on an application that bridges both Kodi's JSON-RPC and Discord's Rich Presence. This would allow users to display their "Playing" status from Kodi in Discord. I would prefer to dynamically set the "Playing" status to whatever the user is Playing (e.g. a song title) instead of the name of my Application. In the future this may also be extended to work on other applications that aren't Kodi, and don't already have Rich Presence Support.

Of course its understandable if Discord is keeping the App name static as a security measure. I would have also preferred to set the larger image thumbnail to a custom image as well (e.g. for an Album Cover).

tilda commented 6 years ago

I don't think you can do custom images. Images are keys from the Rich Presence application. Like if I add image_large, I use it like { 'large_image': 'image_large' }. So unless you add the album art for your (music/movie/video) library and use the image keys when they're being played, I don't think you can really do it (especially since it's limited to 150 images). What you could really do is just display a Kodi logo or something.

Almighty-Alpaca commented 6 years ago

I've written a plugin for all Jetbrains IDEs that displays information about the project you're working on as rich presence. Currently it always shows IntelliJ as game but it would be nice to set it to the name of the running IDE. Currently there is no way to achieve that without creating 15 applications, one for each IDE, which is not only very ugly but also is above the limit of application per account.

msciotti commented 6 years ago

I'm not sure if we're going to support this, but we hear your use cases. I'm going to leave this issue open as the official "We want dynamic app names" request and de-dupe other requests into this one.

SlySven commented 6 years ago

Can I also mention a slightly atypical case which could benefit from this: the application I am working on is a MUD client and it would be nice if we could display the name of the MUD server that our users are connected to and are playing on alongside our application name.

Admittedly this requirement will eventually be mitigated because once MUD Servers themselves grow their own Discord guilds they and us (and hopefully other MUD clients) can agree some protocols over "standard" icon names/purposes and - with their application IDs we can provide a "Rich Presence" pass-through and package/modules/scripts to link our users state to what gets shown when they are playing on the MUD server (and they can use their full pool of their own icons rather than drawing on a our set that we can provide but which is shared across all the Servers that do not do this) ...

msciotti commented 6 years ago

The second part of your comment, @SlySven, is correct in that if they're all tied to the parent application id, asset slots are limited.

However, you can easily display both the server name and your application name. Your application's name will be at the top as "Playing ". You could use the details string to note which specific MUD they're playing from there.

SlySven commented 6 years ago

@msciotti - yeah that is the current proposal - but I want the originator of that (a co-coder) to consider replacing "Playing XXXX" with something shorter: screenshot_2018-06-25_03-16-30

What this Feature Request would do would enable the project that I am coding for to merge the "Mudlet" line with the "Playing MidMUD" so that the first, BOLD line of text, to the right of the large icon, could be something like "MidMUD using Mudlet" {"Mudlet" being the Client I am coding for/on and "MidMUD" the current Server (Game) that it is connected to} and save the Details line for some, er, game state details.

BTW This is for MUD Servers that do not themselves have Discord Guilds/Servers with APPLICATION_IDs that have been provided to us. If they have furnished that detail then we could access their Icon resources that they have told us about - and in that situation we could change from being whatever the name they used when creating the APPLICATION_ID {Say "MidMUD" for instance} - to seamlessly also reflect the situation of "MidMUD using Mudlet"! - That is partly dependent though on another issue, which I will mention when I have filed it.

MikeLabatt commented 6 years ago

It would be desirable for all "player" applications (some call them "clients"). We are looking forward to this for our Amiga Forever and C64 Forever, which can run more than 10K titles. Currently, the players support Discord status, but they show something like "Playing Amiga Forever" instead of "Playing XYZ with Amiga Forever", and there are no game visuals (because of the hard-coded 150 screenshot limit). Extra game title info is currently hidden in the details, which requires the profile to be visited.

xmantheman commented 6 years ago

Any updates on this feature? Looking to do something similar as OP. Tried messy ways such as updating the application name if the song name doesn't match the application name, required me to re-connect every time so the name would update on the presence. (plus, I don't really think that was a good idea)

Edit: image ~~I was able to get this working without this feature, but it's a very messy method which requires me to automatically change the application name when it detects the song name is different from the app name then re-connect. I was also able to change the album cover when the song changes by deleting the previous asset and uploading a new one every time. Works like a charm but it's not really efficient. (did literally the same thing OP was talking about, a Kodi Discord rich presence, but only for music. meant to look/act similar to the spotify integration.) https://github.com/wr1ght/kodicord~~ turned out to be API abuse.

msciotti commented 5 years ago

Moved to Feeback Site as part of #290

VelocityRa commented 2 years ago

Moved to Feeback Site as part of #290

Bump? Also the above link is dead.

We didn't plan on having that.. what are you working on that would use that? It sounds like it would just be confusing. Why not just set the state and/or details string?

Because no-one actually clicks on profiles, to see rich presence details. As others said this is useful for music/movies etc app rich presence support. There it's the difference between 99% of people seeing ie. "Playing <song title/artist>" instead of "Playing Music" or such.

I think this should be re-opened.

probablypablito commented 1 year ago

Even the native Spotify integration suffers from this. The status is set to Listening to Spotify rather than Listening to .

Kraust commented 1 year ago

Pretty crazy that after 5 years a feature that MSN messenger supported is still unsupported within Discord's API.

Of course, this API is deprecated and I'm guessing something else already implements it.

VelocityRa commented 1 year ago

Opened a new issue. #375