rendered paste bodyusing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Net;
using System.IO;
namespace MensaPlan
{
class Program
{
static HttpWebRequest m_WebRequest;
static CookieContainer m_Cookies = new CookieContainer();
static void Main(string[] args)
{
const string foodExp = "(.)+<td class=\"borderb\">(?<FOOD>(.)+) </td>";
const string URL = "http://www.studierendenwerk-koblenz.de/speiseplan.php";
string page = string.Empty;
page = LoadURL(URL);
if (page.Equals(string.Empty))
{
Environment.Exit(1);
}
page = page.Replace(">", ">"); // will weder >
page = page.Replace("<", "<"); // noch < parsen :(
Regex regex = new Regex(foodExp);
MatchCollection matches = regex.Matches(page);
if (matches.Count != 10)
{
Console.WriteLine("Fehlerhafte Anzahl an Einträgen");
Environment.Exit(1);
}
int dow;
switch (DateTime.Now.DayOfWeek)
{
case DayOfWeek.Monday: dow = 0;
break;
case DayOfWeek.Tuesday: dow = 1;
break;
case DayOfWeek.Wednesday: dow = 2;
break;
case DayOfWeek.Thursday: dow = 3;
break;
case DayOfWeek.Friday: dow = 4;
break;
default:
dow = 0;
Console.WriteLine("Heute gibts nix");
Environment.Exit(1);
break;
}
if (matches[dow].Success && matches[dow + 5].Success)
{
Console.WriteLine("Ausgabe 1: " + matches[dow].Groups["FOOD"].Value);
Console.WriteLine("Ausgabe 2: " + matches[dow + 5].Groups["FOOD"].Value);
}
}
public static string LoadURL(string url)
{
HttpWebResponse response = null;
Stream dataStream = null;
StreamReader reader = null;
string resp = string.Empty;
try
{
m_WebRequest = (HttpWebRequest)WebRequest.Create(url);
m_WebRequest.UserAgent = "Agent Smith";
m_WebRequest.CookieContainer = m_Cookies;
response = (HttpWebResponse)m_WebRequest.GetResponse();
dataStream = response.GetResponseStream();
reader = new StreamReader(dataStream);
resp = reader.ReadToEnd();
}
catch (Exception ex)
{
Console.WriteLine("Exception: " + ex.Message);
Console.WriteLine("URL : " + url);
System.Diagnostics.StackTrace st = new System.Diagnostics.StackTrace();
System.Diagnostics.StackFrame sf = st.GetFrame(1);
Console.WriteLine("Methode : " + sf.GetMethod().Name + "()");
}
finally
{
if (reader != null)
reader.Close();
if (dataStream != null)
dataStream.Close();
if (response != null)
response.Close();
}
return resp;
}
}
}