public string GetStream(string address) { var serveralias = address.Split('/')[0]; var filename = address.Substring(Math.Min(serveralias.Length + 1, address.Length)); var server = ""; var nameServers = new CSVDocument(File.ReadAllText("nameserver.csv")); foreach (var nameServer in nameServers) { server = new WebClient().DownloadString(string.Format(nameServer["Pattern"], serveralias)).Trim(' ', '\n', '\r'); if (server != "") { break; } } if (!server.StartsWith("http://")) { server = "http://" + server; } var resolvedAddress = Path.Combine(server, filename).Replace('\\', '/'); var siteContent = ""; foreach (var appendage in new[] { "", ".tk", "/index.tk" }) { try { var siteRequest = ((HttpWebResponse)WebRequest.Create((resolvedAddress + appendage).Replace('\\', '/')).GetResponse()); siteContent = new StreamReader(siteRequest.GetResponseStream()).ReadToEnd(); if (!Regex.IsMatch(siteContent, "Apache.*at.*Port", RegexOptions.Singleline)) { break; } } catch (Exception e) { Debug.WriteLine(e); } } return siteContent; }
private static string Server(string serveralias) { var server = ""; var nameServers = new CSVDocument(File.ReadAllText("nameserver.csv")); foreach(var nameServer in nameServers) { try { server = new WebClient().DownloadString(string.Format(nameServer["Pattern"], serveralias)).Trim(' ', '\n', '\r'); if(server != "") { break; } } catch(Exception e) { /* ignored for now */ } } if(!server.StartsWith("http://")) { server = "http://" + server; } return server; }
/// <summary> /// Creates Cell object. /// </summary> /// <param name="parentDoc">Reference to a document that contains cell.</param> /// <param name="xPosition">Horizontal position.</param> /// <param name="yPosition">Vertical position.</param> /// <param name="data">Text.</param> /// <param name="dataParsing">Data parsing condition.</param> /// <param name="delimiter">Delimiter.</param> public Cell( CSVDocument parentDoc, int xPosition, int yPosition, string data, bool dataParsing = false, char delimiter = DEFAULT_DELIMITER) { this.parentDoc = parentDoc; this.delimiter = delimiter; Data = dataParsing ? Parse(data) : data; this.commonX = X = xPosition; this.commonY = Y = yPosition; }
private CSVDocument AddDJVUToCsv(string file, int requestedDPI, CancellationTokenSource source, string rootFolder) { try { LogWriter.LogMessage($"Reading file {file}", LogDepth.UserLevel); CSVDocument csvDocument = null; try { csvDocument = CSVDocument.FromFile(file); } catch (FileNotFoundException ex) { LogWriter.LogMessage(ex.Message); } CSVRow anyRow = csvDocument.Rows[0]; var imagesForDJVU = csvDocument.Rows.Select(s => { if (s.Content.ContainsKey("DJVUIMAGES")) { return(s.Content["DJVUIMAGES"]); } else if (s.Content.ContainsKey("FILES")) { return(s.Content["FILES"]); } else { throw new Exception("Columns in CSV are incorrect."); } }); var outputDJVUPath = Regex.Replace(csvDocument.Rows.FirstOrDefault().PathToPDF, "[.]pdf", ".djvu"); try { bool singlePDFInput = imagesForDJVU.Distinct().Count() == 1; if (singlePDFInput) { PDFToDJVU.Executor.NewPrepareDJVU(imagesForDJVU.FirstOrDefault(), outputDJVUPath, source, requestedDPI); } else { PDFToDJVU.Executor.PrepareDJVU(imagesForDJVU.ToArray(), outputDJVUPath, source, rootFolder, requestedDPI); } } catch (Exception) { source.Cancel(); throw; } CSVRow DJVUFullDocument = (CSVRow)anyRow.Clone(); DJVUFullDocument.Content["PAGES"] = "0"; DJVUFullDocument.PathToPDF = outputDJVUPath; LogWriter.LogMessage($"Adding a row with DJVUDocument {outputDJVUPath}", LogDepth.Debug); csvDocument.Add(DJVUFullDocument); return(csvDocument); } catch (Exception ex) { LogWriter.LogMessage(ex.Message, LogDepth.Debug); throw; } }