--- smsdaemon/plugins/TogPlugin.cpp 2008/08/24 17:57:04 109 +++ smsdaemon/plugins/TogPlugin.cpp 2009/09/16 09:08:40 323 @@ -1,40 +1,48 @@ #include "TogPlugin.h" -#include "IGsmModem.h" +#include "ISmsTransceiver.h" #include "Sms.h" #include "TrainInfo.h" -#include "util.h" +#include "Util.h" #include #include -#include "common.h" +#include "Common.h" using namespace std; +StationInfo::StationInfo(int i, std::string n) +{ + id = i; + name = Util::str_characters(n); +} + + TogPlugin::TogPlugin() - : Plugin("tog", "Henter tog info fra bane.dk") + : Plugin("tog", "Henter tog info fra bane.dk") { - _stationInfo["la"] = StationInfo("LG","Langå"); - _stationInfo["ul"] = StationInfo("UP","Ulstrup"); - _stationInfo["bj"] = StationInfo("BJ","Bjerringbro"); - _stationInfo["vi"] = StationInfo("VG","Viborg"); - _stationInfo["ho"] = StationInfo("HØ","Højslev"); - _stationInfo["sk"] = StationInfo("SK","Skive"); + _stationInfo["ar"] = StationInfo(278, "Århus"); + _stationInfo["la"] = StationInfo(122, "Langå"); + _stationInfo["ul"] = StationInfo(240, "Ulstrup"); + _stationInfo["bj"] = StationInfo(10, "Bjerringbro"); + _stationInfo["vi"] = StationInfo(253, "Viborg"); + _stationInfo["ho"] = StationInfo(94, "Højslev"); + _stationInfo["sk"] = StationInfo(190, "Skive"); } -string TogPlugin::GetRealStationCode(string code, string &stationName) +int TogPlugin::GetStationId(string code, string &stationName) { map::iterator it = _stationInfo.find(code); if (it != _stationInfo.end()) { stationName = (*it).second.name; - return (*it).second.code; + return (*it).second.id; } - return ""; + return -1; } string TogPlugin::CreateStationList() @@ -50,46 +58,45 @@ os << (*it).first << " - " << (*it).second.name << "\n"; } - return Util::str_latin2gsm(os.str()); + return os.str(); } -void TogPlugin::Execute(IGsmModem& modem, SMS& sms) +void TogPlugin::Execute(ISmsTransceiver& modem, SMS& sms) { - string data = GetSmsData(sms); + string data = sms.ExtractParameters(); - data = Util::str_gsm2latin(data);; data = Util::str_tolower(data); if (data == "") { - modem.SendSms(sms.sender, "Usage: tog \ntog list - liste over stationer", false); - return; + modem.SendSms(sms.GetSender(), "Usage: tog \ntog list - liste over stationer", false); + return; } if (data == "list") { - modem.SendSms(sms.sender, CreateStationList(), true); + modem.SendSms(sms.GetSender(), CreateStationList(), true); return; } string stationName; - string code = GetRealStationCode(data, stationName); + int id = GetStationId(data, stationName); - if (code == "") + if (id < 0) { - modem.SendSms(sms.sender, "Unknown station", false); + modem.SendSms(sms.GetSender(), "Unknown station", false); return; } vector infos; try { - infos = GetTrainInfo( code , "" ); + infos = GetTrainInfo( id ); } - catch(std::exception& e) + catch (std::exception& e) { - modem.SendSms(sms.sender, e.what(), false ); + modem.SendSms(sms.GetSender(), e.what(), false ); return; } @@ -105,7 +112,7 @@ os << train.note << "\n"; } - modem.SendSms(sms.sender, Util::str_latin2gsm(os.str()), true); + modem.SendSms(sms.GetSender(), os.str(), true);