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
frg2089 committed Oct 7, 2019
1 parent 1f656d8 commit 79bf9f1
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 34 deletions.
50 changes: 21 additions & 29 deletions PixivFSUWP/SearchPage.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,11 @@
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
using PixivCS;
using PixivCS; //
using Windows.UI.Xaml.Media.Imaging;
using PixivFSUWP.Interfaces;
using static PixivFSUWP.Data.OverAll;
// 额外内容
using PixivCS.SauceNao;
using Windows.Data.Json;

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

Expand Down Expand Up @@ -193,71 +192,64 @@ private void BtnTag_Click(object sender, RoutedEventArgs e)

private async void btnSauceNAO_Click(object sender, RoutedEventArgs e)
{
const string sauceNAOAPI=null;
const string imgurAPI = null;
string SAUCENAO_API_KEY, IMGUR_API_KEY;
Frame.Navigate(typeof(SauceNAOPage));
Windows.Storage.ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
//读取设置项
if (localSettings.Values["SauceNAOAPI"] as string == null)
{
// "未设置SauceNAO API"
Frame.Navigate(typeof(SettingsPage));
SAUCENAO_API_KEY = sauceNAOAPI;
return;
// SAUCENAO_API_KEY = "默认API";
}
else if ((localSettings.Values["SauceNAOAPI"] as string).Length == 0)
{
// "未设置SauceNAO API"
Frame.Navigate(typeof(SettingsPage));
SAUCENAO_API_KEY = sauceNAOAPI;
return;
// SAUCENAO_API_KEY = "默认API";
}
if (localSettings.Values["ImgurAPI"] as string == null)
{
// "未设置Imger API"
Frame.Navigate(typeof(SettingsPage));
IMGUR_API_KEY = imgurAPI;
return;
// IMGUR_API_KEY = "默认API";
}
else if ((localSettings.Values["ImgurAPI"] as string).Length == 0)
{
// "未设置Imger API"
Frame.Navigate(typeof(SettingsPage));
return;
// IMGUR_API_KEY = "默认API";
IMGUR_API_KEY = imgurAPI;
return;
}
SAUCENAO_API_KEY = localSettings.Values["SauceNAOAPI"] as string;
IMGUR_API_KEY = localSettings.Values["ImgurAPI"] as string;
// 选择文件
var picker = new Windows.Storage.Pickers.FileOpenPicker();
picker.ViewMode = Windows.Storage.Pickers.PickerViewMode.Thumbnail;
picker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.PicturesLibrary;
picker.FileTypeFilter.Add(".jpg");
picker.FileTypeFilter.Add(".jpeg");
picker.FileTypeFilter.Add(".png");
Windows.Storage.StorageFile file = await picker.PickSingleFileAsync();
// 检测文件
if (file == null)
{
Frame.GoBack();
return;
}

Action<byte[]> action = imageBytes =>
{
Console.WriteLine("==== 以图搜源 ====");
string image = Imgur.Upload(imageBytes, localSettings.Values["ImgurAPI"] as string);
List<Result> results = new SauceNao.SauceNao(localSettings.Values["SauceNAOAPI"] as string).Request(image, null);
// 这里是调试输出查询结果的内容..
//results.RemoveAll(result => !result.HasRecognizableSauce());
//foreach (Result result in results)
//{
// System.Diagnostics.Debug.WriteLine(result.ToString() + "\n");
//}
System.Diagnostics.Debug.WriteLine("Pixiv ID = " + results[0].Response.SauceId.ToString());
Frame.Navigate(typeof(IllustDetailPage), results[0].Response.SauceId);
};
action.Invoke(await StorageFileExt.AsByteArray(file));
//
ImgurNaoAPI imgurNaoApi = new ImgurNaoAPI(SAUCENAO_API_KEY, IMGUR_API_KEY);
string image = imgurNaoApi.UpLoad(await StorageFileExt.AsByteArray(file)).GetNamedString("link");
int retPid = (int)imgurNaoApi.DownLoad(image).GetNamedNumber("pixiv_id");
Frame.Navigate(typeof(IllustDetailPage), retPid);
}
private void GoPixivID_QuerySubmitted(AutoSuggestBox sender, AutoSuggestBoxQuerySubmittedEventArgs args)
{
Frame.Navigate(typeof(IllustDetailPage), Convert.ToInt32(asbGTPID.Text));
}

// 使Pixiv ID文本输入框始终保持纯数字
// 这里作用:出现非数字则删除最右侧一个字符
private void asbGTPID_TextChanged(AutoSuggestBox sender, AutoSuggestBoxTextChangedEventArgs args)
{
if (!System.Text.RegularExpressions.Regex.IsMatch(asbGTPID.Text, "^\\d*\\.?\\d*$") && asbGTPID.Text != "")
Expand Down
24 changes: 20 additions & 4 deletions PixivFSUWP/UserDetailPage.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -326,22 +326,38 @@ private async void QuickStar_Click(object sender, RoutedEventArgs e)
i.Title = title;
}
}

// 使用設置中的路徑
private async void QuickSave_Click(object sender, RoutedEventArgs e)
{
ApplicationDataContainer localSettings = ApplicationData.Current.LocalSettings;
if (tapped == null) return;
var i = tapped;
string saveDir = localSettings.Values["DownloadPath"] as string;
if (saveDir == null)
{
await ((Frame.Parent as Grid)?.Parent as MainPage)?.
ShowTip("未设置储存目录");
Frame.Navigate(typeof(SettingsPage));
return;
}
var res = await new PixivAppAPI(Data.OverAll.GlobalBaseAPI).IllustDetail(i.ItemId.ToString());
var illust = Data.IllustDetail.FromJsonValue(res);
string[] FileUriToNameArray = illust.OriginalUrls[0].Split('/');
string fileName = FileUriToNameArray[FileUriToNameArray.Length - 1];
StorageFolder storageFolder = await StorageFolder.GetFolderFromPathAsync(saveDir);
var file = await storageFolder.CreateFileAsync(fileName, CreationCollisionOption.GenerateUniqueName);
/*
FileSavePicker picker = new FileSavePicker();
picker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
picker.FileTypeChoices.Add(GetResourceString("ImageFilePlain"), new List<string>() { ".png" });
picker.SuggestedFileName = i.Title;
var file = await picker.PickSaveFileAsync();
//*/
if (file != null)
{
CachedFileManager.DeferUpdates(file);
var res = await new PixivAppAPI(Data.OverAll.GlobalBaseAPI)
.IllustDetail(i.ItemId.ToString());
var illust = Data.IllustDetail.FromJsonValue(res);
System.Diagnostics.Debug.WriteLine("Download From = " + illust.OriginalUrls[0]);
System.Diagnostics.Debug.WriteLine("Download To = " + file.Path);
using (var imgstream = await Data.OverAll.DownloadImage(illust.OriginalUrls[0]))
{
using (var filestream = await file.OpenAsync(FileAccessMode.ReadWrite))
Expand Down
4 changes: 3 additions & 1 deletion UpdataLog.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,6 @@
>*|資源添加|使用MAT工具添加字符串
>|||我云寫代碼成功了!可把我牛逼坏了(插会腰)
>!|修复字符串|刚刚好像没推送出去..重推
>-|删除SauceNAO API|将SauceNAO相关API移至项目PixivCS
>-|删除SauceNAO API|将SauceNAO相关API移至项目PixivCS
>!|修订|根据PixivCS修改代码
>*|快速保存|将文件快速保存至设定的目录

0 comments on commit 79bf9f1

Please sign in to comment.