1 |
torben |
188 |
#include "WeatherPlugin.h" |
2 |
|
|
#include "ISmsTransceiver.h" |
3 |
|
|
#include "Sms.h" |
4 |
torben |
193 |
#include "HttpClient.h" |
5 |
|
|
#include "Exceptions.h" |
6 |
torben |
188 |
#include "Util.h" |
7 |
|
|
|
8 |
|
|
using namespace std; |
9 |
|
|
using namespace Util; |
10 |
|
|
|
11 |
|
|
WeatherPlugin::WeatherPlugin() |
12 |
|
|
: Plugin("vejr", "Find danish weather report on dmi.dk") |
13 |
|
|
{ |
14 |
|
|
} |
15 |
|
|
|
16 |
|
|
void WeatherPlugin::Execute(ISmsTransceiver& modem, SMS& sms) |
17 |
|
|
{ |
18 |
torben |
193 |
string doc; |
19 |
|
|
try |
20 |
|
|
{ |
21 |
|
|
doc = HttpClient::GetString("http://www.dmi.dk/dmi/danmark.htm"); |
22 |
|
|
} catch (httpexception&e ) { |
23 |
|
|
modem.SendSms(sms.GetSender(), "could not retrieve data", true); |
24 |
|
|
return; |
25 |
|
|
} |
26 |
torben |
188 |
|
27 |
|
|
int pos = doc.find("<!-- tekst 5 -->"); |
28 |
|
|
int pos2 = doc.find("</table>",pos); |
29 |
|
|
|
30 |
|
|
string title = doc.substr(pos, (pos2-pos) ); |
31 |
|
|
title = str_trim( str_striptags(title) ) + "\n"; |
32 |
|
|
|
33 |
|
|
pos = doc.find("<table", pos2); |
34 |
|
|
pos2 = doc.find("</table>",pos); |
35 |
|
|
|
36 |
|
|
string section = doc.substr(pos, (pos2-pos) ); |
37 |
|
|
section = str_trim( str_striptags(section) ); |
38 |
|
|
section = str_characters( section ); |
39 |
|
|
section = str_replace(section, "\r"); |
40 |
|
|
section = str_replace(section, " \n"); |
41 |
|
|
|
42 |
|
|
section = str_replace(section, " ", " "); |
43 |
|
|
section = str_replace(section, "\n\n\n", "\n"); |
44 |
|
|
section = str_replace(section, "\n\n", "\n"); |
45 |
|
|
|
46 |
|
|
modem.SendSms(sms.GetSender(), title + section, true); |
47 |
|
|
|
48 |
|
|
|
49 |
|
|
} |