Ejemplo n.º 1
0
 def passedOrFailExcel(self,excelSheetName,workSheet=[],mainMasterList={}):
     #print workSheet
     k=2
     for sheet in workSheet:
         passedOrFailed=[]
         sheet=re.sub('.py', '', sheet)
         masterList=self.scriptCallData(excelSheetName+'.xlsx', sheet)
         #print "masterList",masterList
         for keys in masterList.keys():
             result=masterList[keys]['result']
             passedOrFailed.append(result)
         ExcelLib.writeCells(sheet, "L2", passedOrFailed.count('PASSED')) 
         ExcelLib.writeCells(sheet, "L3", passedOrFailed.count('FAILED'))
         ExcelLib.writeCells('FinalResult', "K"+str(k), sheet)
         ExcelLib.writeCells('FinalResult', "L"+str(k), passedOrFailed.count('FAILED')+passedOrFailed.count('PASSED'))
         ExcelLib.writeCells('FinalResult', "M"+str(k), passedOrFailed.count('PASSED'))
         ExcelLib.writeCells('FinalResult', "N"+str(k), passedOrFailed.count('FAILED'))
         k = k + 1
     ExcelLib.excelSheetName=excelSheetName+'.xlsx'
     totalPassed=totalFailed=0
     for sheet in workSheet:
         sheet=re.sub('.py', '', sheet)
         passed=str(ExcelLib.cellValues(sheet, 2, 12)).strip()
         totalPassed = totalPassed + int(passed)
         failed=str(ExcelLib.cellValues(sheet, 3, 12)).strip()
         totalFailed = totalFailed +int(failed)
         ExcelLib.writeCells('FinalResult', "B2", totalPassed) 
         ExcelLib.writeCells('FinalResult', "B3", totalFailed)
         ExcelLib.writeCells('FinalResult', "B4", totalPassed + totalFailed )
     ExcelLib.drawPieChart('FinalResult')
     sheetName=mainMasterList[excelSheetName]['sheetName']
     toEmail=mainMasterList[excelSheetName]['email']
     fromEmail = mainMasterList[excelSheetName]['fromEmail']
     send_mail(sheetName, fromEmail, toEmail, sheetName+'.xlsx')
Ejemplo n.º 2
0
def DataFliter(host, port, name, password, database, collection, Limit_Number, lag, stopwords_set, content_column, time_column, SendMailConfig=[]):
    print "......TextFilter System by LiNing......"
    print "filter_status equals 1 means OK, otherwise 0"
    posts = MongoDBIO(host, port, name, password, database, collection).Connection()

    #-------------------------------------------------------------------------------
    # 以下几行根据实际情况修改

    #### 查询操作
    id_dict = {"0":[], "1":[]} # 1-表示通过,0-表示不通过

    starttime = datetime.datetime(2015, 1, 1)
    endtime = datetime.datetime.now()
    for post in posts.find({
        time_column:{"$gte":starttime, "$lte":endtime},
        content_column:{"$exists":1},
        # "filter_status":{"$nin":[0, 1]} # 此处可注释
    },).sort(time_column, pymongo.DESCENDING).limit(Limit_Number):
        # print post
        if post[content_column] is not None:
            # print post[content_column]
            textseg_list = TextSeg(post[content_column], lag)
            testseg_set = set(textseg_list)
            if stopwords_set & testseg_set:
                # id_dict["0"].append(post["_id"])
                id_dict["0"].append((post["_id"], post[content_column]))

            else:
                id_dict["1"].append(post["_id"])
        else:
            print '{"_id":ObjectId("%s")} None' % post["_id"]

    #### 更新操作
    text = ''
    for id_content in id_dict["0"]:
        posts.update({"_id":id_content[0]}, {"$set":{"filter_status":0}})
        id_content_string = '{"_id":ObjectId("%s")} 0\n%s\n' % (id_content[0], id_content[1])
        print id_content_string,
        text += id_content_string
        # text = text.join(id_content_string) # 错误!join是循环用text连接id_content_string的字符
    if len(SendMailConfig) == 5:
        smtp_server, from_addr, passwd, to_addr, SendMailFlag = SendMailConfig
        #-------------------------------------------------------------------------------
        # smtp_server = 'smtp.163.com'
        # from_addr = '*****@*****.**'
        # passwd = 'xxxx'
        # to_addr = ['*****@*****.**']
        if SendMailFlag == 'Yes' and text != '':
            #-------------------------------------------------------------------------------
            subject = 'Waring...'
            files = []
            send_mail(smtp_server, from_addr, passwd, to_addr, subject, text, files)
    for id in id_dict["1"]:
        posts.update({"_id":id}, {"$set":{"filter_status":1}})
        print '{"_id":ObjectId("%s")} 1' % id
Ejemplo n.º 3
0
    def learn(self,
              steps=99000,
              BATCH_SIZE=600,
              gd_steps=[2, 5],
              totalcol=None,
              data=None,
              OneHotdata=None,
              missing_data=None,
              control_variables=None,
              ModelResultPath=None,
              ResultPath=None,
              LogPath="iitp_target_1.txt",
              per=1000):
        log = logging.getLogger('iitp')
        log.setLevel(logging.DEBUG)
        fileHandler = logging.FileHandler(os.path.join(os.getcwd(), LogPath),
                                          mode="w")
        log.addHandler(fileHandler)
        merged = tf.summary.merge_all()
        config = tf.ConfigProto(log_device_placement=True)
        config.gpu_options.allow_growth = True
        sess = tf.Session(config=config)
        train_writer = tf.summary.FileWriter(ModelResultPath, sess.graph)
        saver = tf.train.Saver()
        init = tf.global_variables_initializer()
        sess.run(init)
        ng_steps, nd_steps = gd_steps
        global_distance = 0
        epochs = []
        gen_loss_store = []
        gmiss_loss_store = []
        disc_loss_store = []
        miss_disc_loss_store = []
        total_distance_store = []
        totalN = data.shape[1]
        epoch = 0
        for epoch in range(epoch, steps):
            if epoch > 0:
                msg = f"Epoch: {epoch:05d}/{steps}, gloss : {n_gloss:.3f} , dloss : {n_dloss:.3f} , missloss : {n_missloss:.3f} , gmissloss : {n_gmissloss:.3f}"
                print(msg, end='\r')
            batch_idx = np.random.choice(len(data), BATCH_SIZE)
            batch_noise = generate_noise(BATCH_SIZE, self.g_dim)
            batch_onehot_X = OneHotdata.iloc[batch_idx, :].values
            batch_miss_data = missing_data[batch_idx, :]
            Conds = control_variables.values[batch_idx, :]
            feed_dict = {
                self.global_step: epoch,
                self.X: batch_onehot_X,
                self.Z: batch_noise,
                self.Conditions: Conds,
                self.missX: batch_miss_data,
                self.batch_size: BATCH_SIZE,
                self.is_training: True,
            }
            n_gloss, n_dloss, n_missloss, n_gmissloss = 0, 0, 0, 0
            for _ in range(ng_steps):
                # , miss_gen_step , miss_gen_loss
                _, gloss = sess.run([self.gen_step, self.gen_loss],
                                    feed_dict=feed_dict)
                n_gloss += gloss  # + mgloss
            for _ in range(ng_steps):
                _, gmissloss = sess.run(
                    [self.miss_gen_step, self.miss_gen_loss],
                    feed_dict=feed_dict)
                n_gmissloss += gmissloss
            for _ in range(nd_steps):
                _, dloss = sess.run([self.disc_step, self.disc_loss],
                                    feed_dict=feed_dict)
                n_dloss += dloss
            for _ in range(nd_steps):
                _, missloss = sess.run(
                    [self.miss_disc_step, self.miss_disc_loss],
                    feed_dict=feed_dict)
                n_missloss += missloss

            n_gloss /= ng_steps
            n_gmissloss /= ng_steps
            n_dloss /= nd_steps
            n_missloss /= nd_steps
            #     print(f"{n_gloss} {n_dloss} {n_missloss}", end='\n')

            if math.isnan(n_gloss) | math.isnan(n_dloss) | math.isnan(
                    n_missloss) | math.isnan(n_gmissloss):
                msg = f"nan issue gloss : {n_gloss} , dloss : {n_dloss} , missloss : {n_missloss} , gmissloss : {n_gmissloss}"
                log.error(f"[{epoch}] Error : {msg}")
                send_mail(subject="IITP GAN Train Error!!", txt=msg)
                sys.exit(0)
            """
            ##########################################
            ####  Visualization ######################
            ##########################################
            """
            if (epoch % per == 0) & (epoch > 0):
                epochs.append(epoch)
                gen_loss_store.append(n_gloss)
                gmiss_loss_store.append(n_gmissloss)
                disc_loss_store.append(n_dloss)
                miss_disc_loss_store.append(n_missloss)
                fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(15, 8))
                ax = axes.flatten()
                plt.subplots_adjust(left=0.05,
                                    bottom=0.2,
                                    right=0.85,
                                    top=0.95,
                                    wspace=None,
                                    hspace=0.0)
                ax[0].plot(epochs, gen_loss_store, label="Generator")
                ax[0].plot(epochs, gmiss_loss_store, label="MissGenerator")
                ax[0].plot(epochs, disc_loss_store, label="Discriminator")
                ax[0].plot(epochs,
                           miss_disc_loss_store,
                           label="MissDiscriminator")
                ax[0].set_title(
                    f"Epoch : {epoch} GLoss : {n_gloss:.3f} DLoss : {n_dloss:.3f} MissDloss : {n_missloss:.3f} MissGloss : {n_gmissloss:.3f}"
                )
                ax[0].legend(loc=1)
                # plt.ylim(0,3)
                store = []
                Total_SIZE = len(data)
                Total_noise = generate_noise(Total_SIZE, self.g_dim)
                Total_onehot_X = OneHotdata.values
                Total_miss_data = missing_data
                Total_Conds = control_variables.values
                feed_dict = {
                    self.global_step: epoch,
                    self.X: Total_onehot_X,
                    self.Z: Total_noise,
                    self.Conditions: Total_Conds,
                    self.missX: Total_miss_data,
                    self.batch_size: Total_SIZE,
                    self.is_training: True,
                }
                #         miss_g , miss_indic ,miss_sigmoid,miss_x = sess.run([miss_G_sample_eval,miss_indicator2,
                #                                                              G_miss,G_sample] , feed_dict = feed_dict)
                miss_g, miss_indic = sess.run(
                    [self.miss_G_sample_eval, self.miss_indicator2],
                    feed_dict=feed_dict)
                #         miss_g = np.where(miss_g==1.5, np.nan, miss_g)
                total_msg = f"STEP : {epoch} \n"
                miss_g = missing_handling(miss_g, self.overall_where)
                print(pd.DataFrame(miss_g[[0], :], columns=totalcol))
                msg = f'{"=" * 10} Epoch : {epoch} {"=" * 10}'
                log.info(msg)
                log.info(miss_indic[[0], :])
                log.info(miss_g[[0], :])
                for i, _column_ in enumerate(data.columns.tolist()):
                    r = data.iloc[:, i].values.astype(float)
                    g = miss_g[:, i]
                    r = r[~np.isnan(r)]
                    g = g[~np.isnan(g)]
                    try:
                        dist = np.round(wdist(g, r), 6)
                    except Exception as e:
                        print(f"{_column_} :  {e}")
                        dist = 0
                        pass
                    store.append(dist)
                    msg = r"[{}.{:.3f}]".format(i, dist)
                    if int(data.shape[1] / 2) == i:
                        total_msg = total_msg + " \n"
                    total_msg = total_msg + msg
                total_distance = sum(store)
                total_distance_store.append(total_distance)
                try:
                    summary = sess.run(merged, feed_dict=feed_dict)
                    train_writer.add_summary(summary, epoch)
                except Exception as e:
                    # log.error(f"[{epoch}] Error : {e}")
                    pass
                if len(total_distance_store) == 1:
                    global_distance = total_distance

                if total_distance <= global_distance:
                    msg = f"[{epoch}] distnace : {global_distance} -> {total_distance}"
                    log.info(msg)
                    global_distance = total_distance
                    meta_graph_bool = True
                    saver.save(sess,
                               os.path.join(ModelResultPath, "model.ckpt"),
                               global_step=epoch,
                               write_meta_graph=meta_graph_bool)
                total_msg = f"STEP : {epoch} \n"
                total_msg += f"Total Distance : {total_distance:.3f}[{min(total_distance_store):.3f}]"
                ax[1].plot(epochs, total_distance_store, label="TotalDistance")
                ax[1].set_title(total_msg, fontsize=12)
                ax[1].legend(loc=1)
                plt.tight_layout()
                plt.savefig(os.path.join(ResultPath, f'{epoch:05d}.png'))
                if epoch % 200 == 0:
                    clear_output()
                else:
                    plt.show()
            """
            ##########################################
            ####  Visualization ######################
            ##########################################
            """
        log.info("Terminate")
        os.system('convert -delay 15 -loop 0 {0}/*.png {0}/gan.gif'.format(
            ResultPath))
        ModelResultPath = os.path.join(ResultPath, ModelResult)
        send_mail(subject="IITP GAN Train Target 0 Complete",
                  txt=f"결과물 경로 : {ResultPath}",
                  gifpath=os.path.join(ResultPath, "gan.gif"))
Ejemplo n.º 4
0
def DataFliter(host,
               port,
               name,
               password,
               database,
               collection,
               Limit_Number,
               lag,
               stopwords_set,
               content_column,
               time_column,
               SendMailConfig=[]):
    print "......TextFilter System by LiNing......"
    print "filter_status equals 1 means OK, otherwise 0"
    posts = MongoDBIO(host, port, name, password, database,
                      collection).Connection()

    #-------------------------------------------------------------------------------
    # 以下几行根据实际情况修改

    #### 查询操作
    id_dict = {"0": [], "1": []}  # 1-表示通过,0-表示不通过

    starttime = datetime.datetime(2015, 1, 1)
    endtime = datetime.datetime.now()
    for post in posts.find(
        {
            time_column: {
                "$gte": starttime,
                "$lte": endtime
            },
            content_column: {
                "$exists": 1
            },
            # "filter_status":{"$nin":[0, 1]} # 此处可注释
        }, ).sort(time_column, pymongo.DESCENDING).limit(Limit_Number):
        # print post
        if post[content_column] is not None:
            # print post[content_column]
            textseg_list = TextSeg(post[content_column], lag)
            testseg_set = set(textseg_list)
            if stopwords_set & testseg_set:
                # id_dict["0"].append(post["_id"])
                id_dict["0"].append((post["_id"], post[content_column]))

            else:
                id_dict["1"].append(post["_id"])
        else:
            print '{"_id":ObjectId("%s")} None' % post["_id"]

    #### 更新操作
    text = ''
    for id_content in id_dict["0"]:
        posts.update({"_id": id_content[0]}, {"$set": {"filter_status": 0}})
        id_content_string = '{"_id":ObjectId("%s")} 0\n%s\n' % (id_content[0],
                                                                id_content[1])
        print id_content_string,
        text += id_content_string
        # text = text.join(id_content_string) # 错误!join是循环用text连接id_content_string的字符
    if len(SendMailConfig) == 5:
        smtp_server, from_addr, passwd, to_addr, SendMailFlag = SendMailConfig
        #-------------------------------------------------------------------------------
        # smtp_server = 'smtp.163.com'
        # from_addr = '*****@*****.**'
        # passwd = 'xxxx'
        # to_addr = ['*****@*****.**']
        if SendMailFlag == 'Yes' and text != '':
            #-------------------------------------------------------------------------------
            subject = 'Waring...'
            files = []
            send_mail(smtp_server, from_addr, passwd, to_addr, subject, text,
                      files)
    for id in id_dict["1"]:
        posts.update({"_id": id}, {"$set": {"filter_status": 1}})
        print '{"_id":ObjectId("%s")} 1' % id
Ejemplo n.º 5
0
def getTodaySoccer(gameType):
    # type == 3 竞彩
    # type == 1 精简
    # type == 2 十四场

    # http://119.29.29.29/d?ttl=1&dn=txt.city007.net
    httpHomeStr = get_resultstr_with_url(
        'http://119.29.29.29/d?ttl=1&dn=txt.city007.net')
    httpHomeList = httpHomeStr.split(';')
    host = httpHomeList[0]

    gameType = int(gameType)
    url = ''
    resultStr = ''
    try:
        #  url = "http://%s:8071/phone/schedule_0_%s.txt?an=iosQiuTan&av=6.2&from=2&r=%s" % (host,str(gameType),str(int(time.time())))
        # http://61.143.224.156:8071/phone/schedule_0_0.txt?an=iosQiuTan&av=7.1&from=24&r=1535452669
        url = "http://61.143.224.156:8071/phone/schedule_0_" + str(
            gameType) + ".txt?an=iosQiuTan&av=7.1&from=24&r=" + str(
                int(time.time()))
        print url
    except Exception as e:
        print '请求接口出错' + url
        print e
    if url != '':
        resultStr = get_resultstr_with_url(url)

    global AllGames
    global AllBeginTimes

    if resultStr != '':
        # print resultStr
        allArray = resultStr.split('$$')
        if gameType == 1:
            leagueStr = allArray[0]
        else:
            leagueStr = allArray[1]

        allLeague = leagueStr.split('!')
        dic = {}
        for league in allLeague:
            oneLeague = league.split('^')
            dic[oneLeague[1]] = oneLeague[0].encode('utf-8')

        if gameType == 1:
            gameStr = allArray[1]
        else:
            gameStr = allArray[2]

        games = gameStr.split('!')

        # 获取当前时间戳
        nowTimestamp = time.time()

        contentStr = "<!DOCTYPE html><html lang=\"en\"><head><meta charset=\"UTF-8\"><title>初盘预测</title></head><body>"
        for game in games:
            onegame = FootballGame()
            oneGameArray = game.split('^')
            oneGameArray.remove('')
            onegame.soccerID = int(oneGameArray[0])
            onegame.leauge = dic.get(oneGameArray[1])
            beginTime = oneGameArray[3].encode('utf-8')
            onegame.beginTime = beginTime[0:4] + '-' + beginTime[
                4:6] + '-' + beginTime[6:8] + ' ' + beginTime[
                    8:10] + ':' + beginTime[10:12] + ':' + beginTime[12:14]

            beginTime_datetime = datetime.datetime.strptime(
                onegame.beginTime, '%Y-%m-%d %H:%M:%S')
            beginTime_timestamp = time.mktime(beginTime_datetime.timetuple())
            delta = nowTimestamp - beginTime_timestamp

            # 比赛已经开始或者已经结束
            if delta >= 0:
                continue

            briefTimeStr = beginTime[0:4] + '-' + beginTime[
                4:6] + '-' + beginTime[6:8] + ' ' + beginTime[
                    8:10] + ':' + beginTime[10:12]
            if briefTimeStr not in AllBeginTimes:
                AllBeginTimes.append(briefTimeStr)

            if oneGameArray[4].isdigit() or oneGameArray[4] == '':
                onegame.homeTeam = oneGameArray[5].encode('utf-8')
                onegame.friendTeam = oneGameArray[6].encode('utf-8')
            else:
                onegame.homeTeam = oneGameArray[4].encode('utf-8')
                onegame.friendTeam = oneGameArray[5].encode('utf-8')
            AllGames.append(onegame)
            # 获取欧赔,亚盘数据
            onegame.oddCompanies = getOneGameODD(host, onegame)
            onegame.handiCompanies = getOneGameHandi(host, onegame)

            titlestr = ''.join([
                str(onegame.beginTime), ':', onegame.leauge, ':',
                onegame.homeTeam, 'vs', onegame.friendTeam, ' id: ',
                str(onegame.soccerID), '澳盘: ',
                str(onegame.orignal_aomenHandi), ' -> ',
                str(onegame.now_aomenHandi)
            ])
            contentStr += "<h3 style=\"color:red;\">%s</h3>" % (titlestr, )

            # 获取开盘时间
            flag = SoccerOrignalPanTime.gethandiTime(onegame.soccerID)
            if flag:
                # contentStr += '澳盘开盘早\n'.join([str(onegame.beginTime), ':', onegame.leauge, ':', onegame.homeTeam, 'vs', onegame.friendTeam])
                contentStr += "<h4 style=\"color:red;\" align=\"center\">澳盘开盘早</h4>"
            # 获取初始盘口数量
            if len(onegame.orignalHandiList) > 2:
                contentStr += "<h4 style=\"color:red;\" align=\"center\">初盘混乱</h4>"
                # contentStr += '初盘混乱\n'
                # contentStr += ''.join(
                #     [str(onegame.beginTime), ':', onegame.leauge, ':', onegame.homeTeam, 'vs', onegame.friendTeam])

            contentStr += "<table bgcolor=\"black\"cellspacing=\"1px\"width=\"375px\" align=\"center\">" \
                          "<caption style=\"color:red;\"><h5>亚盘</h5></caption><tr bgcolor=#663399><th>博彩公司</th><th>盘口</th><th>数量</th><th>赢盘</th><th>走盘</th><th>输盘</th><th>胜</th><th>平</th><th>负</th></tr> "
            tempHandistr = getHandiProbability(onegame)
            if tempHandistr is not None:
                contentStr += tempHandistr
                # contentStr += '\n'

            tempNowHandistr = getnowHandiProbability(onegame)
            if tempNowHandistr is not None:
                contentStr += "<tr bgcolor=#888888><th>即时盘口</th><th>%s</th><th></th><th></th><th></th><th></th><th></th><th></th><th></th></tr> " % (
                    str(len(onegame.nowHandiList)))
                contentStr += tempNowHandistr
                contentStr += '</table>'
            else:
                contentStr += '</table>'

            contentStr += '</table>'
            contentStr += "<table bgcolor=\"black\"cellspacing=\"1px\"width=\"375px\" align=\"center\"><caption style=\"color:red;\"><h5>欧赔</h5></caption>" \
                          "<tr bgcolor=\"white\" ><td>博彩公司</td> <td>数量</td><td>胜</td><td>平</td><td>负</td><td>胜率</td><td>平率</td><td>负率</td>"
            tempOddstr = getOrignalODDProbability(onegame)
            if tempOddstr is not None:
                contentStr += tempOddstr
                # contentStr += '\n'

            tempNowOddstr = getnowODDProbability(onegame)

            if tempNowOddstr is not None:
                contentStr += "<tr bgcolor=#888888 ><td>即时欧赔</td> <td></td><td></td><td></td><td></td><td></td><td></td><td></td>"
                contentStr += tempNowOddstr
                contentStr += '</table>'
            else:
                contentStr += '</table>'

            time.sleep(3)

        i = datetime.datetime.now()

        if gameType == 1:
            subjectstr = '精简足球分析'
        elif gameType == 2:
            subjectstr = '十四场足球分析'
        else:
            subjectstr = '初盘分析'

        send_mail("%s %s/%s/%s" % (subjectstr, i.year, i.month, i.day),
                  contentStr, 'html')
Ejemplo n.º 6
0
  def SendResultsEmail(self,query):

    sAttachment = self.XSLTransform('email.xml','email.xsl')
    
    file = open('results.html','w')
    file.write(sAttachment)
    file.close()

    sFilename = self._sConfigFile
   
    # Get the various values that we need
    sServer = Config.GetValue( sFilename, 'SMTPServer', self._Out )
      
    if ( sServer <> '' ):
      sMyName = Config.GetValue( sFilename, 'MyName',      self._Out )
      sTo     = Config.GetValue( sFilename, 'SMTPTo',      self._Out )
      sFrom   = Config.GetValue( sFilename, 'SMTPFrom',    self._Out )
      sCC     = Config.GetValue( sFilename, 'SMTPCC',	   self._Out )
     
      sBody   = Config.GetValue( sFilename, 'SMTPBody', self._Out )
      sSubject= Config.GetValue( sFilename, 'SMTPSubject', self._Out )
	  
      sSMTPUser = Config.GetValue( sFilename, 'SMTPUser', self._Out )
      sSMTPPassword = Config.GetValue ( sFilename, 'SMTPPass', self._Out)
        
      # Info messages
      self._Out.OutputInfo( 'Sending e-mail to: ' + sTo + '...' )
      if (sCC <> ''):
        self._Out.OutputInfo( '... cc: ' + sCC + '...' )
      self._Out.OutputInfo( '... regarding ' + sSubject + '...' )
      
      sErrorMsg = self._Out.GetErrorMessage( )
        
      # Build the body of the message
      dtNow = datetime.datetime.now( )

      sMessageBody = dtNow.strftime( "%a, %d %b %Y %H:%M" ) + '\n\n'
      if ( sMyName <> '' ):
        sMessageBody += 'Name: ' + sMyName + '\n\n'
        sMessageBody += 'Query Name: ' + query + '\n\n'
        sMessageBody += 'SQL: ' + Config.GetValue( sFilename, str(query + 'SQL'), self._Out ) + '\n\n'
        sMessageBody += 'Unique Key: ' + Config.GetValue( sFilename, str(query + 'UniqueKey'), self._Out ) + '\n\n'
        sMessageBody += 'Destination Table: ' + Config.GetValue( sFilename, str(query + 'DestTable'), self._Out ) + '\n\n'
        sMessageBody += 'DataWatcher comparison results are attached'
      if ( sBody <> '' and sBody <> ' ' ):
        sMessageBody += sBody + '\n\n'
      if ( sErrorMsg <> '' ):
        sMessageBody += sErrorMsg + '\n\nPlease see the log for more details.'
      
      # Make the lists
      if ( len( sTo ) > 0 and sTo <> '' ):
        lTo = sTo.split( ',' )
      else:
        lTo = []
      if ( len( sCC ) > 0 and sCC <> '' ):
        lCC = sCC.split( ',' )
      else:
        lCC = []
          
      # Do the mail thang
      send_mail( send_to = lTo, send_cc = lCC, message_subject = sSubject, message_text = sMessageBody, send_from = sFrom, mail_server = sServer, Out = self._Out, files = ["results.html"], smtp_user = sSMTPUser, smtp_password = sSMTPPassword)
    else:
      # Indicate we couldn't send
      self._Out.OutputInfo( 'No configuration for SendMail' )
        
    return
Ejemplo n.º 7
0
        time.sleep(1)
        content.click()
        time.sleep(1)
        self.browser.save_screenshot(self.my_path + 'login.png')
        assert "Indexadores" in self.browser.page_source

    def test_login_busca_doc_store(self):

        self.browser.get("http://srvprtapp001d.tokiomarine.com.br:85/docstore-viewer/")
        content = self.browser.find_element_by_css_selector('a.btn.show-filter')
        time.sleep(1)
        content.click()
        select = Select(self.browser.find_element_by_id('tipoFiltro'))
        time.sleep(1)
        select.select_by_visible_text("Sinistro")
        element = self.browser.find_element_by_id("txtFiltro")
        element.send_keys("E1053017488")
        element.send_keys(Keys.RETURN)
        time.sleep(3)
        self.browser.save_screenshot(self.my_path + 'busca.png')
        assert "Registro(s) encontrado(s):" in self.browser.page_source

    def tearDown(self):
        self.browser.close()


if __name__ == "__main__":
    unittest.main()
    files = DocStoreTest.wrap_files()
    send_mail(files)
Ejemplo n.º 8
0
    for op in ops:
        if op.state != 0:
            allToFollow += 1
        else:
            continue
        logger.debug("unfollow %d state %d %s" % (op.opUid, op.state, op.actionTime))
        try:
            if not op.srcUid in followResult:
                followResult[op.srcUid] = [0, 0]
            followResult[op.srcUid][0] += 1
            if FriendShip.CheckFollow(client, op.opUid, BGApp.dev_uid):
                logger.debug("%d follow us" % op.opUid)
                followResult[op.srcUid][1] += 1
                allFollowers += 1
            else:
                logger.debug("%d not follow" % op.opUid)
        except:
            logger.debug(traceback.format_exc())

        time.sleep(1)
    mailContent += "昨日一共求关注了%d个人,%d个人回粉\n" % (allToFollow, allFollowers)
    mailContent += "其中:\n"
    for (k, v) in followResult.items():
        com = Competitor.objects.get(uid=k)
        mailContent += "%s" % com.screenName.encode('utf_8')
        mailContent += "一共收听了%d个人,回粉了%d个人\n" % (v[0], v[1])

    print mailContent
    send_mail(['*****@*****.**',], "增粉日报", mailContent)

Ejemplo n.º 9
0
from SendMail import send_mail

from Operation import Operation
from FriendShip import FriendShip

import time, sys

if __name__ == '__main__':
    if len(sys.argv) == 2:
        num = int(sys.argv[1])
    else:
        num = 0
    ops = Operation.FetchSomeDayOps(Operation.FollowType, num)
    print "all number %d" % len(ops)
    followNum = 0
    client = APIClient(BGApp.wdj_app_key, BGApp.wdj_app_secret)
    client.set_access_token(BGApp.wdj_me_token, time.time() + 90 * 24 *3600)
    for op in ops:
        try:
            if FriendShip.CheckFollow(client, op.uid, BGApp.dev_uid):
                print op.uid, op.ts
                followNum += 1
            else:
                print "not follow:", op.uid, op.ts
        except:
            pass
        time.sleep(1)
    print "follow num %d" % followNum
    content = "昨天收听了%d个人,%d个人回粉" % (len(ops), followNum)
    send_mail(['*****@*****.**',], "增粉日报", content)
Ejemplo n.º 10
0
def getTodaySoccer(gameType):
    # type == 3 竞彩
    # type == 1 精简
    # type == 2 十四场
    url = ''
    resultStr = ''
    gameType = int(gameType)
    try:
        url = "http://61.143.225.85:8072/phone/schedule_0_" + str(
            gameType) + ".txt?an=iosQiuTan&av=2.4&from=2&r=" + str(
                int(time.time()))
        print url
    except Exception as e:
        print '请求接口出错' + url
        print e

    if url != '':
        resultStr = get_resultstr_with_url(url)

    global AllGames
    global AllBeginTimes

    if resultStr != '':
        # print resultStr
        allArray = resultStr.split('$$')

        if gameType == 1:
            leagueStr = allArray[0]
        else:
            leagueStr = allArray[1]

        allLeague = leagueStr.split('!')
        dic = {}
        for league in allLeague:
            oneLeague = league.split('^')
            dic[oneLeague[1]] = oneLeague[0].encode('utf-8')

        if gameType == 1:
            gameStr = allArray[1]
        else:
            gameStr = allArray[2]

        games = gameStr.split('!')
        contentStr = "<!DOCTYPE html><html lang=\"en\"><head><meta charset=\"UTF-8\"><title>初盘预测</title></head><body>"
        for game in games:
            onegame = FootballGame()
            oneGameArray = game.split('^')
            oneGameArray.remove('')
            onegame.soccerID = int(oneGameArray[0])
            onegame.leauge = dic.get(oneGameArray[1])
            beginTime = oneGameArray[3].encode('utf-8')
            onegame.beginTime = beginTime[0:4] + '-' + beginTime[
                4:6] + '-' + beginTime[6:8] + ' ' + beginTime[
                    8:10] + ':' + beginTime[10:12]

            briefTimeStr = beginTime[0:4] + '-' + beginTime[
                4:6] + '-' + beginTime[6:8] + ' ' + beginTime[
                    8:10] + ':' + beginTime[10:12]
            if briefTimeStr not in AllBeginTimes:
                AllBeginTimes.append(briefTimeStr)

            if oneGameArray[4].isdigit() or oneGameArray[4] == '':
                onegame.homeTeam = oneGameArray[5].encode('utf-8')
                onegame.friendTeam = oneGameArray[6].encode('utf-8')
            else:
                onegame.homeTeam = oneGameArray[4].encode('utf-8')
                onegame.friendTeam = oneGameArray[5].encode('utf-8')
            AllGames.append(onegame)
            # 获取欧赔,亚盘数据
            onegame.oddCompanies = getOneGameODD(oneGameListHost, onegame)
            onegame.handiCompanies = getOneGameHandi(oneGameListHost, onegame)

            titlestr = ''.join([
                str(onegame.beginTime), ':', onegame.leauge, ':',
                onegame.homeTeam, 'vs', onegame.friendTeam, ' id: ',
                str(onegame.soccerID), '澳盘: ',
                str(onegame.orignal_aomenHandi), ' -> ',
                str(onegame.now_aomenHandi)
            ])
            contentStr += "<h3 style=\"color:red;\">%s</h3>" % (titlestr, )

            if len(onegame.nowHandiList) > 1:
                getHandiDisunion(onegame)

            time.sleep(3)

        i = datetime.datetime.now()

        if gameType == 1:
            subjectstr = '精简足球分析'
        elif gameType == 2:
            subjectstr = '十四场足球分析'
        else:
            subjectstr = '初盘分析'

        subjectstr += '  盘口不一致'
        send_mail("%s %s/%s/%s" % (subjectstr, i.year, i.month, i.day),
                  contentStr, 'html')