欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java實(shí)現(xiàn)將每日新聞添加到自己博客中

 更新時(shí)間:2022年12月30日 14:51:37   作者:穆雄雄  
這篇文章主要為大家詳細(xì)介紹了Java如何實(shí)現(xiàn)將每日新聞添加到自己博客中并發(fā)送到微信群中,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下

前言

最近新整了個(gè)博客網(wǎng)站,同事在gitee上找的,還不錯(cuò),gitee上的地址在這里:拾壹博客管理系統(tǒng)。

別人的業(yè)務(wù),再好也有不滿足自己的地方,所以我就拉下來(lái)源碼看了看,改了些bug,其中我覺(jué)得這個(gè)需求是有人需要用到的——每日新聞推送到微信群中。

效果圖如下:

每天定時(shí)凌晨5.20推送。

why

在說(shuō)功能之前先說(shuō)說(shuō)為什么要做這么件事兒,之前我是從比的微信群中將每日新聞復(fù)制到自己的群的,因?yàn)槿盒枰?dòng)互動(dòng),不能成為一個(gè)死群,所以我就每天手動(dòng)發(fā),偶爾有幾次不發(fā),就有群友問(wèn)我,為啥不發(fā)了呢,他們覺(jué)的這個(gè)東西還挺好(雖然發(fā)了之后也沒(méi)有人回復(fù),大家可能只是在默默的觀察關(guān)注吧)

于是后面我就每天都發(fā),但是吧,手動(dòng)發(fā),有時(shí)候記得,有時(shí)候忘記,并且別的群不發(fā)的話,我就沒(méi)地方找去,還得自己去網(wǎng)上找,所以就想著自己寫一個(gè)吧。

思路

網(wǎng)上有專門的這種接口,用來(lái)拿到每日新聞簡(jiǎn)要

將新聞?wù)沓梢黄恼?,發(fā)送到博客中

利用別的途徑,將新聞標(biāo)題(因?yàn)槲⑿虐l(fā)文字會(huì)有字?jǐn)?shù)限制),推送到群中(智能微秘書)

然后按照這個(gè)思路我們?nèi)?shí)現(xiàn)。

代碼實(shí)現(xiàn)

1.首先我們?nèi)ヌ煨袛?shù)據(jù),注冊(cè)一個(gè)賬號(hào),然后找到每日新聞,申請(qǐng)改接口。

注冊(cè)地址:天行數(shù)據(jù),找到接口:

申請(qǐng)下來(lái)之后,去個(gè)人中心,看看自己的key是多少,我們?cè)谡?qǐng)求接口的時(shí)候需要拿著這個(gè)key去。

2. 在java中實(shí)現(xiàn)調(diào)用該接口,拿到數(shù)據(jù)發(fā)布到博客中。

關(guān)鍵代碼如下:

 /**
     * 獲取每日新聞,添加到文章里面
     * @param
     * @return
     */
    @Override
    public ResponseResult getDaysNews() {
        //調(diào)用每日簡(jiǎn)報(bào)的接口
        String body = HttpUtil
                .createGet(DAYS_NEWS_API + "?key=" + TIAN_KEY)
                .execute()
                .body();
       

        JSONObject jsonObjectResult = JSON.parseObject(body);
        Integer code = jsonObjectResult.getInteger("code");
        if(code!=200){
            log.error("請(qǐng)求每日新聞的接口出錯(cuò),出錯(cuò)信息:"+body);
            return ResponseResult.error();
        }
        log.error("請(qǐng)求每日新聞的接口成功:"+body);
        JSONObject resultObject = jsonObjectResult.getJSONObject("result");
        //獲取新聞列表
        JSONArray contentList = resultObject.getJSONArray("list");
        //獲取文章的封面信息
        String strResult = restTemplate.getForObject(IMG_URL_API, String.class);
        JSONObject jsonObject = JSON.parseObject(strResult);
        Object imgUrl = jsonObject.get("imgurl");
        //將新聞列表封裝成markdown文章
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日");
        String todayDate = simpleDateFormat.format(new Date());
        String titleContent = "# "+todayDate+"新聞簡(jiǎn)要<br/>";
        StringBuilder stringBuilder = new StringBuilder(titleContent);
        //發(fā)送到微信群里面的信息
        JSONObject contentObject = new JSONObject();
        contentObject.put("todayDate",todayDate);
        JSONArray array = new JSONArray();

        //遍歷接口返回來(lái)的json數(shù)據(jù)
        contentList.forEach(item->{
            JSONObject arrayObject = new JSONObject();
            JSONObject itemObject = (JSONObject)item;
            stringBuilder.append("??");
            stringBuilder.append(itemObject.getString("mtime"));
            stringBuilder.append("<br/>");
            stringBuilder.append("### ");
            stringBuilder.append("???");
            stringBuilder.append(itemObject.getString("title"));
            stringBuilder.append("<br/>");
            stringBuilder.append("??");
            stringBuilder.append(itemObject.getString("digest"));
            stringBuilder.append("<br/>");
            stringBuilder.append("<br/>");
            stringBuilder.append("---");
            stringBuilder.append("<br/>");
            //標(biāo)題
            arrayObject.put("title",itemObject.getString("title"));
            //內(nèi)容
            arrayObject.put("digest",itemObject.getString("digest"));
            //時(shí)間
            arrayObject.put("mtime",itemObject.getString("mtime"));
            array.add(arrayObject);
        });
        contentObject.put("list",array);
        stringBuilder.append("(本文所有數(shù)據(jù)均來(lái)自天行數(shù)據(jù)api,如有侵權(quán),聯(lián)系即刪~)");
        //將拿到的內(nèi)容放在Markdown中
        String newContent = stringBuilder.toString();
        MutableDataSet options = new MutableDataSet();
        String markdown = FlexmarkHtmlConverter
                .builder(options)
                .build()
                .convert(newContent)
                .replace("lang-java","java");
        //構(gòu)建文章的實(shí)體
        BlogArticle entity = BlogArticle.builder()
                .userId(7L)
                .contentMd(markdown)
                .categoryId(DAYYS_NEWS)
                .isOriginal(YesOrNoEnum.NO.getCode())
                //轉(zhuǎn)載地址
                .originalUrl("https://www.tianapi.com/")
                .isPublish(1)
                .keywords("每日新聞,穆雄雄,新聞簡(jiǎn)報(bào),早安")
                .title(todayDate+"新聞簡(jiǎn)要")
                .avatar(imgUrl.toString())
                .content(newContent)
                .build();
        baseMapper.insert(entity);
        //添加標(biāo)簽
        tagsMapper.saveArticleTags(entity.getId(),new ArrayList<Long>() {{add(63L);}});
        log.info("每日新聞添加到文章成功:"+ JSON.toJSONString(entity));
        contentObject.put("aid",entity.getId());
        //調(diào)用推送到微信的方法
        sendWechat(contentObject);
        return ResponseResult.success("發(fā)送成功");
    }

需要注冊(cè)的是:記得吧DAYS_NEWS_API 和 TIAN_KEY的值換一下,換成你自己的,然后生成的文章如下所示:

到此這篇關(guān)于Java實(shí)現(xiàn)將每日新聞添加到自己博客中的文章就介紹到這了,更多相關(guān)Java添加新聞到博客內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java利用哈夫曼編碼實(shí)現(xiàn)字符串壓縮

    Java利用哈夫曼編碼實(shí)現(xiàn)字符串壓縮

    赫夫曼編碼也翻譯為?哈夫曼編碼(Huffman?Coding),又稱霍夫曼編碼,是一種編碼方式,?屬于一種程序算法。本文將利用哈夫曼樹實(shí)現(xiàn)哈夫曼編碼進(jìn)行字符串壓縮,需要的可以參考一下
    2022-09-09
  • MyBatis查詢?、修改?、刪除操作示例代碼

    MyBatis查詢?、修改?、刪除操作示例代碼

    MyBatis?作為一款靈活的持久層框架,提供了直接編寫?SQL?語(yǔ)句的能力,避免了其他?ORM?框架可能帶來(lái)的性能和功能限制,本文介紹?MyBatis?中如何高效執(zhí)行這三種操作,并通過(guò)代碼示例展示最佳實(shí)踐,感興趣的朋友一起看看吧
    2024-08-08
  • java實(shí)現(xiàn)解析json復(fù)雜數(shù)據(jù)的第三種思路詳解

    java實(shí)現(xiàn)解析json復(fù)雜數(shù)據(jù)的第三種思路詳解

    這篇文章主要為大家信息介紹了java實(shí)現(xiàn)解析json復(fù)雜數(shù)據(jù)的第三種思路,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01
  • Spring?RestTemplate遠(yuǎn)程調(diào)用過(guò)程

    Spring?RestTemplate遠(yuǎn)程調(diào)用過(guò)程

    這篇文章主要介紹了Spring?RestTemplate遠(yuǎn)程調(diào)用過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Java中的setting和getting使用方法

    Java中的setting和getting使用方法

    為了保障數(shù)據(jù)的安全性,通常將數(shù)據(jù)成員定義為private(封裝或私有化),這樣外部代碼就無(wú)法直接訪問(wèn)這些數(shù)據(jù),只能通過(guò)類提供的公共方法來(lái)進(jìn)行訪問(wèn),這種方法主要包括setter和getter方法,以及構(gòu)造方法,setter方法用于給私有屬性賦值
    2024-09-09
  • Java中I/O流讀取數(shù)據(jù)不完整的問(wèn)題解決

    Java中I/O流讀取數(shù)據(jù)不完整的問(wèn)題解決

    本文主要介紹了ava中I/O流讀取數(shù)據(jù)不完整的問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • Java使用Scanner類獲取用戶輸入實(shí)例詳解

    Java使用Scanner類獲取用戶輸入實(shí)例詳解

    在本篇文章里小編給大家整理了關(guān)于Java使用Scanner類獲取用戶輸入實(shí)例內(nèi)容,有興趣的朋友們學(xué)習(xí)下。
    2019-11-11
  • spring boot實(shí)戰(zhàn)之使用JSP的示例

    spring boot實(shí)戰(zhàn)之使用JSP的示例

    本篇文章主要介紹了spring boot實(shí)戰(zhàn)之使用JSP的示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-10-10
  • MyBatis如何使用PageHelper實(shí)現(xiàn)分頁(yè)查詢

    MyBatis如何使用PageHelper實(shí)現(xiàn)分頁(yè)查詢

    這篇文章主要介紹了MyBatis如何使用PageHelper實(shí)現(xiàn)分頁(yè)查詢,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • springboot3請(qǐng)求參數(shù)種類及接口測(cè)試案例小結(jié)

    springboot3請(qǐng)求參數(shù)種類及接口測(cè)試案例小結(jié)

    這篇文章主要介紹了springboot3請(qǐng)求參數(shù)種類及接口測(cè)試案例小結(jié),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-10-10

最新評(píng)論