Exemplo n.º 1
0
        /// <summary>
        /// 随机获取笑话
        /// </summary>
        /// <returns>随机笑话数据集合</returns>
        public JuHeResponse <JokesData> RandomJokes()
        {
            string url = string.Format("http://v.juhe.cn/joke/randJoke.php?key={0}", JuHeOptions.AppKey);
            JuHeResponse <JokesData> jokesDataResult = SimulateRequest.HttpGet <JuHeResponse <JokesData> >(url);

            return(jokesDataResult);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 查找最新笑话数据
        /// </summary>
        /// <param name="pageIndex">当前页数,默认1</param>
        /// <param name="pageSize">每次返回条数,默认1,最大20</param>
        /// <returns>最新笑话数据集合</returns>
        public JuHeResponse <JokesData> SearchNewestJokes(int pageIndex = 1, int pageSize = 20)
        {
            string url = string.Format("http://v.juhe.cn/joke/content/text.php?key={0}&page={1}&pagesize={2}",
                                       JuHeOptions.AppKey, pageIndex, pageSize);
            JuHeResponse <JokesData> jokesDataResult = SimulateRequest.HttpGet <JuHeResponse <JokesData> >(url);

            return(jokesDataResult);
        }
        /// <summary>
        /// 定时任务执行的方法
        /// </summary>
        /// <param name="console">控制台输出</param>
        public override void ExecMethod(RichTextConsole console)
        {
            console.Info($"执行{TimerName}定时任务开始...", isWriteLog: false);
            totalSearch++;
            if (totalSearch > 50)//总共查找次数达到50重新从第一页开始
            {
                totalSearch = 1;
                pageIndex   = 1;
            }
            JuHeResponse <JokesData> jokeResult = jokeProvider.SearchNewestJokes(pageIndex);

            if (jokeResult.error_code == 0)
            {
                List <JokeInfo>    jokeList    = jokeResult.result.data;
                List <JokeInfoDto> jokeDtoList = jokeList.Select(joke => new JokeInfoDto
                {
                    Id         = joke.hashId,
                    Content    = joke.content,
                    CreateTime = TimeHelper.GetDateTime(joke.unixtime),
                    UpdateTime = joke.updatetime
                }).ToList();
                int saveRow = jokeInfoManage.SaveRangeJokes(jokeDtoList);
                if (saveRow > 0)
                {
                    console.Info($"当前页码:{pageIndex},保存最新笑话数据成功,共保存{saveRow}条记录", isWriteLog: false);
                    if (pageIndex > 1)
                    {
                        pageIndex++;
                    }
                }
                else
                {
                    console.Warn($"当前页码:{pageIndex},保存最新笑话数据0条,可能远程没有更新笑话", isWriteLog: false);
                    nonDataIndex++;
                    if (nonDataIndex > 2)
                    {
                        pageIndex    = pageIndex * 2;
                        nonDataIndex = 0;//快速双倍翻页后,累计没有保存到数据的次数清0
                    }
                    else
                    {
                        pageIndex++;
                    }
                }
            }
            else
            {
                console.Error($"定时获取最新笑话数据储存:error_code ={jokeResult.error_code},reason ={jokeResult.reason}");
            }
            console.Info($"执行{TimerName}定时任务结束", isWriteLog: false);
        }
Exemplo n.º 4
0
        /// <summary>
        /// 查找指定时间前发布的笑话数据
        /// </summary>
        /// <param name="splitTime">指定分隔时间</param>
        /// <param name="timeFilter">数据排列方式,默认指定时间之后</param>
        /// <param name="pageIndex">当前页数,默认1</param>
        /// <param name="pageSize">每次返回条数,默认1,最大20</param>
        /// <returns>指定时间前发布的笑话数据集合</returns>
        public JuHeResponse <JokesData> SearchTimeJokes(DateTime splitTime, JuHeTimeFilter timeFilter = JuHeTimeFilter.After, int pageIndex = 1, int pageSize = 20)
        {
            string sort = "asc";

            if (timeFilter == JuHeTimeFilter.Before)//聚合的排序与我们的习惯相反
            {
                sort = "desc";
            }
            long   time = TimeHelper.GetTime(splitTime);
            string url  = string.Format("http://v.juhe.cn/joke/content/list.php?key={0}&page={1}&pagesize={2}&sort={3}&time={4}",
                                        JuHeOptions.AppKey, pageIndex, pageSize, sort, time);
            JuHeResponse <JokesData> jokesDataResult = SimulateRequest.HttpGet <JuHeResponse <JokesData> >(url);

            return(jokesDataResult);
        }