def pornographic_closure_hangup(driver, data): times = time.time() + 10 video_quit = False elements.VideoingQuit(driver, 2, 0.5).click() time.sleep(0.5) while times > time.time(): quit_ele = elements.VideoingQuitText(driver, 1, 0.5) if quit_ele: logger.info("quit video ...%s" % quit_ele.text) if quit_ele.text: time.sleep(0.5) continue else: break elif elements.MatchingTips(driver, 1, 0.5): video_quit = True break elif elements.VideoingQuit(driver, 1, 0.5): break elif elements.MatchPornographicPopUpElement(driver, 1): video_quit = True break if not video_quit: elements.VideoingQuit(driver, 1, 0.5).click()
def match_from_match_history(driver): elements.MatchHistoryStartMatchButton(driver).click() friends_list = [] ctime = time.time() while time.time() < (ctime + 600): match_popup_handle(driver) if elements.VideoingObjectUserName(driver): logger.info("match success.") logger.info("UserName: %s,UserFavoriteNumber: %s,UserLocation: %s"%(elements.VideoingObjectUserName(driver).text,\ elements.VideoingObjectFavoriteNumber(driver).text,\ elements.VideoingObjectLocation(driver).text)) friends_list.append(elements.VideoingObjectUserName(driver).text) time.sleep(10) # quit current match elements.VideoingQuit(driver).click() if len(friends_list) >= 10: break if not elements.MatchHistoryButton(driver): driver.back() elements.MatchStopEnsureButton(driver).click() ret = elements.MatchHistoryButton(driver) return ActionResult(ret, "match friends if match history page is empty")
def pornographic_closure_test(driver, data): report = { "Account": data["report"]["Account"], "MatchedUserID": None, "UserID": data["report"]["UserID"], "Identity": data["report"]["Identity"], "VideoTimes": None, "IsSnaphot": None, "IsClosure": None, "IsUnlock": None, "ClosureTime": None, "CoinsBeforeUnlock": None, "CoinsAfterUnlock": None, "ClosureTimes": None, "UnlockPrice": None, "DeductionResult": None } elements.UserHomeButton(driver).click() coin_number = int(elements.MatchPageCoinsElement(driver).text) elements.MatchHomeButton(driver).click() logger.info("before match coin number: %s" % coin_number) if elements.MatchPornographicTestCheckBox(driver).element.get_attribute( "checked") == 'false': elements.MatchPornographicTestCheckBox(driver).click() match_gender_filter(driver, data) time.sleep(1) elements.MatchHomeButton(driver).click() end_time = time.time() + data["match_time_seconds"] lock_times = 0 first_video = True video_times = 0 remote_user_id = "" tmp_report = copy.deepcopy(report) while time.time() < end_time and lock_times < 4: # tmp_report = copy.deepcopy(report) if elements.VideoingQuit(driver, 1): video_times += 1 if first_video: logger.info("first video not save [%s]" % video_times) match_info = elements.MatchInfoElement(driver).text if match_info: reqtimes, matcheduid, match_time = match_info.split("|") tmp_report["VideoTimes"] = video_times tmp_report["MatchedUserID"] = matcheduid tmp_report[ "IsSnaphot"] = elements.MatchPornographicIsSnapshot( driver).text first_video = False else: logger.info("not first video save [%s]" % video_times) tmp_report["IsClosure"] = False settings.thread_pool.submit(settings.closure_report.append, tmp_report, 3.25) tmp_report = copy.deepcopy(report) match_info = elements.MatchInfoElement(driver).text if match_info: reqtimes, matcheduid, match_time = match_info.split("|") tmp_report["MatchedUserID"] = matcheduid tmp_report["VideoTimes"] = video_times tmp_report["IsSnaphot"] = elements.MatchPornographicIsSnapshot( driver).text match_video_quit(driver, data) elif elements.MatchPornographicPopUpElement(driver): #closure tmp_report["VideoTimes"] = video_times tmp_report["IsClosure"] = True tmp_report["ClosureTimes"] = lock_times + 1 tmp_report[ "ClosureTime"] = elements.MatchPornographicClosureTimeElement( driver).text tmp_report["IsSnaphot"] = "true" lock_times += 1 if elements.MatchPornographicPopUpUnlock(driver): tmp_report["IsUnlock"] = True elements.MatchPornographicPopUpCancel(driver).click() elements.UserHomeButton(driver).click() coin_number = int(elements.MatchPageCoinsElement(driver).text) elements.MatchHomeButton(driver).click() tmp_report["CoinsBeforeUnlock"] = coin_number logger.info("Coin Number: %s" % coin_number) elements.MatchHomeButton(driver).click() elements.MatchPornographicPopUpUnlock(driver, 6, 1).click() unlock_price_tips = elements.MatchPornographicUnlockCoins( driver).text unlock_price = re.search( r'\d{1,}', unlock_price_tips).group(0) if re.search( r'\d{1,}', unlock_price_tips) else None logger.info(unlock_price_tips) # unlock price tmp_report["UnlockPrice"] = unlock_price elements.MatchPornographicPopUpUnlock(driver).click() time.sleep(1) common.restart_app(driver) sign.new_user_popup_handle(driver) if elements.MatchPornographicTestCheckBox( driver).element.get_attribute("checked") == 'false': elements.MatchPornographicTestCheckBox(driver).click() elements.UserHomeButton(driver).click() temp_coin_number = int( elements.MatchPageCoinsElement(driver).text) elements.MatchHomeButton(driver).click() logger.info("current coin number: %s" % temp_coin_number) tmp_report["CoinsAfterUnlock"] = temp_coin_number if int(unlock_price) == coin_number - temp_coin_number: tmp_report["DeductionResult"] = True else: tmp_report["DeductionResult"] = False coin_number = temp_coin_number logger.info("Coin Number: %s" % coin_number) elements.MatchHomeButton(driver).click() first_video = True else: tmp_report["IsUnlock"] = False elements.MatchPornographicPopUpCancel(driver).click() elements.MatchHomeButton(driver).click() elements.MatchHomeButton(driver).click() settings.thread_pool.submit(settings.closure_report.append, tmp_report, 3.25) tmp_report = copy.deepcopy(report) elif elements.MatchPornographicAlert(driver): elements.MatchPornographicAlert(driver).click() driver.close_app()
def match_performance(driver, data): if not elements.UserHomeButton(driver): elements.MatchHomeButton(driver).click() match_gender_filter(driver, data) match_region_filter(driver, data) #start match elements.MatchHomeButton(driver).click() start_time = float( time.mktime( time.strptime(driver.device_time, '%a %b %d %H:%M:%S CST %Y'))) current_time = time.time() while time.time() < (current_time + data["match_time_seconds"]): ret = copy.deepcopy(data["report"]) vstime = time.time() if elements.VideoingQuit(driver, 1): vtime = time.time() - vstime start_time += vtime logger.info("connect success,start time (%s)" % start_time) ret["MatchResult"] = 1 ret["VideoResult"] = 1 c_time = time.mktime( time.strptime(driver.device_time, '%a %b %d %H:%M:%S CST %Y')) match_info = "" for _ in range(2): match_info = elements.MatchInfoElement(driver, 1).text if match_info: break if match_info: reqtimes, matcheduid, match_time = match_info.split("|") ret["RequestTimes"] = int(reqtimes) if re.match( r'^\d{1,}$', reqtimes) else None ret["MatchedUserID"] = int(matcheduid) if re.match( r'^\d{1,}$', matcheduid) else None faild_video_ele = elements.MatchVideoErrorInfoElement( driver, 1) if not faild_video_ele: ret["MatchSpacingTime"] = ( int(match_time) / 1000 - start_time) if (int(match_time) / 1000 - start_time) > 0 else 1.0 ret["VideoSpacingTime"] = ( c_time - start_time) if (c_time - start_time) > 0 else 1.1 else: fail_video_text = "" for _ in range(2): fail_video_text = elements.MatchVideoErrorInfoElement( driver, 1).text if fail_video_text: break if fail_video_text: _start_time = int( fail_video_text.split(",")[-1].split("|") [-1]) / 1000 + vtime ret["MatchSpacingTime"] = ( int(match_time) / 1000 - _start_time) if (int(match_time) / 1000 - _start_time) > 0 else 1.0 ret["VideoSpacingTime"] = ( c_time - _start_time) if (c_time - _start_time) > 0 else 1.1 settings.thread_pool.submit(put_connect_fail, data, fail_video_text, start_time) # fail_job = Thread(target=put_connect_fail,args=(data, fail_video_text, start_time)) # fail_job.start() else: ret["MatchSpacingTime"] = ( int(match_time) / 1000 - start_time) if (int(match_time) / 1000 - start_time) > 0 else 1.0 ret["VideoSpacingTime"] = ( c_time - start_time) if (c_time - start_time) > 0 else 1.1 settings.thread_pool.submit(settings.perf_report.append, ret, 3.25) # report_job = Thread(target=settings.perf_report.append,args=(ret,2.25)) # report_job.start() match_video_quit(driver, data) start_time = float( time.mktime( time.strptime(driver.device_time, '%a %b %d %H:%M:%S CST %Y'))) time.sleep(2) driver.close_app() return ActionResult(True, "match performance")