/* * ===================================================================================== * * Filename: spotify.cpp * * Description: Implementation of the spotify API * * Version: 1.0 * Created: 04/01/2023 09:55:09 PM * Revision: none * Compiler: gcc * * Author: Cara Salter (muirrum), cara@devcara.com * Organization: Worcester Polytechnic Institute * * ===================================================================================== */ #include #include #include "cpr/cpr.h" #include <142bot/modules.hpp> class SpotifyModule: public Module { std::string spotifyRegex; public: SpotifyModule(Bot* creator, ModuleLoader* ml) : Module(creator, ml) { ml->attach({I_OnMessage}, this); this->spotifyRegex = "^https:\/\/open.spotify.com\/track\/([a-zA-Z0-9]+)(.*)$"; } virtual std::string version() { return "0.1.0"; } virtual std::string description() { return "Manage spotify queues for 142"; } virtual bool OnMessage(const dpp::message_create_t &message, const std::string& clean_message, bool mentioned, const std::vector & mentions) { sentry_set_tag("module", "spotify"); bot->core->log(dpp::ll_debug, "Got message event"); const char* pcre_error; int pcre_error_ofs; auto comp = pcre_compile("^https:\/\/open.spotify.com\/track\/([a-zA-Z0-9]+)(.*)$", PCRE_CASELESS, &pcre_error, &pcre_error_ofs, NULL); if (!comp) { bot->core->log(dpp::ll_error, pcre_error); } int matcharr[90]; int matchcount = pcre_exec(comp, NULL, clean_message.c_str(), clean_message.length(), 0, 0, matcharr, 90); if (matchcount > 0) { // We found a spotify URL! EmbedSimple("Found a spotify URL", message.msg.channel_id); } return true; } }; ENTRYPOINT(SpotifyModule)