Пример #1
0
        public async static Task <EverythingResult> EverythingSearch(string content)
        {
            var    retModel   = new EverythingResult();
            string resContent = "";

            using (HttpClient client = new())
            {
                resContent = await client.GetStringAsync("http://*****:*****@"?s=&o=0&j=1&p=c&path_column=1&size_column=1&j=1&q=!c:\ " + Extensions + " " + content);
            }

            if (!string.IsNullOrEmpty(resContent))
            {
                retModel = JsonConvert.DeserializeObject <EverythingResult>(resContent);

                if (retModel != null && retModel.results != null && retModel.results.Count > 0)
                {
                    retModel.results = retModel.results.OrderByDescending(x => double.Parse(x.size)).ToList();

                    foreach (var r in retModel.results)
                    {
                        r.sizeStr  = FileUtility.GetAutoSizeString(double.Parse(r.size), 1);
                        r.location = "本地";
                    }

                    return(retModel);
                }
            }

            return(retModel);
        }
        public EverythingResult Search(string keyword, int maxCount, int offset = 0)
        {
            if (keyword == null) throw new ArgumentNullException(nameof(keyword));

            // disponse
            var last = Interlocked.Exchange(ref lastResult, null);
            last?.Dispose();

            // reset
            EverythingAPI.Everything_Reset();

            // apply
            var param = this.Parameters.Apply();
            EverythingAPI.Everything_SetSearchW(keyword);
            EverythingAPI.Everything_SetMax(maxCount);
            EverythingAPI.Everything_SetOffset(offset);
            EverythingAPI.Everything_QueryW(true);

            return (lastResult = new EverythingResult(param));
        }
Пример #3
0
        public async static Task <EverythingResult> SearchBothLocalAnd115LocalFirst(string content)
        {
            var retModel = new EverythingResult();

            retModel = await EverythingSearch(content);

            if (retModel == null || retModel.results == null || retModel.results.Count <= 0)
            {
                retModel = new EverythingResult
                {
                    results = new List <EverythingFileResult>()
                };

                List <OneOneFiveFileItemModel> oneOneFiveFiles = await OneOneFiveService.Get115SearchFileResult(content, OneOneFiveFolder.AV, true);

                if (oneOneFiveFiles != null && oneOneFiveFiles.Any())
                {
                    retModel.totalResults = oneOneFiveFiles.Count + "";

                    foreach (var file in oneOneFiveFiles)
                    {
                        EverythingFileResult temp = new()
                        {
                            size     = file.s + "",
                            sizeStr  = FileUtility.GetAutoSizeString(double.Parse(file.s + ""), 1),
                            location = "115网盘",
                            name     = file.n,
                            path     = file.pc,
                            type     = file.@class
                        };

                        retModel.results.Add(temp);
                    }
                }
            }

            return(retModel);
        }