public override void OnPlayerListChange(Server server, List <Player> players) { var packet = new ServerInfoPacketType() { ServerId = server.ServerId.ToString(), Players = players.Where(p => p != null && p.ClientId != 0 && p.NickId != null) .Select(p => new PlayerPacketType() { NickId = p.NickId.ToString(), CountryId = p.Country?.Id ?? 0, Ping = p.Ping, Status = p.Status.ToString(), }) .ToArray() }; var json = Json.Serialize(packet); using (var webClient = new WebClientBase()) { webClient.Timeout = 9000; webClient.ContentType = ContentType.JsonUTF8; webClient.KeepAlive = false; webClient.SetCookie("srvtoken", this.Token, DOMAIN); webClient.Upload(PLAYERURL, json); } }
public static T DeserializeUrl <T>(string url) where T : class { using (WebClientBase wc = new WebClientBase()) using (Stream stream = wc.DownloadToStream(url)) { if (stream == null) { return(null); } using (StreamReader streamReader = new StreamReader(stream)) using (JsonReader reader = new JsonTextReader(streamReader)) { JsonSerializer serializer = new JsonSerializer(); try { return(serializer.Deserialize <T>(reader)); } catch { Log.WriteError("Deserializing of {0} from url {1} failed", typeof(T).ToString(), url); return(null); } } } }
public void GZipBytesTest() { var webClient = new WebClientBase(); var compressed = webClient.GZipBytes("test"); var decompressed = webClient.GUnzip(compressed); Assert.IsTrue("test" == decompressed); }
private static string getHelpPage(string helpFileName) { var client = new WebClientBase(); string name = Path.GetFileNameWithoutExtension(helpFileName); var pageContent = client.DownloadString("https://github.com/NikolayXHD/Mtgdb/wiki/" + name); return(pageContent); }
public void GetStreamId() { using (WebClientBase webClient = new WebClientBase()) { var channelPage = webClient.Download(String.Format("http://sc2tv.ru/channel/{0}", ChannelName.Replace("#", ""))); channelId = Re.GetSubString(channelPage, @"channelId=(\d+)"); } }
public void SendDataToServer(object sender) { var obj = sender as GlobalStatistics; if (obj == null) { return; } lock (obj.lockSend) { string result = "FAIL"; if (String.IsNullOrWhiteSpace(obj.lastPacket)) { obj.lastPacket = GetNextPacket(); } if (String.IsNullOrWhiteSpace(obj.lastPacket)) { return; } using (WebClientBase webClient = new WebClientBase()) { var data = webClient.GZipBytes(obj.lastPacket); webClient.Timeout = 59000; webClient.ContentType = ContentType.JsonUTF8; webClient.KeepAlive = false; webClient.SetCookie("srvtoken", Token, DOMAIN); result = webClient.UploadCompressed(EVENTURL, obj.lastPacket); if (!String.IsNullOrWhiteSpace(result)) { if (result.Equals("OK", StringComparison.InvariantCultureIgnoreCase)) { if (!obj.firstPacketSent) { obj.firstPacketSent = true; Log.WriteInfo("Successfuly connected to il2.info"); } obj.lastPacket = String.Empty; } else { Log.WriteInfo("Send result: {0}", result); } } else { Log.WriteInfo("Send result: FAIL (HTTP error)"); } } } }
public Sc2TvChat(ChatConfig config) : base(config) { EmoticonUrl = "http://chat.sc2tv.ru/js/smiles.js"; EmoticonFallbackUrl = AppDomain.CurrentDomain.GetData("DataDirectory") + @"\Scripts\Example\Sc2TvSmilesFallback.js"; CreateChannel = () => { return(new Sc2TvChannel(this)); }; ReceiveOwnMessages = false; ContentParsers.Add(MessageParser.RemoveBBCode); ContentParsers.Add(MessageParser.UnescapeHtml); ContentParsers.Add(MessageParser.ParseURLs); ContentParsers.Add(MessageParser.ParseEmoticons); LoginWebClient = new WebClientBase(); }
private static string getOnlineHelpContent(string helpFileName) { var client = new WebClientBase(); string name = Path.GetFileNameWithoutExtension(helpFileName); var pageContent = client.DownloadString("https://github.com/NikolayXHD/Mtgdb/wiki/" + name); var startIndex = pageContent.IndexOf(HelpContentOpenElement, Str.Comparison); var contentPrefix = pageContent.Substring(startIndex); var openers = new Regex("<div").Matches(contentPrefix); var closers = new Regex("</div>").Matches(contentPrefix); var tags = openers.Cast <Match>() .Select(m => new { index = m.Index, length = m.Length, open = true }) .Concat(closers.Cast <Match>().Select(m => new { index = m.Index, length = m.Length, open = false })) .OrderBy(_ => _.index) .ToArray(); int c = 0; for (int i = 0; i < tags.Length; i++) { if (tags[i].open) { c++; } else { c--; } if (c == 0) { return(contentPrefix.Substring(0, tags[i].index + tags[i].length)); } } throw new FormatException(); }
private async void CheckUpdates() { using (WebClientBase webClient = new WebClientBase()) { int currentVersion = 0; Log.WriteInfo("OBSPlugin: Downloading current version info"); var content = webClient.Download("http://www.xedocproject.com/apps/ubiquitous2obs/ub2plugin.ver"); if (content != null) { content = Re.GetSubString(content, @"(\d+)"); int.TryParse(content, out currentVersion); Log.WriteInfo("OBSPlugin: current version number is {0}", currentVersion); bool isError = false; string saveFileName = Path.GetTempPath() + @"Ubiquitous2PluginInstaller.exe"; if (currentVersion > VERSION) { try { if (File.Exists(saveFileName)) { File.Delete(saveFileName); } } catch (Exception e) { isError = true; Log.WriteError("OBSPlugin: error deleting old installer {0}", e.Message); } await Task.Run(() => { try { webClient.DownloadFile(@"http://www.xedocproject.com/apps/ubiquitous2obs/Ubiquitous2PluginInstaller.exe", Path.GetTempPath() + @"Ubiquitous2PluginInstaller.exe"); } catch (Exception e) { isError = true; Log.WriteError("OBSPlugin: Error downloading update {0}", e.Message); } }); if (!isError) { var result = MessageBox.Show("New version of Ubiquitous2 plugin is available. Install it now ?", "New Ubiquitous2 plugin", MessageBoxButtons.YesNo); if (result == DialogResult.No) { return; } var installDir = AssemblyDirectory.Replace(@"plugins\CLRHostPlugin", ""); ProcessStartInfo startInfo = new ProcessStartInfo(saveFileName, string.Format("\"{0}\"", installDir)); Process.Start(startInfo); } } } else { Log.WriteError("OBSPlugin: couldn't get current plugin version"); } } }