Passed
Push — master ( 86f308...221446 )
by Leon
02:11
created

api_news.News.parse_data()   B

Complexity

Conditions 8

Size

Total Lines 17
Code Lines 16

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 8
eloc 16
nop 3
dl 0
loc 17
rs 7.3333
c 0
b 0
f 0
1
# -*- coding: utf-8 -*-
2
"""
3
cron: 40 7 * * *
4
new Env('每日新闻');
5
"""
6
7
import re
8
import traceback
9
10
import requests
11
12
from notify_mtr import send
13
from utils import get_data
14
15
16
class News:
17
    def parse_data(self, data: dict, obj_name: str) -> str:
18
        if data.get(obj_name) != {}:
19
            msg = ""
20
            need_obj = data.get(obj_name)
21
            items = need_obj.items()
22
            for key, value in items:
23
                if key == "content":
24
                    for i in value:
25
                        msg += str(i)
26
                    msg += "\n"
27
                elif (
28
                    type(value) is not bool
29
                    and len(value) != 0
30
                    and not bool(re.search("[a-z]", str(value)))
31
                ):
32
                    msg += str(value) + "\n"
33
            return msg
34
35
    def main(self):
36
        msg = ""
37
        try:
38
            res = requests.get(url=f"https://news.topurl.cn/api").json()
39
            if res.get("code") == 200:
40
                data = res.get("data", {})
41
                if data.get("newsList") != []:
42
                    msg += "📮 每日新闻 📮\n"
43
                    no = 1
44
                    for news in data.get("newsList", []):
45
                        msg += f'{str(no).zfill(2)}. <a href="{news.get("url")}>{news.get("title")}</a>\n'
46
                        no += 1
47
                if data.get("historyList") != []:
48
                    msg += "\n🎬 历史上的今天 🎬\n"
49
                    for history in data.get("historyList", []):
50
                        msg += f'{history.get("event", "")}\n'
51
                msg += "\n🧩 天天成语 🧩\n" + self.parse_data(data, "phrase")
52
                msg += "\n🎻 慧语香风 🎻\n" + self.parse_data(data, "sentence")
53
                msg += "\n🎑 诗歌天地 🎑\n" + self.parse_data(data, "poem")
54
        except Exception:
55
            msg += f"每日新闻: 异常 {traceback.format_exc()}"
56
        return msg
57
58
59
if __name__ == "__main__":
60
    data = get_data()
61
    news = data.get("NEWS")
62
    if news:
63
        res = News().main()
64
        send("每日新闻", res)
65