Example #1
0
class Send:
    def __init__(self):
        self.spider = Spider()
        self.mail = SendMail()

    def get_weather_data(self, city):
        data = get_weather(city)
        if data:
            return data
        data = self.spider.crawl_weather(city)['result']
        update_weather(city, data)
        return data

    def get_star_data(self, star):
        data = get_star_lucky(star)
        if data:
            return data
        data = self.spider.crawl_constellation(star)['showapi_res_body']['day']
        update_star_lucky(star, data)
        return data

    def get_html(self, weather_data, star, star_data):
        weather_html = get_wether_html(weather_data)
        star_html = get_star_html(star, star_data)
        return f"<html>{weather_html + star_html}</html>"

    def run(self):
        for item in SEND_LIST:
            weather_data = self.get_weather_data(item['city'])
            star = item['star']
            star_data = self.get_star_data(item['star_en'])
            html_str = self.get_html(weather_data=weather_data,
                                     star=star,
                                     star_data=star_data)
            self.mail.send_email('天气预报', [item['email']], html_str)