Skip to content

Instantly share code, notes, and snippets.

@Baysul
Last active October 2, 2018 22:53
Show Gist options
  • Select an option

  • Save Baysul/9ecdbdd8941e63b88b2e8261f1b512cc to your computer and use it in GitHub Desktop.

Select an option

Save Baysul/9ecdbdd8941e63b88b2e8261f1b512cc to your computer and use it in GitHub Desktop.
import discord
import asyncio
import win32com.client
class MyClient(discord.Client):
lastSongTitle = None
iTunesCOM = None
async def checkStatus(self):
try:
trackTitle = self.iTunesCOM.CurrentTrack.Name
playerState = self.iTunesCOM.PlayerState
if playerState == 1 and trackTitle != self.lastSongTitle:
await self.setActivity()
if playerState != 1:
self.lastSongTitle = None
await self.change_presence(activity=None)
await asyncio.sleep(1)
await self.checkStatus()
except AttributeError as attrError:
pass # Probably not playing anything
async def setActivity(self):
trackTitle = self.iTunesCOM.CurrentTrack.Name
trackArtist = self.iTunesCOM.CurrentTrack.Artist
trackAlbum = self.iTunesCOM.CurrentTrack.Album
activity = discord.Activity(name="Apple Music",
url=None,
type=discord.ActivityType.listening,
application_id=496726057324642305,
details=trackTitle,
state=trackArtist,
assets={
"large_image": "496737356951453707",
"large_text": trackAlbum
})
await client.change_presence(activity=activity)
self.lastSongTitle = trackTitle
async def on_ready(self):
print('Logged in as')
print(self.user.name)
print(self.user.id)
print('------')
self.iTunesCOM = win32com.client.Dispatch("iTunes.Application")
self.loop.create_task(self.checkStatus())
print('Done!')
client = MyClient()
client.run('YOUR_TOKEN_HERE', bot=False)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment