コード例 #1
0
ファイル: TaskRunner.cs プロジェクト: ProximaB/WebAdmin
        public async Task Run(string command)
        {
            Console.WriteLine("command is :" + command);
            try
            {
                switch (command)
                {
                case "bingnews":
                    var             task         = new BingNewsTask();
                    List <BingNews> bingNewsList = await task.GetNews("微软");

                    Console.WriteLine(bingNewsList.Count);
                    foreach (BingNews bingNews in bingNewsList)
                    {
                        await Echo(bingNews.Title);
                    }
                    List <BingNews> bingNewsList1 = await task.GetNews("科技");

                    Console.WriteLine(bingNewsList.Count);
                    foreach (BingNews bingNews in bingNewsList1)
                    {
                        await Echo(bingNews.Title);
                    }
                    await Echo("Done");

                    break;

                case "c9article":
                    var task1 = new Channel9Task();
                    //获取最近5页articles
                    for (int i = 5; i >= 1; i--)
                    {
                        List <C9Articles> articles = await task1.SaveArticles(i);

                        if (articles == null)
                        {
                            continue;
                        }
                        foreach (C9Articles c9Article in articles)
                        {
                            await Echo("article:" + c9Article?.Title);
                        }
                    }
                    // 更新视频页内容
                    var videos = await task1.SaveVideosAsync(0, 60);

                    if (videos != null)
                    {
                        foreach (C9Videos video in videos)
                        {
                            await Echo("video:" + video?.Title);
                        }
                    }
                    await Echo("Done");

                    break;

                case "mvavideos":
                    var task2           = new MvaTask();
                    List <MvaVideos> re = await task2.SaveMvaVideo();

                    foreach (MvaVideos video in re)
                    {
                        var newDetails = task2.GetMvaDetailAsync(video).Result;
                        await Echo("video:" + video?.Title);

                        if (newDetails?.Count > 0)
                        {
                            await Echo("\t包括子视频:" + newDetails?.Count + "个");
                        }
                        else
                        {
                            await Echo("\t没有子视频或获取子视频失败");
                        }
                    }
                    await Echo("Done");

                    break;

                case "mvadetails":
                    var task3 = new MvaTask();
                    List <MvaVideos> videoList = await task3.UpdateRecentDetailAsync();

                    foreach (MvaVideos video in videoList)
                    {
                        await Echo("video:" + video?.Title);
                    }
                    await Echo("Done");

                    break;

                case "devblogs":
                    var task4   = new DevBlogsTask();
                    var rssnews = task4.GetNewsAsync().Result;
                    foreach (var news in rssnews)
                    {
                        await Echo("devblog:" + news?.Title);
                    }
                    await Echo("Done");

                    break;

                default:
                    break;
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: ProximaB/WebAdmin
        /// <summary>
        /// 自动执行任务
        /// </summary>
        public static void StartAutoTask()
        {
            while (true)
            {
                int hour = DateTime.Now.ToLocalTime().Hour;
                if (hour != 7 && hour != 12 && hour != 18)
                {
                    Thread.Sleep(60 * 60 * 1000);
                    continue;
                }
                ;
                string fileName = "./AutoTask/Task-" + DateTime.Now.ToLocalTime().Date.ToString("yyyy-MM-dd") + ".txt";

                try
                {
                    Console.WriteLine(hour + ": Task start ");
                    Log.Write(fileName, $"{hour}点 采集内容:");

                    Log.Write(fileName, "rssNews Start!");
                    var task3   = new DevBlogsTask();
                    var rssnews = task3.GetNewsAsync().Result;
                    foreach (var news in rssnews)
                    {
                        Log.Write(fileName, "\t" + news?.Title);
                    }
                    Log.Write(fileName, "rssNews End!\n");

                    Log.Write(fileName, "BingNewsTask Start!");
                    var task         = new BingNewsTask();
                    var bingNewsList = task.GetNews("微软").Result;

                    foreach (BingNews bingNews in bingNewsList)
                    {
                        Log.Write(fileName, "\t" + bingNews?.Title);
                    }
                    var bingNewsList1 = task.GetNews("科技").Result;

                    foreach (BingNews bingNews in bingNewsList1)
                    {
                        Log.Write(fileName, "\t" + bingNews?.Title);
                    }
                    Log.Write(fileName, "BingNewsTask End!\n");

                    //TODO: 处理登录
                    Log.Write(fileName, "Channel9Task Start!");
                    var task1 = new Channel9Task();
                    //获取最近5页articles
                    for (int i = 5; i >= 1; i--)
                    {
                        var articles = task1.SaveArticles(i).Result;
                        if (articles == null)
                        {
                            continue;
                        }
                        foreach (C9Articles c9Article in articles)
                        {
                            Log.Write(fileName, "\t" + c9Article?.Title);
                        }
                    }
                    // 更新视频页内容
                    var videos = task1.SaveVideosAsync(0, 60).Result;
                    if (videos != null)
                    {
                        foreach (C9Videos video in videos)
                        {
                            Log.Write(fileName, "\t" + video?.Title);
                        }
                    }
                    Log.Write(fileName, "Channel9Task End!\n");

                    Log.Write(fileName, "MVATask Start!");
                    var task2 = new MvaTask();
                    var re    = task2.SaveMvaVideo().Result;
                    //更新视频 详细内容
                    foreach (MvaVideos video in re)
                    {
                        var newDetails = task2.GetMvaDetailAsync(video).Result;
                        Log.Write(fileName, "\t" + video?.Title);
                        Log.Write(fileName, "\t 包括子视频:" + newDetails.Count + "个");
                    }
                    Log.Write(fileName, "MVATask End!\n");
                    Log.Write(fileName, "=========Finished==========\n");
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Source + e.Message + e.InnerException);
                    Log.Write(fileName, e.Source + e.Message);
                }
                Thread.Sleep(60 * 60 * 1000);
            }
        }