Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 2
0
        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("");
            }
        }
Ejemplo n.º 3
0
        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("");
            }
        }
Ejemplo n.º 4
0
        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);
            }
        }
Ejemplo n.º 5
0
        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;
            }
        }
Ejemplo n.º 6
0
            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());
                }
            }
Ejemplo n.º 7
0
        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
                       }
            };
        }
Ejemplo n.º 8
0
        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);
            }
        }
Ejemplo n.º 9
0
 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 */));
 }
Ejemplo n.º 10
0
 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 */));
 }
Ejemplo n.º 11
0
 public MultipleUris(string apikey, string client, int priority,
                     MiningIntensity intensity, params Uri[] uris)
     : this(apikey, client, priority, intensity, uris as IEnumerable <Uri>)
 {
 }
Ejemplo n.º 12
0
 public MultipleFiles(string apikey, string client, int priority,
                      MiningIntensity intensity, params string[] files)
     : this(apikey, client, priority, intensity, files as IEnumerable <string>)
 {
 }