Skip to content
This repository has been archived by the owner on Feb 16, 2021. It is now read-only.

Commit

Permalink
推荐可以加载了
Browse files Browse the repository at this point in the history
  • Loading branch information
tobiichiamane committed Apr 16, 2019
1 parent 3ea252f commit 0a87088
Show file tree
Hide file tree
Showing 5 changed files with 56 additions and 21 deletions.
18 changes: 16 additions & 2 deletions PixivFSUWP/Data/WaterfallItem.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System;
using FSharp.Data;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
Expand All @@ -12,7 +13,20 @@ public class WaterfallItem
public string Title { get; set; }
public string Author { get; set; }
public string ImageUri { get; set; }
public string LargeImageUri { get; set; }
public int Stars { get; set; }
public int Pages { get; set; }
public bool IsBookmarked { get; set; }
public static WaterfallItem FromJsonValue(JsonValue Source)
{
var toret = new WaterfallItem();
toret.Id = Source.Item("id").AsInteger();
toret.Title = Source.Item("title").AsString();
toret.Author = Source.Item("user").Item("name").AsString();
toret.ImageUri = Source.Item("image_urls").Item("medium").AsString();
toret.Stars = Source.Item("total_bookmarks").AsInteger();
toret.Pages = Source.Item("page_count").AsInteger();
toret.IsBookmarked = Source.Item("is_bookmarked").AsBoolean();
return toret;
}
}
}
4 changes: 2 additions & 2 deletions PixivFSUWP/MainPage.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,12 +36,12 @@ public MainPage()
view.TitleBar.ButtonForegroundColor = Colors.Black;
view.TitleBar.ButtonInactiveForegroundColor = Colors.Gray;
view.Title = "Pixiv UWP";
ContentFrame.Navigate(typeof(WaterfallPage));
ContentFrame.Navigate(typeof(WaterfallPage), WaterfallPage.ListContent.Recommend);
}

private async void NavControl_SelectionChanged(NavigationView sender, NavigationViewSelectionChangedEventArgs args)
{
switch(sender.MenuItems.IndexOf(args.SelectedItem))
switch (sender.MenuItems.IndexOf(args.SelectedItem))
{
case 0:
NavPlaceholder.IsEnabled = false;
Expand Down
4 changes: 1 addition & 3 deletions PixivFSUWP/PixivFSUWP.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -189,9 +189,7 @@
<Version>0.1.2</Version>
</PackageReference>
</ItemGroup>
<ItemGroup>
<Folder Include="Objects\" />
</ItemGroup>
<ItemGroup />
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' &lt; '14.0' ">
<VisualStudioVersion>14.0</VisualStudioVersion>
</PropertyGroup>
Expand Down
5 changes: 3 additions & 2 deletions PixivFSUWP/ViewModels/WaterfallItemViewModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ public class WaterfallItemViewModel
public string ImageUri { get; set; }
public string LargeImageUri { get; set; }
public int Stars { get; set; }
public int Pages { get; set; }
public BitmapImage ImageSource { get; set; }

public async Task LoadImageAsync()
Expand All @@ -42,8 +43,8 @@ public static WaterfallItemViewModel FromItem(WaterfallItem Item)
Title = Item.Title,
Author = Item.Author,
ImageUri = Item.ImageUri,
LargeImageUri = Item.LargeImageUri,
Stars = Item.Stars
Stars = Item.Stars,
Pages = Item.Pages
};
}
}
46 changes: 34 additions & 12 deletions PixivFSUWP/WaterfallPage.xaml.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System;
using FSharp.Data;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.IO;
Expand All @@ -14,6 +15,7 @@
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
using PixivFSCS;

// https://go.microsoft.com/fwlink/?LinkId=234238 上介绍了“空白页”项模板

Expand All @@ -24,23 +26,46 @@ namespace PixivFSUWP
/// </summary>
public sealed partial class WaterfallPage : Page
{
string[] testuris = { "https://i.pximg.net/c/540x540_70/img-master/img/2019/03/19/00/00/07/73755434_p0_master1200.jpg", "https://i.pximg.net/c/540x540_70/img-master/img/2019/02/07/00/00/05/73042381_p0_master1200.jpg", "https://i.pximg.net/c/540x540_70/img-master/img/2019/01/03/00/00/01/72461417_p0_master1200.jpg", "https://i.pximg.net/c/540x540_70/img-master/img/2018/12/11/00/00/07/72059628_p0_master1200.jpg", "https://i.pximg.net/c/540x540_70/img-master/img/2018/10/28/00/00/15/71377287_p0_master1200.jpg", "https://i.pximg.net/c/540x540_70/img-master/img/2018/09/12/00/00/05/70653098_p0_master1200.jpg", "https://i.pximg.net/c/540x540_70/img-master/img/2018/09/11/00/00/09/70639418_p0_master1200.jpg", "https://i.pximg.net/c/540x540_70/img-master/img/2018/09/10/00/00/04/70624207_p0_master1200.jpg", "https://i.pximg.net/c/540x540_70/img-master/img/2018/08/02/00/00/06/69972773_p0_master1200.jpg", "https://i.pximg.net/c/540x540_70/img-master/img/2018/07/26/00/00/08/69859628_p0_master1200.jpg", "https://i.pximg.net/c/540x540_70/img-master/img/2018/07/04/00/00/05/69526240_p0_master1200.jpg", "https://i.pximg.net/c/540x540_70/img-master/img/2018/07/03/00/00/08/69512461_p0_master1200.jpg", "https://i.pximg.net/c/540x540_70/img-master/img/2018/06/11/00/00/01/69174779_p0_master1200.jpg", "https://i.pximg.net/c/540x540_70/img-master/img/2018/05/12/00/00/16/68698297_p0_master1200.jpg", "https://i.pximg.net/c/540x540_70/img-master/img/2018/05/11/00/00/07/68684734_p0_master1200.jpg", "https://i.pximg.net/c/540x540_70/img-master/img/2018/05/10/00/00/11/68670770_p0_master1200.jpg", "https://i.pximg.net/c/540x540_70/img-master/img/2018/05/09/00/00/07/68656810_p0_master1200.jpg", "https://i.pximg.net/c/540x540_70/img-master/img/2018/05/08/00/00/10/68641893_p0_master1200.jpg", "https://i.pximg.net/c/540x540_70/img-master/img/2018/04/09/00/00/25/68145953_p0_master1200.jpg", "https://i.pximg.net/c/540x540_70/img-master/img/2018/03/07/00/00/13/67609464_p0_master1200.jpg", "https://i.pximg.net/c/540x540_70/img-master/img/2018/02/10/00/20/51/67190100_p0_master1200.jpg", "https://i.pximg.net/c/540x540_70/img-master/img/2018/01/08/00/45/23/66698609_p0_master1200.jpg", "https://i.pximg.net/c/540x540_70/img-master/img/2017/12/15/00/03/19/66292640_p0_master1200.jpg", "https://i.pximg.net/c/540x540_70/img-master/img/2017/12/08/00/22/01/66201209_p0_master1200.jpg", "https://i.pximg.net/c/540x540_70/img-master/img/2017/11/17/00/43/47/65922934_p0_master1200.jpg", "https://i.pximg.net/c/540x540_70/img-master/img/2017/11/09/00/31/49/65809956_p0_master1200.jpg", "https://i.pximg.net/c/540x540_70/img-master/img/2017/11/05/00/25/26/65752703_p0_master1200.jpg", "https://i.pximg.net/c/540x540_70/img-master/img/2017/11/02/00/32/03/65707174_p0_master1200.jpg", "https://i.pximg.net/c/540x540_70/img-master/img/2017/10/27/00/15/47/65608790_p0_master1200.jpg", "https://i.pximg.net/c/540x540_70/img-master/img/2017/10/24/00/10/08/65569960_p0_master1200.jpg" };
string[] testuris_l = { "https://i.pximg.net/img-original/img/2019/03/19/00/00/07/73755434_p0.jpg", "https://i.pximg.net/img-original/img/2019/02/07/00/00/05/73042381_p0.jpg", "https://i.pximg.net/img-original/img/2019/01/03/00/00/01/72461417_p0.jpg", "https://i.pximg.net/img-original/img/2018/12/11/00/00/07/72059628_p0.jpg", "https://i.pximg.net/img-original/img/2018/10/28/00/00/15/71377287_p0.jpg", "https://i.pximg.net/img-original/img/2018/09/12/00/00/05/70653098_p0.jpg", "https://i.pximg.net/img-original/img/2018/09/11/00/00/09/70639418_p0.jpg", "https://i.pximg.net/img-original/img/2018/09/10/00/00/04/70624207_p0.jpg", "https://i.pximg.net/img-original/img/2018/08/02/00/00/06/69972773_p0.jpg", "https://i.pximg.net/img-original/img/2018/07/26/00/00/08/69859628_p0.jpg", "https://i.pximg.net/img-original/img/2018/07/04/00/00/05/69526240_p0.jpg", "https://i.pximg.net/img-original/img/2018/07/03/00/00/08/69512461_p0.jpg", "https://i.pximg.net/img-original/img/2018/06/11/00/00/01/69174779_p0.jpg", "https://i.pximg.net/img-original/img/2018/05/12/00/00/16/68698297_p0.jpg", "https://i.pximg.net/img-original/img/2018/05/11/00/00/07/68684734_p0.jpg", "https://i.pximg.net/img-original/img/2018/05/10/00/00/11/68670770_p0.jpg", "https://i.pximg.net/img-original/img/2018/05/09/00/00/07/68656810_p0.jpg", "https://i.pximg.net/img-original/img/2018/05/08/00/00/10/68641893_p0.jpg", "https://i.pximg.net/img-original/img/2018/04/09/00/00/25/68145953_p0.jpg", "https://i.pximg.net/img-original/img/2018/03/07/00/00/13/67609464_p0.jpg", "https://i.pximg.net/img-original/img/2018/02/10/00/20/51/67190100_p0.jpg", "https://i.pximg.net/img-original/img/2018/01/08/00/45/23/66698609_p0.jpg", "https://i.pximg.net/img-original/img/2017/12/15/00/03/19/66292640_p0.jpg", "https://i.pximg.net/img-original/img/2017/12/08/00/22/01/66201209_p0.jpg", "https://i.pximg.net/img-original/img/2017/11/17/00/43/47/65922934_p0.jpg", "https://i.pximg.net/img-original/img/2017/11/09/00/31/49/65809956_p0.jpg", "https://i.pximg.net/img-original/img/2017/11/05/00/25/26/65752703_p0.jpg", "https://i.pximg.net/img-original/img/2017/11/02/00/32/03/65707174_p0.jpg", "https://i.pximg.net/img-original/img/2017/10/27/00/15/47/65608790_p0.jpg", "https://i.pximg.net/img-original/img/2017/10/24/00/10/08/65569960_p0.jpg" };
ObservableCollection<ViewModels.WaterfallItemViewModel> testItems = new ObservableCollection<ViewModels.WaterfallItemViewModel>();
public enum ListContent
{
Recommend,
Bookmark,
Following
}

ListContent listContent;

ObservableCollection<ViewModels.WaterfallItemViewModel> listItems = new ObservableCollection<ViewModels.WaterfallItemViewModel>();

public WaterfallPage()
{
this.InitializeComponent();
WaterfallListView.ItemsSource = testItems;
WaterfallListView.ItemsSource = listItems;
}

protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
if (e.Parameter is ListContent) listContent = (ListContent)e.Parameter;
_ = LoadImages();
}

public async Task LoadImages()
{
for (int i = 0; i < testuris.Length; i++)
switch (listContent)
{
var item = ViewModels.WaterfallItemViewModel.FromItem(new Data.WaterfallItem() { Title = "test", ImageUri = testuris[i], LargeImageUri = testuris_l[i] });
await item.LoadImageAsync();
testItems.Add(item);
case ListContent.Recommend:
var recommendres = await Task.Run(() => new PixivFS
.PixivAppAPI(Data.OverAll.GlobalBaseAPI)
.csfriendly_illust_recommended());
foreach (var recillust in recommendres.Item("illusts").AsArray())
{
Data.WaterfallItem recommendi = Data.WaterfallItem.FromJsonValue(recillust);
var recommendmodel = ViewModels.WaterfallItemViewModel.FromItem(recommendi);
await recommendmodel.LoadImageAsync();
listItems.Add(recommendmodel);
}
break;
}
}

Expand All @@ -54,10 +79,7 @@ private void WaterfallContent_Loaded(object sender, RoutedEventArgs e)

private void WaterfallListView_ItemClick(object sender, ItemClickEventArgs e)
{
if (Parent is Frame)
if ((Parent as Frame).Parent is Grid)
if (((Parent as Frame).Parent as Grid).Parent is MainPage)
(((Parent as Frame).Parent as Grid).Parent as MainPage).SelectNavPlaceholder("详情");
(((Parent as Frame)?.Parent as Grid)?.Parent as MainPage)?.SelectNavPlaceholder("详情");
}
}
}

0 comments on commit 0a87088

Please sign in to comment.