public static async Task <Result> TextFromFileAsync(string apikey, string fileOnDisk, string client, int priority, MiningIntensity intensity, string origFilename = "", TimeSpan?maxWaitingTime = null, TimeSpan?restartTaskAfterTime = null /*, Api.CallbackData callBackData = null*/) { Api.CallbackData callBackData = null; //temporaty disable callBack if (string.IsNullOrEmpty(origFilename)) { origFilename = System.IO.Path.GetFileName(fileOnDisk); } var id = await uploadFileAsync(apikey, fileOnDisk, client, priority, intensity, origFilename, maxWaitingTime ?? defaultWaitingTime, restartTaskAfterTime /*, callBackData */); ///await Task.Delay() if (callBackData == null) { return(await WaitingForResultAsync(apikey, id, maxWaitingTime ?? defaultWaitingTime)); } else { return new Result() { Id = id, IsValid = Result.ResultStatus.InQueueWithCallback } }; //return result; }
public override string GenerateScript(bool saveScript) { try { if (MiningIntensity == 0) { MiningIntensity = 23; } string command = EXENAME + " --algo=skein -o " + MainCoinConfigurer.Pool; command += " -u " + MainCoinConfigurer.Wallet; string pwd = MainCoinConfigurer.Password.Trim(); if (pwd.Length == 0) { pwd = " x "; } command += " -p " + pwd; command += " -i " + MiningIntensity.ToString(); command += " --api-bind " + STATS_LINK + ":" + STATS_LINK_PORT; Script = SCRIPT1 + command; AutomaticScriptGeneration = true; if (saveScript) { SaveScriptToDB(); } return(Script); } catch (Exception e) { return(""); } }
public override string GenerateScript(bool saveScript) { try { if (MiningIntensity == 0) { MiningIntensity = 13; } string command = EXENAME + " --skein -o " + MainCoinConfigurer.Pool; command += " -u " + MainCoinConfigurer.Wallet; string pwd = MainCoinConfigurer.Password.Trim(); if (pwd.Length == 0) { pwd = " x "; } command += " -p " + pwd; command += " -I " + MiningIntensity.ToString(); command += " --api-listen "; command += " --gpu-threads 1 --scan-time 2 --queue 0 --expiry 1 --no-submit-stale "; Script = SCRIPT1 + command; AutomaticScriptGeneration = true; if (saveScript) { SaveScriptToDB(); } return(Script); } catch (Exception e) { return(""); } }
public static async Task <Result> TextFromUrlAsync(string apikey, Uri url, string client, int priority, MiningIntensity intensity, string origFilename = null, TimeSpan?maxWaitingTime = null, TimeSpan?restartTaskAfterTime = null /*, Api.CallbackData callBackData = null*/) { string fullUrl = null; string taskId = null; var tmpFile = TempIO.GetTemporaryFilename(); try { using (Devmasters.Net.HttpClient.URLContent net = new Devmasters.Net.HttpClient.URLContent(url.AbsoluteUri)) { net.TimeInMsBetweenTries = 2000; net.Timeout = 60000; net.Tries = 5; net.IgnoreHttpErrors = true; System.IO.File.WriteAllBytes(tmpFile, net.GetBinary().Binary); } return(await TextFromFileAsync(apikey, tmpFile, client, priority, intensity, origFilename, maxWaitingTime, restartTaskAfterTime)); } catch (Exception e) { throw new ApiException("exception API TextFromFileAsync ", e); //return new Result() { Id = taskId, IsValid = Result.ResultStatus.Invalid, Error = json["error"].Value<string>() }; } finally { TempIO.DeleteFile(tmpFile); } }
private static async Task <string> uploadFileAsync(string apikey, string fileOnDisk, string client, int priority, MiningIntensity intensity, string origFilename, TimeSpan maxWaitingTime, TimeSpan?restartTaskAfterTime = null, Api.CallbackData callBackData = null ) { string callBackDataString = ""; if (callBackData != null) { callBackDataString = Newtonsoft.Json.JsonConvert.SerializeObject(callBackData); } var fullUrl = ""; byte[] resbyte; string res = ""; try { using (WebOcr wc = new WebOcr()) { string param = "fn=" + System.Net.WebUtility.UrlEncode((origFilename ?? "")) + "&client=" + System.Net.WebUtility.UrlEncode(client ?? "") + "&apikey=" + apikey + "&priority=" + priority + "&intensity=" + (int)intensity + "&expirationIn=" + (int)(maxWaitingTime.TotalSeconds * 1.05) //add 5% + "&restartIn=" + (int)(restartTaskAfterTime?.TotalSeconds ?? 0) + "&callbackData=" + System.Net.WebUtility.UrlEncode(callBackDataString); fullUrl = ApiUrl + "addTask.ashx?" + param; resbyte = await wc.UploadFileTaskAsync(fullUrl, "POST", fileOnDisk); res = System.Text.Encoding.UTF8.GetString(resbyte); Newtonsoft.Json.Linq.JToken json = Newtonsoft.Json.Linq.JToken.Parse(res); if (json["taskid"] != null) { return(json["taskid"].ToString()); } else { logger.Error($"ExtApi.TextFromFileAsync API Exception\nFile:{origFilename}\n content: " + res); throw new ApiException(res); } } } catch (System.Net.WebException e) { logger.Debug($"called ext API TextFromFile {fullUrl}.\nResponse: {res}\n" + ApiUrl, e); throw new ApiException("called ext API ", e); } catch (Exception e) { logger.Debug($"called ext API TextFromFile {fullUrl}.\nResponse: {res}\n" + ApiUrl, e); throw; } }
public MultipleUris(string apikey, string client, int priority, MiningIntensity intensity, IEnumerable <Uri> uris) { if (uris == null) { throw new ArgumentNullException("files"); } if (string.IsNullOrEmpty(apikey)) { throw new ArgumentNullException("apikey"); } this.apikey = apikey; this.Client = client; this.Priority = priority; this.Intensity = intensity; this.uris = uris; if (this.uris.Count() > 0) { pi = new ProgressInterval(this.uris.Count()); } }
public static Result TextFromFile(string apikey, string fileOnDisk, string client, int priority, MiningIntensity intensity, string origFilename = "", TimeSpan?maxWaitingTime = null, TimeSpan?restartTaskAfterTime = null /*, Api.CallbackData callBackData = null*/) { Api.CallbackData callBackData = null; //temporaty disable callBack if (string.IsNullOrEmpty(origFilename)) { origFilename = Lib.OCR.DocTools.GetFilename(fileOnDisk); } TimeSpan?waitTime = maxWaitingTime; if (waitTime == null && callBackData != null) { waitTime = TimeSpan.FromDays(14); } else if (waitTime == null) { waitTime = defaultWaitingTime; } var id = uploadFile(apikey, fileOnDisk, client, priority, intensity, origFilename, maxWaitingTime ?? defaultWaitingTime, restartTaskAfterTime /*, callBackData */); if (callBackData == null) { return(WaitingForResult(apikey, id, maxWaitingTime ?? defaultWaitingTime)); } else { return new Result() { Id = id, IsValid = Result.ResultStatus.InQueueWithCallback } }; }
public static async Task <Result> TextFromUrlAsync(string apikey, Uri url, string client, int priority, MiningIntensity intensity, string origFilename = null, TimeSpan?maxWaitingTime = null, TimeSpan?restartTaskAfterTime = null /*, Api.CallbackData callBackData = null*/) { string fullUrl = null; string taskId = null; Api.CallbackData callBackData = null; //temporaty disable callBack try { if (string.IsNullOrEmpty(origFilename)) { origFilename = Lib.OCR.DocTools.GetFilename(url.LocalPath); } TimeSpan?waitTime = maxWaitingTime; if (waitTime == null && callBackData != null) { waitTime = TimeSpan.FromDays(14); } else if (waitTime == null) { waitTime = defaultWaitingTime; } string callBackDataString = ""; if (callBackData != null) { callBackDataString = Newtonsoft.Json.JsonConvert.SerializeObject(callBackData); } using (WebOcr wc = new WebOcr()) { string param = "url=" + System.Net.WebUtility.UrlEncode(url.AbsoluteUri) + "&apikey=" + apikey + "&fn=" + System.Net.WebUtility.UrlEncode(origFilename ?? "") + "&client=" + System.Net.WebUtility.UrlEncode(client ?? "") + "&priority=" + priority + "&intensity=" + (int)intensity + "&expirationIn=" + (int)(waitTime.Value.TotalSeconds * 1.05) //add 5% + "&restartIn=" + (int)(restartTaskAfterTime?.TotalSeconds ?? 0) + "&callbackData=" + System.Net.WebUtility.UrlEncode(callBackDataString); fullUrl = ApiUrl + "addTask.ashx?" + param; var resbyte = await wc.DownloadDataTaskAsync(fullUrl); var res = System.Text.Encoding.UTF8.GetString(resbyte); Newtonsoft.Json.Linq.JToken json = Newtonsoft.Json.Linq.JToken.Parse(res); if (json["taskid"] != null) { taskId = json["taskid"].ToString(); } else { logger.Error($"ExtApi.TextFromUrlAsync API Exception\nUrl:{url.AbsoluteUri}\n content: " + res); return(new Result() { Id = taskId, IsValid = Result.ResultStatus.Invalid, Error = json["error"].Value <string>() }); } } if (callBackData == null) { return(WaitingForResult(apikey, taskId, maxWaitingTime ?? defaultWaitingTime)); } else { return new Result() { Id = taskId, IsValid = Result.ResultStatus.InQueueWithCallback } }; } catch (System.Net.WebException e) { logger.Debug($"called ext API TextFromFile {fullUrl}.\n " + ApiUrl, e); throw new ApiException("called ext API ", e); } catch (Exception e) { logger.Error($"exception API TextFromFile {fullUrl}.\n " + ApiUrl, e); throw new ApiException("exception API TextFromFile ", e); } finally { //TempIO.DeleteFile(tmpFile); } }
public static Result TextFromUrl(string apikey, Uri url, string client, TaskPriority priority, MiningIntensity intensity, string origFilename = null, TimeSpan?maxWaitingTime = null, TimeSpan?restartTaskAfterTime = null /*, Api.CallbackData callBackData = null*/) { return(TextFromUrl(apikey, url, client, (int)priority, intensity, origFilename, maxWaitingTime, restartTaskAfterTime /*, callBackData */)); }
public static async Task <Result> TextFromFileAsync(string apikey, string fileOnDisk, string client, TaskPriority priority, MiningIntensity intensity, string origFilename = "", TimeSpan?maxWaitingTime = null, TimeSpan?restartTaskAfterTime = null /*, Api.CallbackData callBackData = null*/) { return(await TextFromFileAsync(apikey, fileOnDisk, client, (int)priority, intensity, origFilename, maxWaitingTime, restartTaskAfterTime /*, callBackData */)); }
public MultipleUris(string apikey, string client, int priority, MiningIntensity intensity, params Uri[] uris) : this(apikey, client, priority, intensity, uris as IEnumerable <Uri>) { }
public MultipleFiles(string apikey, string client, int priority, MiningIntensity intensity, params string[] files) : this(apikey, client, priority, intensity, files as IEnumerable <string>) { }