Skip to content

Commit

Permalink
fix bugs
Browse files Browse the repository at this point in the history
  • Loading branch information
DawnFz committed Jul 16, 2022
1 parent d1b3afe commit 482aae3
Show file tree
Hide file tree
Showing 8 changed files with 320 additions and 24 deletions.
2 changes: 1 addition & 1 deletion GenShin_Launcher_Plus/GenShin_Launcher_Plus.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<TargetFramework>net6.0-windows</TargetFramework>
<Nullable>enable</Nullable>
<UseWPF>true</UseWPF>
<Version>1.4.9.5</Version>
<Version>1.5.0.0</Version>
<StartupObject>GenShin_Launcher_Plus.App</StartupObject>
<ApplicationIcon>ICON.ico</ApplicationIcon>
<IsPublishable>True</IsPublishable>
Expand Down
32 changes: 31 additions & 1 deletion GenShin_Launcher_Plus/Models/DataModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ public string MainWidth
get
{
_MainWidth = parser.GetSetting("setup", "MainWidth");
if(_MainWidth ==string.Empty|| _MainWidth==null)
if (_MainWidth == string.Empty || _MainWidth == null)
{
return "1280";
}
Expand Down Expand Up @@ -177,6 +177,21 @@ public string SwitchUser
}
}

private string _ImagePid;
public string ImagePid
{
get
{
_ImagePid = parser.GetSetting("setup", "ImagePid", 0);
return _ImagePid;
}
set
{
_ImagePid = value;
parser.AddSetting("setup", "ImagePid", _ImagePid);
}
}

private bool _IsPopup;
public bool IsPopup
{
Expand Down Expand Up @@ -208,6 +223,21 @@ public bool IsWebBg
}
}

private bool _IsLocalDailyImage;
public bool IsLocalDailyImage
{
get
{
_IsLocalDailyImage = Convert.ToBoolean(parser.GetSetting("setup", "IsLocalDailyImage", 2));
return _IsLocalDailyImage;
}
set
{
_IsLocalDailyImage = value;
parser.AddSetting("setup", "IsLocalDailyImage", Convert.ToString(_IsLocalDailyImage));
}
}

private ushort _FullSize;
public ushort FullSize
{
Expand Down
12 changes: 2 additions & 10 deletions GenShin_Launcher_Plus/Service/GameConvertService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,10 @@ public class GameConvertService : IGameConvertService
"GenshinImpact_Data/Native/UserAssembly.dll",
"GenshinImpact_Data/Native/UserAssembly.exp",
"GenshinImpact_Data/Native/UserAssembly.lib",
//2.6新加部分
//2.8修改部分
"GenshinImpact_Data/Plugins/ZFProxyWeb.dll",
"GenshinImpact_Data/Plugins/ZFEmbedWeb.dll",
"GenshinImpact_Data/Plugins/zf_cef.dll",
"GenshinImpact_Data/Plugins/widevinecdmadapter.dll",
"GenshinImpact_Data/Plugins/sqlite3.dll",
"GenshinImpact_Data/Plugins/Rewired_DirectInput.dll",
"GenshinImpact_Data/Plugins/metakeeper.dll",
"GenshinImpact_Data/Plugins/libUbiCustomEvent.dll",
Expand All @@ -39,7 +37,6 @@ public class GameConvertService : IGameConvertService
"GenshinImpact_Data/Plugins/cri_mana_vpx.dll",
"GenshinImpact_Data/Plugins/cri_vip_unity_pc.dll",
"GenshinImpact_Data/Plugins/cri_ware_unity.dll",
"GenshinImpact_Data/Plugins/d3dcompiler_43.dll",
"GenshinImpact_Data/Plugins/d3dcompiler_47.dll",
"GenshinImpact_Data/Plugins/hdiffz.dll",
"GenshinImpact_Data/Plugins/hpatchz.dll",
Expand All @@ -51,7 +48,6 @@ public class GameConvertService : IGameConvertService
"GenshinImpact_Data/Plugins/UnityNativeChromaSDK3.dll",
"GenshinImpact_Data/Plugins/xlua.dll",
"GenshinImpact_Data/StreamingAssets/20527480.blk",
//2.6新加部分
"mhyprot3.Sys",
"mhyprot2.Sys",
//
Expand All @@ -72,12 +68,10 @@ public class GameConvertService : IGameConvertService
"YuanShen_Data/Native/UserAssembly.dll",
"YuanShen_Data/Native/UserAssembly.exp",
"YuanShen_Data/Native/UserAssembly.lib",
//2.6新加部分
//2.8修改部分
"YuanShen_Data/Plugins/ZFProxyWeb.dll",
"YuanShen_Data/Plugins/ZFEmbedWeb.dll",
"YuanShen_Data/Plugins/zf_cef.dll",
"YuanShen_Data/Plugins/widevinecdmadapter.dll",
"YuanShen_Data/Plugins/sqlite3.dll",
"YuanShen_Data/Plugins/Rewired_DirectInput.dll",
"YuanShen_Data/Plugins/metakeeper.dll",
"YuanShen_Data/Plugins/libUbiCustomEvent.dll",
Expand All @@ -88,7 +82,6 @@ public class GameConvertService : IGameConvertService
"YuanShen_Data/Plugins/cri_mana_vpx.dll",
"YuanShen_Data/Plugins/cri_vip_unity_pc.dll",
"YuanShen_Data/Plugins/cri_ware_unity.dll",
"YuanShen_Data/Plugins/d3dcompiler_43.dll",
"YuanShen_Data/Plugins/d3dcompiler_47.dll",
"YuanShen_Data/Plugins/hdiffz.dll",
"YuanShen_Data/Plugins/hpatchz.dll",
Expand All @@ -100,7 +93,6 @@ public class GameConvertService : IGameConvertService
"YuanShen_Data/Plugins/UnityNativeChromaSDK3.dll",
"YuanShen_Data/Plugins/xlua.dll",
"YuanShen_Data/StreamingAssets/20527480.blk",
//2.6新加部分
"mhyprot3.Sys",
"mhyprot2.Sys",
//
Expand Down
10 changes: 10 additions & 0 deletions GenShin_Launcher_Plus/Service/IService/ISettingService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,12 @@ public interface ISettingService
/// <param name="vm"></param>
public void RemoveDisplaySizeToList(SettingsPageViewModel vm);

/// <summary>
/// 添加每日一图Pid到本地并序列化到Json文件中
/// </summary>
/// <returns></returns>
bool SetDailyImageDataToJson(SettingsPageViewModel vm);

/// <summary>
/// 创建分辨率列表
/// </summary>
Expand All @@ -45,6 +51,10 @@ public interface ISettingService
/// <returns></returns>
List<GamePortListModel> CreateGamePortList();

/// <summary>
/// 从本地Json文件中反序列化每日一图数据
/// </summary>
List<DailyImageArray> ReadDailyImageSourceFromJson();

}
}
74 changes: 74 additions & 0 deletions GenShin_Launcher_Plus/Service/MainService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,80 @@ public async void MainBackgroundLoad(MainWindowViewModel vm)
}
}
}
/* else if(App.Current.DataModel.IsLocalDailyImage)
{
vm.Background.Stretch = Stretch.UniformToFill;
var uri = new Uri("pack://application:,,,/Images/MainBackground.jpg", UriKind.Absolute);
var file = Path.Combine(AppContext.BaseDirectory, "Config/Wallpaper.jpg");
if (File.Exists(file))
{
uri = new Uri(file);
using var fs = File.OpenRead(file);
var bitmap = new BitmapImage();
bitmap.BeginInit();
bitmap.CacheOption = BitmapCacheOption.OnLoad;
bitmap.StreamSource = fs;
bitmap.EndInit();
vm.Background.ImageSource = bitmap;
}
else
{
vm.Background.ImageSource = new BitmapImage(uri);
}
string imageJson;
DailyImageModel dailyImage;
if (File.Exists(@"Config/DailyImagePids.json"))
{
imageJson = File.ReadAllText(@"Config/DailyImagePids.json");
dailyImage = JsonConvert.DeserializeObject<DailyImageModel>(imageJson);
if (dailyImage == null)
{
MessageBox.Show("DailyImage Json returns error: object is null");
App.Current.IsLoadingBackground = false;
return;
}
}
else
{
MessageBox.Show("DailyImage Json file not found");
App.Current.IsLoadingBackground = false;
return;
}
int year = DateTime.Now.Year;
int month = DateTime.Now.Month;
int day = DateTime.Now.Day;
string imageDate = $"{year}{month}{day}";
int count = dailyImage.ImageInfo.FindIndex(t => t.ImageDate == imageDate);
if (count == -1) count = 0;
if (dailyImage.ImageInfo[count].ImageDate != App.Current.DataModel.ImageDate || !File.Exists(file))
{
try
{
string url = $"https://pixiv.re/{dailyImage.ImageInfo[count].ImagePid}.jpg";
var client = new HttpClient(new HttpClientHandler { AutomaticDecompression = System.Net.DecompressionMethods.All });
var bytes = await client.GetByteArrayAsync(url);
var ms = new MemoryStream(bytes);
var newBitmap = new BitmapImage();
newBitmap.BeginInit();
newBitmap.CacheOption = BitmapCacheOption.OnLoad;
newBitmap.StreamSource = ms;
newBitmap.EndInit();
vm.Background.ImageSource = newBitmap;
await File.WriteAllBytesAsync(file, bytes);
App.Current.DataModel.ImageDate = dailyImage.ImageInfo[count].ImageDate;
}
catch (Exception ex)
{
App.Current.IsLoadingBackground = false;
MessageBox.Show($"PID:{dailyImage.ImageInfo[count].ImagePid}\r\n{ex.Message}");
}
}
}*/
else
{
Uri uri = new("pack://application:,,,/Images/MainBackground.jpg", UriKind.Absolute);
Expand Down
66 changes: 64 additions & 2 deletions GenShin_Launcher_Plus/Service/SettingService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ public void SetDisplaySelectedValue(string sizeName, SettingsPageViewModel vm)
public void SaveDisplaySizeToList(SettingsPageViewModel vm, string Width, string Height)
{
List<DisplaySizeListModel> allList;
if (vm.DisplaySizeLists.Count==1&&vm.DisplaySizeLists[0].IsNull) { allList = new List<DisplaySizeListModel>(); }
if (vm.DisplaySizeLists.Count == 1 && vm.DisplaySizeLists[0].IsNull) { allList = new List<DisplaySizeListModel>(); }
else { allList = new(vm.DisplaySizeLists); }
foreach (DisplaySizeListModel dsm in allList)
{ if ($"{Width} x {Height}" == dsm.SizeName) { return; } }
Expand Down Expand Up @@ -149,7 +149,7 @@ public void RemoveDisplaySizeToList(SettingsPageViewModel vm)
allList.Remove(vm.DisplaySizeLists[vm.DisPlaySizeIndex]);
string newJson = JsonConvert.SerializeObject(allList);
File.WriteAllText(@"Config/DisplaySize.json", newJson);
if (allList.Count==0)
if (allList.Count == 0)
{
allList = new List<DisplaySizeListModel>()
{
Expand All @@ -175,5 +175,67 @@ private int GetDivisor(int width, int height)
{ return height; }
return GetDivisor(height, width % height);
}


/// <summary>
/// 反序列化Json获得DailyImageSource
/// </summary>
/// <returns></returns>
public List<DailyImageArray> ReadDailyImageSourceFromJson()
{
if (File.Exists(@"Config/DailyImagePids.json"))
{
string json = File.ReadAllText(@"Config/DailyImagePids.json");
if (json == "[]")
return null;
List<DailyImageArray> list = JsonConvert.DeserializeObject<List<DailyImageArray>>(json);
return list;
}
else
{
return null;
}
}

/// <summary>
/// 添加用户设定的Pid序号到本地文件(序列化)
/// </summary>
/// <returns></returns>
public bool SetDailyImageDataToJson(SettingsPageViewModel vm)
{
List<DailyImageArray> allList;
if (vm.DailyImageSource.Count == 1 &&
vm.DailyImageSource[0].ImagePid == "无已保存的Pid数据")
{
allList = new List<DailyImageArray>();
}
else
{
allList = new(vm.DailyImageSource);
}

foreach (DailyImageArray item in allList)
{
if(item.ImagePid == vm.InputPid)
{
return false;
}
}

int year = DateTime.Now.Year;
int month = DateTime.Now.Month;
int day = DateTime.Now.Day;

DailyImageArray list = new()
{
ImagePid = vm.InputPid,
ImageDate = $"{year}{month}{day}"
};
allList.Add(list);
string newJson = JsonConvert.SerializeObject(allList);
File.WriteAllText(@"Config/DailyImagePids.json", newJson);
vm.DailyImageSource = allList;
return true;
}
}
}
Loading

0 comments on commit 482aae3

Please sign in to comment.