| 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 |