Gowon is a Last.FM discord bot in active development.
Check out the indexing server over at jivison/gowon-indexer
Ensure you have Postgres and Typescript installed, and a database called gowon
exists (createdb gowon
).
Ensure you have Redis installed (https://redis.io/download) and started
Rename config.example.json
to config.json
, and fill in all the fields. Then, do the same with ormconfig.example.json
yarn start
will build and run the bot. To start in development mode, make sure you have nodemon
installed, then run:
yarn build:watch
# and in another tab
yarn start:watch
Every command run has a log associated with it. This way if multiple commands are run at once, the logs stick to the command they were created by. Below is an example of some logs:
You can find the source code for all the commands at /src/commands
help
, list all commands, or display help about a certain command
amiscrobbling
, shows you if you are scrobbling or notcover
, shows the cover of an albumnowplaying
, shows the song you are currently listening to, along with other informationpartytime
, counts downrandomsong
, picks a random song from the signed in usersrecent
, shows a few of your recent tracksserver
, picks random users from the server and shows what they're listening totrack
, search or directly query a song (like a fake nowplaying)- Account
login
, logs you inlogout
, logs you outwhoami
, shows who you're logged in aslastfm
, links to the lastfm page of a userlastfm2discord
, looksup a discord user based on their last.fm username
- Crowns
check
, checks a crowncheckmany
, checks multiple crowns at onceinfo
, displays info about a crownlist
, lists a user's crownsrank
, ranks a user based on their crown countdm
, DMs you a list of all of a users crownscontentiouscrowns
, lists the crowns which have been stolen the most timestopcrowns
, lists the crowns with the highest playcountstopcrownholders
, lists who has the most crownsoptout
, opts you out of the crowns gameoptin
, opts you back into the crowns gamesetinactiverole
, set what role should be treated as the inactive rolesetpurgatoryrole
, set what role should be treated as the purgatory rolerecentlystolen
, see the crowns which were recently yoinkedban
/unban
, bans/unbans a user from the crowns gameguildat
, shows the crowns guild at a certain rankguildaround
, shows the crowns guild around youcrownranks
, see the ranks of your crownsartist
/unbanartist
, bans/unbans users from getting the crown for a certain artist
- External
rateyourmusic
, searches RateYourMusic for an albumwhosampled
, searches WhoSampled for a trackwikipedia
, searches Wikipedia for a track
- Friends
add
, add a friendremove
, remove a friend :(removeall
, remove all friends :((((list
, list your friends, and see what they're playingalbumplays
, shows how many scrobbles of an album your friends haveartistplays
, shows how many scrobbles of an artist your friends havetrackplays
, shows how many scrobbles of an track your friends havescrobbles
, shows how many scrobbles your friends have
- Info
artistinfo
, shows info about an artistalbuminfo
, shows info about an albumtrackinfo
, shows info about an tracktaginfo
, shows info about an tracktoptrack
, shows the top tracks for an artist
- Jumble
me
, find an artist from your library to jumbleguess
, make a guess for the jumblehint
, get a hint for the jumblequit
, give up on the jumble
- Library
albumtoptracks
, shows your top tracks on an albumartisttoptracks
, shows your top tracks for an artistartisttopalbums
, shows your top albums for an artistlastscrobbled
, shows when you last scrobbled a songsearchartist
, search your top artists for a keywordsearchalbum
, search your top albums for a keywordsearchtrack
, search your top tracks for a keyword
- List
artistlist
, shows your top artistsalbumlist
, shows your top albumstracklist
, shows your top tracks
- Overview
avgperday
, shows your average scrobbles per daycrowns
, shows stats about your crownshindx
, shows your hindexjoined
, shows when you joinedper
, shows some "per" stats for artist/albums/tracksscrobblesperartist
, shows your average scrobbles per artistscrobblesperalbum
, shows your average scrobbles per albumscrobblespertrack
, shows your average scrobbles per tracksumtop
, shows the sum of your top artiststoppercent
, shows how many artists make up 50% of your scrobblesall
, all of the abovebreadth
, shows your breadth rating
- Pages
artistpage
, gives you the link to an artist's last.fm pagealbumpage
, gives you the link to an album's last.fm pagetrackpage
, gives you the link to an track's last.fm page
- Percent
artistpercent
, shows what percentage an artist makes up of your total scrobblesalbumpercent
, shows what percentage an album makes up of your total scrobbles of an artisttrackpercent
, shows what percentage an track makes up of your total scrobbles of an artist
- Plays
artistplays
, shows how many plays you have of an artistalbumplays
, shows how many plays you have of an albumtrackplays
, shows how many plays you have of a trackglobalartistplays
, shows how many plays Last.fm has of an artistglobalalbumplays
, shows how many plays Last.fm has of an albumglobaltrackplays
, shows how many plays Last.fm has of a track
- Playsover
artistplaysover
, shows how many plays over a given number you have of an artistalbumplaysover
, shows how many plays over a given number you have of an albumtrackplaysover
, shows how many plays over a given number you have of a trackartistplaysequal
, shows how many plays equal to a given number you have of an artistalbumplaysequal
, shows how many plays equal to a given number you have of an albumtrackplaysequal
, shows how many plays equal to a given number you have of a track
- Rank
artistrank
, shows what rank an artist is in your top artistsalbumrank
, shows what rank an album is in your top albumstrackrank
, shows what rank a track is in your top tracksartistat
, shows what artist is at a given rankalbumat
, shows what album is at a given ranktrackat
, shows what track is at a given rank
- Redirects
- [disabled]
add
, adds a redirect - [disabled]
remove
, removes a redirect - [disabled]
list
, list all artists that redirect to another artist
- [disabled]
- Stats
artistcount
, counts your artistsalbumcount
, counts your albumstrackcount
, counts your trackstaste
, compares your taste with another userscrobbles
, shows how many scrobbles you havecombo
, shows listening streaksmilestone
, shows you what you scrobbled at a scrobble milestonegoback
, shows you what you scrobbled in the pastpace
, predicts when you will hit a scrobble milestonetag
, shows your overlap with a tag's top artists
disable
, disable a command entirelyenable
, re-enable a disabled commanddisabled
, lists all disabled commandspermissions
, control who can use what commandsblacklist
, lets you black/whitelist commands for users/rolesdelist
, removes a user/role from the whitelist/blacklist for a commandhelp
, permissions helpview
, view permissions
usercount
, shows how many users are signed into the bot
github
, links the github repository for the botissues
, lists the github issues page for the botlatestcommit
, shows the latest commit to the github repository
-
All my alpha testers, for breaking everything:
- RTFL
- Thot
- Mex
- DunsterJR
- Manu
- Himiko
- Dana
- Turbie
- Mez
- Itsuko
- Catchy
-
DunsterJR for making the (old) profile picture, and for the friends plays idea
-
mypetrobot for building the
Who Knows?
bot, the backbone and inspiration for this bot -
Frikandel, for being a great influence and always ready to help (Go checkout .fmbot!)
-
Ish, for being cool overall ๐ (Go checkout Chuu!)
-
Last.fm, for making a great platform <3