public override IAsyncOperation <LaunchResult> HandleAsync(UriHandlerData data) { var sr = data.Queries.ContainsKey("f_shash") ? handleFileSearch(data) : handleSearch(data); return(AsyncWrapper.CreateCompleted <LaunchResult>(new SearchLaunchResult(sr))); }
public override IAsyncOperation <LaunchResult> HandleAsync(UriHandlerData data) { var category = categoryDic[data.Path0]; var keyword = GetKeyword(data); var advanced = GetAdvancedSearchOptions(data); return(AsyncWrapper.CreateCompleted <LaunchResult>(new SearchLaunchResult(Client.Current.Search(keyword, category, advanced)))); }
public IAsyncAction AddToCategoryAsync(IReadOnlyList <ItemIndexRange> items, FavoriteCategory categoty) { if (categoty == null) { throw new ArgumentNullException(nameof(categoty)); } if (items == null || items.Count == 0) { return(AsyncWrapper.CreateCompleted()); } return(AsyncInfo.Run(async token => { var ddact = default(string); if (categoty.Index < 0) { ddact = "delete"; } else { ddact = $"fav{categoty.Index}"; } var post = Client.Current.HttpClient.PostAsync(this.SearchUri, new HttpFormUrlEncodedContent(getParameters())); token.Register(post.Cancel); var r = await post; if (categoty.Index < 0) { this.Reset(); } else { foreach (var range in items) { for (var i = range.FirstIndex; i <= range.LastIndex; i++) { this[i].FavoriteCategory = categoty; } } } IEnumerable <KeyValuePair <string, string> > getParameters() { yield return new KeyValuePair <string, string>("apply", "Apply"); yield return new KeyValuePair <string, string>("ddact", ddact); foreach (var range in items) { for (var i = range.FirstIndex; i <= range.LastIndex; i++) { yield return new KeyValuePair <string, string>("modifygids[]", this[i].ID.ToString()); } } } })); }
public override IAsyncOperation <LaunchResult> HandleAsync(UriHandlerData data) { var v = data.Paths[1].Unescape2().Trim(); var category = GetCategory(data); var advanced = GetAdvancedSearchOptions(data); switch (data.Path0) { case "tag": return(AsyncWrapper.CreateCompleted <LaunchResult>(new SearchLaunchResult(Tag.Parse(v.TrimEnd(trim)).Search(category, advanced)))); case "uploader": return(AsyncWrapper.CreateCompleted <LaunchResult>(new SearchLaunchResult(Client.Current.Search(v, null, category, advanced)))); } return(AsyncWrapper.CreateError <LaunchResult>(new NotSupportedException("Unsupported uri."))); }
public static IAsyncOperation <Record> GetAsync(string title) { using (var db = new WikiDb()) { var record = db.Table.AsNoTracking().SingleOrDefault(r => r.Title == title); if (record != null && record.IsValid) { return(AsyncWrapper.CreateCompleted(record)); } if (record == null || record.LastUpdate.AddDays(7) < DateTimeOffset.Now) { return(FetchAsync(title)); } return(AsyncWrapper.CreateCompleted(default(Record))); } }
public static IAsyncOperation <string> GetDisplayContentAsync(this Tag tag) { var settings = SettingCollection.Current; if (settings.UseChineseTagTranslation) { var r = tag.GetEhTagTranslatorRecord(); if (r != null) { return(AsyncWrapper.CreateCompleted(r.Translated.Text)); } } if (settings.UseJapaneseTagTranslation) { var t = tag.GetEhWikiRecordAsync(); if (t.Status == AsyncStatus.Completed) { var r = t.GetResults(); if (!match(tag, r)) { return(AsyncWrapper.CreateCompleted(tag.Content)); } return(AsyncWrapper.CreateCompleted(r.Japanese ?? tag.Content)); } return(Run(async token => { try { var r = await t; if (!match(tag, r)) { return tag.Content; } return r.Japanese ?? tag.Content; } catch (Exception) { return tag.Content; } })); } return(AsyncWrapper.CreateCompleted(tag.Content)); }
protected internal static IAsyncOperation <StorageFolder> GetImageFolderAsync() { var temp = ImageFolder; if (temp != null) { return(AsyncWrapper.CreateCompleted(temp)); } return(Run(async token => { var temp2 = ImageFolder; if (temp2 == null) { temp2 = await ApplicationData.Current.LocalCacheFolder.CreateFolderAsync("Images", CreationCollisionOption.OpenIfExists); ImageFolder = temp2; } return temp2; })); }
public static IAsyncOperation <IList <Gallery> > FetchGalleriesAsync(IReadOnlyList <GalleryInfo> galleryInfo) { if (galleryInfo == null) { throw new ArgumentNullException(nameof(galleryInfo)); } if (galleryInfo.Count <= 0) { return(AsyncWrapper.CreateCompleted((IList <Gallery>)Array.Empty <Gallery>())); } if (galleryInfo.Count <= 25) { return(Run <IList <Gallery> >(async token => { var re = await new GalleryDataRequest(galleryInfo, 0, galleryInfo.Count).GetResponseAsync(); var data = re.GalleryMetaData; data.ForEach(async g => await g.InitAsync()); return data; })); } else { return(Run <IList <Gallery> >(async token => { var result = new Gallery[galleryInfo.Count]; var pageCount = MathHelper.GetPageCount(galleryInfo.Count, 25); for (var i = 0; i < pageCount; i++) { var pageSize = MathHelper.GetSizeOfPage(galleryInfo.Count, 25, i); var startIndex = MathHelper.GetStartIndexOfPage(25, i); var re = await new GalleryDataRequest(galleryInfo, startIndex, pageSize).GetResponseAsync(); var data = re.GalleryMetaData; data.ForEach(async g => await g.InitAsync()); data.CopyTo(result, startIndex); } return result; })); } }
public override IAsyncOperation <LaunchResult> HandleAsync(UriHandlerData data) { var keyword = ""; var category = (FavoriteCategory)null; var ap = false; foreach (var item in data.Queries) { switch (item.Key) { case "f_apply": ap = item.Value.QueryValueAsBoolean(); break; case "favcat": if (item.Value != "all") { var index = item.Value.QueryValueAsInt32(); index = Math.Max(0, index); index = Math.Min(9, index); category = Client.Current.Favorites[index]; } break; case "f_search": keyword = UnescapeKeyword(item.Value); break; } } if (!ap) { return(AsyncWrapper.CreateCompleted <LaunchResult>(new SearchLaunchResult(Client.Current.Favorites.Search("", category)))); } else { return(AsyncWrapper.CreateCompleted <LaunchResult>(new SearchLaunchResult(Client.Current.Favorites.Search(keyword, category)))); } }
protected override IAsyncAction InitOverrideAsync() { return(AsyncWrapper.CreateCompleted()); }
public override IAsyncOperation <LaunchResult> HandleAsync(UriHandlerData data) { GalleryInfo.TryParseGallery(data, out var info); return(AsyncWrapper.CreateCompleted((LaunchResult) new GalleryLaunchResult(info, -1, GalleryLaunchStatus.Default))); }