Total Complexity | 15 |
Total Lines | 63 |
Duplicated Lines | 0 % |
Changes | 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 | @staticmethod |
||
18 | def parse_data(data, topic): |
||
19 | if not data.get(topic): |
||
20 | return "" |
||
21 | msg = "" |
||
22 | for key, value in data.get(topic).items(): |
||
23 | if key == "content": |
||
24 | for i in value: |
||
25 | msg += str(i) |
||
26 | msg += "\n" |
||
27 | elif ( |
||
28 | value |
||
29 | and type(value) is not bool |
||
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("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 | for no, news_ in enumerate(data.get("newsList"), start=1): |
||
44 | msg += f'{str(no).zfill(2)}. <a href="{news_.get("url")}">{news_.get("title")}</a>\n' |
||
45 | if data.get("historyList"): |
||
46 | msg += "\n🎬 历史上的今天 🎬\n" |
||
47 | for history in data.get("historyList"): |
||
48 | msg += f'{history.get("event", "")}\n' |
||
49 | msg += "\n🧩 天天成语 🧩\n" + self.parse_data(data, "phrase") |
||
50 | msg += "\n🎻 慧语香风 🎻\n" + self.parse_data(data, "sentence") |
||
51 | msg += "\n🎑 诗歌天地 🎑\n" + self.parse_data(data, "poem") |
||
52 | except Exception: |
||
53 | msg += f"每日新闻: 异常 {traceback.format_exc()}" |
||
54 | return msg |
||
55 | |||
56 | |||
57 | if __name__ == "__main__": |
||
58 | _data = get_data() |
||
59 | news = _data.get("NEWS") |
||
60 | if news: |
||
61 | result = News().main() |
||
62 | send("每日新闻", result) |
||
63 |