using 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 void Main(string[] args)
{
const string foodExp = "\\
(?[^\\>]+) \\<";
const string URL = "http://www.studierendenwerk-koblenz.de/speiseplan.php";
string page = null;
try
{
page = GetPage(URL);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
Console.ReadKey();
Environment.Exit(1);
}
page = page.Replace("ß", "ss");
page = page.Replace("ä", "ae");
page = page.Replace("ö", "oe");
page = page.Replace("ü", "ue");
page = page.Replace("Ä", "Ae");
page = page.Replace("Ö", "Oe");
page = page.Replace("Ü", "Ue");
//DateTime now = DateTime.Now;
Regex regex = new Regex(foodExp);
MatchCollection matches = regex.Matches(page);
int dow = 0;
if (DateTime.Now.Hour > 14)
dow++;
if ((int)DateTime.Now.DayOfWeek + dow > (int)DayOfWeek.Friday)
{
dow = 0;
}
else
{
dow += (int)DateTime.Now.DayOfWeek - (int)DayOfWeek.Monday;
}
if (matches.Count < dow + 6)
{
Console.WriteLine("Karpott. Keine Daten.");
Environment.Exit(1);
}
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);
}
else
{
Console.WriteLine("Matches karpott. Komisch!");
}
//Console.WriteLine(DateTime.Now - now);
//Console.WriteLine(System.Globalization.DateTimeFormatInfo.CurrentInfo.FirstDayOfWeek.ToString());
Console.ReadKey();
}
public static string GetPage(string url)
{
HttpWebRequest webRequest = null;
HttpWebResponse response = null;
Stream dataStream = null;
try
{
webRequest = (HttpWebRequest)WebRequest.Create(url);
response = (HttpWebResponse)webRequest.GetResponse();
dataStream = response.GetResponseStream();
using (StreamReader sr = new StreamReader(dataStream, System.Text.Encoding.UTF7))
{
return sr.ReadToEnd();
}
}
catch (Exception ex)
{
throw;
}
finally
{
if (dataStream != null)
dataStream.Close();
if (response != null)
response.Close();
}
}
}
} |