Esempio n. 1
0
    def createright(self):
        """构建右侧最近三小时房源信息面板"""

        self.rightframe = Frame(self)

        self.five_hours_sources = StringVar()
        self.newestinfolabel = LabelFrame(self.rightframe,
                                          text='最近五小时房源',
                                          borderwidth=5)
        self.newestinfolabel.config(width=400, height=650)
        self.newestinfolabel.pack_propagate(False)
        self.newestinfolabel.config(labelanchor=NW)
        self.newestinfolabel.grid(row=1, column=0, rowspan=2)
        self._newest_data = newest_sources_within_five_hours = getlastthreehoursinfo(
        )
        for index, i in enumerate(newest_sources_within_five_hours):
            # 索引为1的发送,这里只是简单测试
            # if index == 1:
            #     self.email_server.sendmail(self.email_sender.from_addr, self.all_sendaddr, self.email_sender.create_html(i).as_string())  # 这里可能会因为又见一次发送过多程序终止(MI:DMC)
            label = HyperLinkLabel(self.newestinfolabel,
                                   text=i.description,
                                   link=get_domain(i)[0])
            self.labels.append(label)
            label.pack()
        self.rightframe.grid(row=0, column=0, columnspan=2)
        def __init__(self, *args, **kwargs):
            root = Tk.__init__(self, *args, **kwargs)

            self.frame = RefreshableLabelFrame(root)
            self.frame.pack()
            labels = []
            newest_sources_within_five_hours = getnewestinfo()
            for index, i in enumerate(newest_sources_within_five_hours):
                label = HyperLinkLabel(self.frame.interior,
                                       text=i.description,
                                       link=get_domain(i)[0])
                labels.append(label)
                labels[-1].pack()
Esempio n. 3
0
    def create_html(self, content, *args):
        """
        网页形式

        msg:邮件主题
        content:要发送的邮件内容
        """
        message = MIMEMultipart(
            "related"
        )  # 作为消息的一个大容器,这个MIMEMultipart中第一个attach的MIMEMultipart必须为alternative类型的
        message['From'] = Header('Hello <%s>' % (self.from_addr), 'gb2312')
        message['To'] = Header('To <%s>' % (self.to_addr), 'gb2312')
        message['Subject'] = Header('来自%s最新房源消息' % (get_domain(content)[1]),
                                    'utf-8')
        message.preamble = 'This is preamble of multipart message'

        # 讲plain(纯文本)、HTML格式的消息放到_subtype为"alternative"类型的消息体中
        # 这样消息代理就知道要展示那些内容了
        message_alternative = MIMEMultipart('alternative')
        message.attach(message_alternative)
        html_message = '''<html>
                            <body>
                                <h1>最新房源</h1>
                                <div><a href="{link}">{description}(点击查看)</a><p>价格: {price}万</p></div>
                                <div><p style="color:red">位置:{location}</p><p>更新时间: {last_update}</p></div>
                            </body>
                        </html>'''.format(link=get_domain(content)[0],
                                          description=content.description,
                                          price=content.price,
                                          location=content.location,
                                          last_update=content.sourcetime)
        print(get_domain(content)[0])
        message_html = MIMEText(html_message, 'html', 'utf-8')

        message_alternative.attach(message_html)
        return message
Esempio n. 4
0
 def destroy_and_repaint(self):
     result = self.check_refreshdata()
     if result:
         for label in self.newestinfolabel.winfo_children():
             label.destroy()
         self.labels.clear()
         newest_sources_within_five_hours = getlastthreehoursinfo()
         for index, i in enumerate(newest_sources_within_five_hours):
             # 索引为1的发送,这里只是简单测试
             # if index == 1:
             #     self.email_server.sendmail(self.email_sender.from_addr, self.all_sendaddr, self.email_sender.create_html(i).as_string())  # 这里可能会因为又见一次发送过多程序终止(MI:DMC)
             label = HyperLinkLabel(self.newestinfolabel,
                                    text=i.description,
                                    link=get_domain(i)[0])
             self.labels.append(label)
             label.pack()