.. |full_logo| image:: https://github.com/musicbucket/musicbucket-bot/blob/main/images/logos/musicbucket_bot_letter_logo.png?raw=True
|full_logo|
About ~~~~~~~~
MusicBucket Bot is a Telegram Bot that adds features and possibility to interact with Spotify music links that users send in a chat.
Its main feature is to allow you to save links that someones shares in a Chat in a personal list. So you can easily track which music you have pending to listen to.
When an user sends a link, the bot is able to get information from a Spotify link like:
It also integrates with Last.fm to retrieve information about your user like Now Playing.
Why Telegram?
I chose Telegram because I'm in a few groups where we share music everyday. We soon realized that the links we shared in a group were often missed. Therefore, the idea of making a tool for keeping track of the music we share started growing so I started developing this bot.
Why Spotify?
At the start the bot supported both Spotify and Deezer, but Spotify is the platform that we use mostly, so implementing new features for both platforms became complicated and I decided supporting Spotify only.
Commands
~~~~~~~~
- /music [@username]
Retrieves the music shared in the chat from
the last week. Grouped by user. Filter by @username optionally.
- /music_from_beginning @username
Retrieves the music shared in the
chat from the beginning of time by an user.
- /savedlinks
Retrieves a list with your saved links
- /deletesavedlinks
Shows a list of buttons for deleting saved links
- /mymusic
Retrieves the music that you shared in all the chats.
It has to be called from a private conversation.
- /topalbums [period](7day 'default'/1month/3month/6month/12month/overall)
Top Albums. Returns the Last.fm top albums of your user.
- /topartists [period](7day 'default'/1month/3month/6month/12month/overall)
Top Artists. Returns the Last.fm top artists of your user.
- /toptracks [period](7day 'default'/1month/3month/6month/12month/overall)
Top Tracks. Returns the Last.fm top tracks of your user.
- /np
Now Playing. Returns track information about what you are
currently playing in Last.fm.
- /collage [rows] [cols] [period](7day 'default'/1month/3month/6month/12month/overall)
Returns a collage of your most listened albums in a period.
- /lastfmset username
Sets a Last.fm username to your Telegram
user.
- /stats
Retrieves an user list with a links counter for the
current chat.
- /help
Retrieves a list of available commands and bot features.
- @music_bucket_bot artist|album|track name
Search for an artist,
an album or a track and send it to the chat.
Official bot => @music_bucket_bot
Screenshots ~~~~~~~~~~~
.. |screenshot_1| image:: https://github.com/paurieraf/musicbucket-bot/blob/master/images/screenshots/screenshot_1.jpg?raw=True .. |screenshot_2| image:: https://github.com/paurieraf/musicbucket-bot/blob/master/images/screenshots/screenshot_2.jpg?raw=True .. |screenshot_3| image:: https://github.com/paurieraf/musicbucket-bot/blob/master/images/screenshots/screenshot_3.jpg?raw=True .. |screenshot_4| image:: https://github.com/paurieraf/musicbucket-bot/blob/master/images/screenshots/screenshot_4.jpg?raw=True
================================ ================================ |screenshot_1| |screenshot_3|
|screenshot_2| |screenshot_4| ================================ ================================
Installation ~~~~~~~~~~~~
pyenv
and poetry
poetry install
inside the folder..env.dist
file to .env
and fill the variables
with your Telegram and Spotify data.python main.py
Special thanks ~~~~~~~~~~~~~~
To the Sonomada community and its group in Telegram (https://t.me/Sonomada_gang) where we use and test the bot actively and propose new features.
License ~~~~~~~
The content of this project is licensed under the GNU/GPLv3 license. See LICENSE file.
Bumps ipython from 8.4.0 to 8.10.0.
15ea1ed
release 8.10.0560ad10
DOC: Update what's new for 8.10 (#13939)7557ade
DOC: Update what's new for 8.10385d693
Merge pull request from GHSA-29gw-9793-fvw7e548ee2
Swallow potential exceptions from showtraceback() (#13934)0694b08
MAINT: mock slowest test. (#13885)8655912
MAINT: mock slowest test.a011765
Isolate the attack tests with setUp and tearDown methodsc7a9470
Add some regression tests for this changefd34cf5
Swallow potential exceptions from showtraceback()Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase
.
Bumps certifi from 2022.5.18.1 to 2022.12.7.
9e9e840
2022.12.07b81bdb2
2022.09.24939a28f
2022.09.14aca828a
2022.06.15.2de0eae1
Only use importlib.resources's new files() / Traversable API on Python ≥3.11 ...b8eb5e9
2022.06.15.147fb7ab
Fix deprecation warning on Python 3.11 (#199)b0b48e0
fixes #198 -- update link in license9d514b4
2022.06.154151e88
Add py.typed to MANIFEST.in to package in sdist (#196)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase
.
Hi MusicBucket/musicbucket-bot
!
This is a one-off automatically generated pull request from LGTM.com :robot:. You might have heard that we’ve integrated LGTM’s underlying CodeQL analysis engine natively into GitHub. The result is GitHub code scanning!
With LGTM fully integrated into code scanning, we are focused on improving CodeQL within the native GitHub code scanning experience. In order to take advantage of current and future improvements to our analysis capabilities, we suggest you enable code scanning on your repository. Please take a look at our blog post for more information.
This pull request enables code scanning by adding an auto-generated codeql.yml
workflow file for GitHub Actions to your repository — take a look! We tested it before opening this pull request, so all should be working :heavy_check_mark:. In fact, you might already have seen some alerts appear on this pull request!
Where needed and if possible, we’ve adjusted the configuration to the needs of your particular repository. But of course, you should feel free to tweak it further! Check this page for detailed documentation.
Questions? Check out the FAQ below!
Add /genre commands to return a list of most sent artists (or most populars) of this genre.
Usage example:
/genre postrock
La dependencia node-sass
lanza dos warnings:
warning node-sass > [email protected]: request has been deprecated, see https://github.com/request/request/issues/3142
warning node-sass > node-gyp > [email protected]: request has been deprecated, see https://github.com/request/request/issues/3142
Habría que mirar de actualizar la dependencia y ver si se puede eliminar request
, revisar el enlace que indica en el mensaje de error.
Cuando sigues un artista con /followartist
, si todavía no se ha enviado ningún enlace del artista y por lo tanto no existe en la base de datos se debería de crear en dicho momento
music music-bot telegram telegram-bot python python3 spotify deezer lastfm lastfm-api last-fm spotify-api spotify-connect musicbrainz music-information-retrieval telegram-bot-api telegram-bots telegrambot sqlite peewee