public async Task WK_ConvertAsync_url() { string message = null; WKHtmltoPdfProvider wk = new WKHtmltoPdfProvider(); wk.Error += (sender, e) => { message = e.Exception.Message; }; var f1 = new InputUrl("http://www.baidu.com"); var f2 = new ConvertFile("baidu.pdf"); var f4 = await wk.ConvertAsync(f1, f2, null, null); var flag = File.Exists(f4.FileInfo.FullName); Assert.True(flag); }
public async Task <IActionResult> OnPostAsync() { InputUrl = InputUrl.Trim().ToLower(); string hash = Functions.GenerateRandomHash(5); var existingUrl = await _urlRepo.GetUrlByOriginalUrl(hash); do { hash = Functions.GenerateRandomHash(5); var exits = await _urlRepo.GetUrlByShortUrl(hash); if (exits == null) { break; } } while (existingUrl != null && hash == existingUrl.ShortUrl); if (!ModelState.IsValid) { Message = "Something went wrong, please try again"; return(Page()); } else if (!Functions.CheckValidUrl(InputUrl)) { Message = "Something went wrong, your url is not valid and could not be validated before being posted to the server. Please try again."; _log.LogWarning("Javascript validation failed."); return(Page()); } newUrl.ShortUrl = hash; newUrl.OriginalUrl = InputUrl; newUrl.CreatedDate = DateTime.Now; newUrl.Counter = 0; newUrl.IP = _accessor.HttpContext.Connection.RemoteIpAddress.ToString(); await _urlRepo.AddUrl(newUrl); return(RedirectToPage("/Index")); }
protected override Data.Torrent FindAddedTorrent(AddUrlResponse result) { if (result == null) { throw new ArgumentNullException("result"); } if (InputUrl != null && string.Equals(InputUrl.Scheme, "magnet", StringComparison.OrdinalIgnoreCase)) { Regex reg = new Regex("BTIH:([A-F0-9]{40})"); Match match = reg.Match(InputUrl.ToString().ToUpperInvariant()); if (match.Success) { string hash = match.Groups[1].Value; var torrent = result.Result.Torrents.OrderByDescending(t => t.AddedDate).AsParallel().FirstOrDefault(item => string.Equals(item.Hash, hash, StringComparison.OrdinalIgnoreCase)); return(torrent); } } return(null); }
protected override Data.Torrent FindAddedTorrent(AddUrlResponse result) { if (result == null) { throw new ArgumentNullException("result"); } if (InputUrl != null && string.Equals(InputUrl.Scheme, "magnet", StringComparison.OrdinalIgnoreCase)) { //BTIH Regex reg = new Regex("BTIH:([A-F0-9]{40})"); var url = InputUrl.ToString().ToUpperInvariant(); Match match = reg.Match(url); if (match.Success) { string hash = match.Groups[1].Value; var torrent = result.Result.Torrents.OrderByDescending(t => t.AddedDate).FirstOrDefault(item => string.Equals(item.Hash, hash, StringComparison.OrdinalIgnoreCase)); return(torrent); } else { // Base 32 not raw hash reg = new Regex("BTIH:([A-Z0-9]{32})"); url = InputUrl.ToString().ToUpperInvariant(); match = reg.Match(url); if (!match.Success) { return(null); } var data = Base32Helper.ToBytes(match.Groups[1].Value); string hash = BitConverter.ToString(data).Replace("-", string.Empty); var torrent = result.Result.Torrents.OrderByDescending(t => t.AddedDate).FirstOrDefault(item => string.Equals(item.Hash, hash, StringComparison.OrdinalIgnoreCase)); return(torrent); } } return(null); }