Commit f27afa6f authored by shRabbit's avatar shRabbit
Browse files

恢复到云更新

parent 3151e23d
Loading
Loading
Loading
Loading
+1 −22
Original line number Diff line number Diff line
@@ -4,9 +4,6 @@
        <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
            <section name="CountDownList.MiscSetting" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
        </sectionGroup>
        <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
            <section name="CountDownList.MiscSetting" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
        </sectionGroup>
    </configSections>
    <userSettings>
        <CountDownList.MiscSetting>
@@ -52,24 +49,6 @@
            <setting name="WindowHeight" serializeAs="String">
                <value>500</value>
            </setting>
            <setting name="AutoUpdate" serializeAs="String">
                <value>False</value>
            </setting>
            <setting name="Domain" serializeAs="String">
                <value>lc.shrabbit.com</value>
            </setting>
            <setting name="LogLevel" serializeAs="String">
                <value>2</value>
            </setting>
        </CountDownList.MiscSetting>
    </userSettings>
    <applicationSettings>
        <CountDownList.MiscSetting>
            <setting name="StopSupport" serializeAs="String">
                <value>05/13/2025 21:42:00</value>
            </setting>
        </CountDownList.MiscSetting>
    </applicationSettings>

</configuration>
 No newline at end of file
+0 −1
Original line number Diff line number Diff line
@@ -38,7 +38,6 @@ using System.Windows;
/// </summary>
class AssemblyInformation
{
    public const string UpdateVersion = "1.4.2";
    #region 程序集属性访问器

    /// <summary>

CountDownList/Class/Json.cs

deleted100644 → 0
+0 −51
Original line number Diff line number Diff line
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.Json;
using System.Threading.Tasks;
using System.Windows.Markup;

namespace CountDownList.Class
{
    /// <summary>
    /// 解析json
    /// </summary>
    public class UpdateFileJson:ClassName
    {
        public JsonContent.Rootobject ConvertToClass(string JsonString)
        {
            //JsonContent.Rootobject obj = new();
            var dict = JsonSerializer.Deserialize<JsonContent.Rootobject>(JsonString);

            App.logFile.Info($"反序列化JSON完成", className);
            return dict;
        }
    }

    /// <summary>
    /// Json反序列化内容
    /// </summary>
    public class JsonContent
    {
#pragma warning disable IDE1006, CS8618

        public class Rootobject
        {
            public string latest { get; set; }
            public string source { get; set; }
            public Versionlist[] versionList { get; set; }
        }

        public class Versionlist
        {
            public string version { get; set; }
            public string setupFileName { get; set; }
            public string source { get; set; }
            public string fileName { get; set; }
            public string updateMsg { get; set; }
            public string link { get; set; }
            public string date { get; set; }
        }
    }
#pragma warning disable IDE1006, CS8618
}

CountDownList/Class/UpdateCore.cs

deleted100644 → 0
+0 −136
Original line number Diff line number Diff line
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Net.NetworkInformation;
using System.Text;
using System.Threading.Tasks;

namespace CountDownList.Class
{
    /// <summary>
    /// CountdownList更新
    /// </summary>
    public class UpdateCore:ClassName
    {
        public static string
            Domain = MiscSetting.Default.Domain,
            ConfigJsonName = "cdl_version_list.json";

        public JsonContent.Rootobject? UpdateObj;

        /// <summary>
        /// 检查更新
        /// </summary>
        /// <returns>如果服务器能够连接,返回JSON反序列化内容;否则返回null</returns>
        public async Task<JsonContent.Rootobject>? CheckUpdate()
        {
            App.logFile.Info("开始检查更新", className);

            try
            {
                App.logFile.Info($"HTTP GET: {Domain}/{ConfigJsonName}", className);

                HttpClient client = new HttpClient();
                string responseString = await client.GetStringAsync($"http://{Domain}/{ConfigJsonName}");
                UpdateFileJson fileJson = new();

                App.logFile.Info($"GET OK: {Domain}/{ConfigJsonName}\n{responseString}", className);
                return fileJson.ConvertToClass(responseString);
            }
            catch (Exception ex)
            {
                App.logFile.Error($"{ex.Message}\n{ex.StackTrace}", className);

                try
                {
                    HttpClient client = new HttpClient();
                    string responseString = await client.GetStringAsync($"http://tunnels.shrabbit.com/{ConfigJsonName}");
                    UpdateFileJson fileJson = new();

                    return fileJson.ConvertToClass(responseString);
                }
                catch (Exception exc)
                {
                    App.logFile.Error($"{exc.Message}\n{exc.StackTrace}", className);
                    return null;
                }
            }
        }

        /// <summary>
        /// 检查网络
        /// </summary>
        /// <returns>能够Ping到服务器,返回 true</returns>
        public static bool NetworkTest()
        {
            App.logFile.Info($"正在Ping{MiscSetting.Default.Domain}", "CountDownList.Class.UpdateCore");

            bool returns = true;
            try
            {
                Ping pingSender = new Ping();
                PingOptions options = new PingOptions();

                // Use the default Ttl value which is 128,
                // but change the fragmentation behavior.
                options.DontFragment = true;

                // Create a buffer of 32 bytes of data to be transmitted.
                string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
                byte[] buffer = Encoding.ASCII.GetBytes(data);
                int timeout = 120;
                PingReply reply = pingSender.Send(Domain, timeout, buffer, options);
                if (reply.Status != IPStatus.Success)
                {
                    returns = false;
                }
            }
            catch(Exception ex)
            {
                App.logFile.Error($"Ping失败: {ex.Message}\n{ex.StackTrace}", "CountDownList.Class.UpdateCore");

                returns = false;
            }
            return returns;
        }

        /// <summary>
        /// ping服务器
        /// </summary>
        /// <returns>如果能ping到服务器,返回ping延迟;如果ping失败,返回null</returns>
        public static int? PingServer()
        {
            int? output = null;
            try
            {
                Ping pingSender = new Ping();
                PingOptions options = new PingOptions();

                // Use the default Ttl value which is 128,
                // but change the fragmentation behavior.
                options.DontFragment = true;

                // Create a buffer of 32 bytes of data to be transmitted.
                string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
                byte[] buffer = Encoding.ASCII.GetBytes(data);
                int timeout = 120;
                PingReply reply = pingSender.Send(Domain, timeout, buffer, options);
                if (reply.Status == IPStatus.Success)
                {
                    output = (int?)reply.RoundtripTime;
                    App.logFile.Info($"正在Ping{MiscSetting.Default.Domain},延迟为{reply.RoundtripTime}", "CountDownList.Class.UpdateCore");
                }
            }
            catch (Exception ex)
            {
                App.logFile.Error($"Ping失败: {ex.Message}\n{ex.StackTrace}", "CountDownList.Class.UpdateCore");

                output = null;
            }
            return output;
        }


    }
}
+0 −60
Original line number Diff line number Diff line
<UserControl x:Class="CountDownList.Controls.VersionList"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:local="clr-namespace:CountDownList.Controls"
             mc:Ignorable="d" 
             d:DesignHeight="420" d:DesignWidth="750">
    <Grid>
        <Expander x:Name="exp">
            <Expander.Header>
                CountdownList 1.0.0
            </Expander.Header>
            <Grid>
                <Border Background="#FFEEEEEE" BorderThickness="1,0,1,1" BorderBrush="#FFE0E0E0" CornerRadius="0,0,4,4">
                    <Grid>
                        <Grid.RowDefinitions>
                            <RowDefinition/>
                            <RowDefinition Height="42"/>
                        </Grid.RowDefinitions>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="169*"/>
                            <ColumnDefinition Width="629*"/>
                        </Grid.ColumnDefinitions>

                        <Image RenderOptions.BitmapScalingMode="Fant" Source="/UI/CountDownListLogo.png" HorizontalAlignment="Center" VerticalAlignment="Top"/>

                        <TextBlock x:Name="ver" Grid.Column="1" FontSize="36" Margin="16,16,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" FontWeight="Light">版本 1.0.0</TextBlock>

                        <TextBlock x:Name="date" Grid.Column="1" FontSize="14" Margin="16,33,16,0" HorizontalAlignment="Right" VerticalAlignment="Top">打包日期</TextBlock>

                        <TextBox x:Name="updContent" Grid.Column="1" Margin="0,74,0,0" Grid.RowSpan="1" Background="Transparent" BorderBrush="#00E0E0E0" IsReadOnly="True" VerticalContentAlignment="Top" Padding="16,8,16,8" FontSize="18" TextWrapping="WrapWithOverflow">
                            更新内容更新内容更新内容更新内容更新内容更新内容更新内容更新内容更新内容更新内容更新内容更新内容更新内容更新内容更新内容更新内容
                        </TextBox>

                        <StackPanel Grid.Column="0" Grid.Row="1" HorizontalAlignment="Right" Orientation="Horizontal" Grid.ColumnSpan="2">
                            <Button x:Name="disk" Margin="0,0,7,0" Click="downloadDisk">
                                网盘链接
                            </Button>

                            <Button x:Name="source" Margin="0,0,7,0" Click="downloadSource">
                                下载源代码
                            </Button>

                            <Button x:Name="file" Margin="0,0,7,0" Click="downloadPackage">
                                下载ZIP包
                            </Button>

                            <Button x:Name="setup" Margin="0,0,7,0" Click="downloadSetup">
                                下载安装程序
                            </Button>

                            <TextBlock x:Name="noDownloadText" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="0,0,7,0" Visibility="Collapsed">此版本不提供下载</TextBlock>
                        </StackPanel>
                    </Grid>
                </Border>
            </Grid>
        </Expander>
    </Grid>
</UserControl>
Loading