#!/usr/bin/env python3
# -*- coding:utf-8 -*-
# Author:hhbo
import time
import os
import re
import smtplib
from  email.mime.text import MIMEText

class StatusPV(object):
    def __init__(self):
        self.log_path = '/var/log/nginx'
        self.log_time = time.strftime("%Y-%m-%d")
#        self.bf_name = bf_name
#        self.name = name
#        self.log_name =self.bf_name + '.'+self.name+'_access.log'
        self.log_name = 'access.log'
        self.logfile = os.path.join(self.log_path, self.log_name)
    def get_filesize(self):
        file_size = os.path.getsize(self.logfile)
        f = open(self.logfile, 'r')
        if file_size > 1000000000:
            f.seek(0, 2)
            self.seek= f.tell()/5
        else:
            self.seek=0
        f.close()
    def send_msg(self,dicip):
    #送发方的邮箱
        self.dicip=dicip
        msg_from="********@189.cn"
    #密码,不是邮件的密码,要在自己的邮件里设置
        pwd="Si!0Pw$5j$6Pd!8C"
    #接收方的邮箱
        to="*******@qq.com"
    #邮件的题目
        subject="5min请求ip情况"
    #邮件的内容

        content="<h1>"+"5min请求接口大于2000次的接口信息:"+"<br />"+str(dicip)+"</h1>"
        print(content)
        #构造邮件,按html的方式输出
        msg=MIMEText(content,"html","utf-8")
        msg["Subject"]=subject
                                                                                                          1,1          顶端
                            #print(time.time())
                            #print(time_stamp)
                            # 转换为时间戳
                            # print(time_stamp)
                            if time.time() - time_stamp <= 300:
                                # 观测的时间间隔
                                if jiekou_url in dic.keys():
                                  dic[jiekou_url] += 1
                                else:
                                  dic[jiekou_url] = 1
                            else:
                                pass
                        else:
                            print("log format error")
                    except:
                        pass
                else:
                    pass
            f.close()
            jiekou_numlist=[]
            jiekou_urllist = []
            jiekou_num=dic[jiekou_url]
            for jiekou_url,jiekou_num in dic.items():
                   if jiekou_num > 10000:
                     time_file = time.strftime('%Y%m%d%H:%M:%S',ctime)
                     date_time = time.strftime('%Y-%-M-%d:%H:%M:%S',ctime)
                     f = open("newrequest" + time_file + ".log", "a+")
                     f.write(str(date_time) + " " + str(jiekou_num) +" "+ str(jiekou_url) +"\n")
                     f.close()
                     jiekou_numlist1=[jiekou_num]
                     jiekou_numlist.extend(jiekou_numlist1)
                     jiekou_urllist1=jiekou_url.split('\n')
                     jiekou_urllist.extend(jiekou_urllist1)
            print(jiekou_numlist)
            dictjiekou=dict(zip(jiekou_urllist,jiekou_numlist))
            print(dictjiekou)
            if not bool(dictjiekou):
              print("Dictionary is empty")
            else:
              print(self.send_msg(dictjiekou))
if __name__ == '__main__':
    obj_StatusPV = StatusPV()
    obj_StatusPV.count_pv()