#include "SpamPlugin.h" #include "ISmsTransceiver.h" #include "Sms.h" #include "tasks/SpamTask.h" #include "TaskManager.h" #include "Common.h" #include "Logger.h" #include "Util.h" #include #include #include #include using namespace std; const string USAGE = "Usage: spam "; SpamPlugin::SpamPlugin() : Plugin("spam", "Sends a number of messages to a given phone nr") { } void SpamPlugin::Execute(ISmsTransceiver& modem, SMS& sms) { string cmd = sms.ExtractParameters(); if (cmd == "") { modem.SendSms(sms.GetSender(), USAGE, false); return; } vector parts = Util::str_split(cmd," "); if (parts.size() < 4 ) { modem.SendSms(sms.GetSender(), USAGE, false); return; } string nr = parts[0]; unsigned int count = atoi( parts[1].c_str() ); unsigned int interval = atoi( parts[2].c_str() ); if (count > 25) count = 25; string message; for (unsigned i=3; i 0) message += " "; message += parts[i]; } ostringstream os; os << "Spamming " << nr << ", " << count << " times, with an interval on " << interval << " minutes"; modem.SendSms(sms.GetSender(), os.str(), false); Logger::logMessage(os.str()); SpamTask* task = new SpamTask(); task->SetDestination( nr ); task->SetNumber( count ); task->SetInterval( interval ); task->SetMessage( message ); task->RegisterTask();//register with taskmanager }