def Set_FollowLists(self): ############################# # 更新されてなければ抜ける if self.FLG_Update == False: return True wARR_SetFile = [] ############################# # フォロー一覧 wKeyList = list(self.ARR_FollowTL.keys()) for wUser in wKeyList: wLine = self.ARR_FollowTL[wUser] + gVal.DEF_DATA_BOUNDARY + wUser wARR_SetFile.append(wLine) ############################# # フォローファイル書き込み (改行つき) wFile_path = self.Obj_Parent.CHR_User_path + gVal.DEF_STR_FILE[ 'FollowListFile'] ## if CLS_File.sWriteFile( wFile_path, self.ARR_FollowTL, inRT=True )!=True : if CLS_File.sWriteFile(wFile_path, wARR_SetFile, inRT=True) != True: self.Obj_Parent.OBJ_Mylog.Log( 'a', "CLS_Follow: Set_FollowLists: Set follow list file is failed: " + wFile_path) return False #失敗 wARR_SetFile = [] ############################# # フォロワー一覧 wKeyList = list(self.ARR_FollowerTL.keys()) for wUser in wKeyList: wLine = self.ARR_FollowerTL[wUser] + gVal.DEF_DATA_BOUNDARY + wUser wARR_SetFile.append(wLine) ############################# # フォロワーファイル書き込み (改行つき) wFile_path = self.Obj_Parent.CHR_User_path + gVal.DEF_STR_FILE[ 'FollowerListFile'] ## if CLS_File.sWriteFile( wFile_path, self.ARR_FollowerTL, inRT=True )!=True : if CLS_File.sWriteFile(wFile_path, wARR_SetFile, inRT=True) != True: self.Obj_Parent.OBJ_Mylog.Log( 'a', "CLS_Follow: Set_FollowLists: Set follower list file is failed: " + wFile_path) return False #失敗 wStr = "フォローリスト更新あり: follow=" + str(len( self.ARR_FollowTL)) + " follower=" + str(len(self.ARR_FollowerTL)) self.Obj_Parent.OBJ_Mylog.Log('b', wStr) return True #成功
def Set_CLData(self): ############################# # 書き込みデータの作成 wCLDataList = [] wKeylist = list(self.ARR_CLData.keys()) for wKey in wKeylist: if self.ARR_CLData[wKey]["Valid"] == False: continue #無効データ wSetLine = self.ARR_CLData[wKey]["Kind"] + "," wSetLine = self.ARR_CLData[wKey]["Sended"] + "," wSetLine = wSetLine + str(self.ARR_CLData[wKey]["Hour"]) + "," wSetLine = wSetLine + str(self.ARR_CLData[wKey]["Minute"]) + "," wSetLine = wSetLine + self.ARR_CLData[wKey]["TootFile"] wCLDataList.append(wSetLine) ############################# # ファイル書き込み (改行つき) ## wFile_path = self.Obj_Parent.CHR_User_path + gVal.DEF_STR_FILE['CLDataFile'] wFile_path = gVal.DEF_STR_FILE[ 'MasterConfig_path'] + gVal.DEF_STR_FILE['CLDataFile'] if CLS_File.sWriteFile(wFile_path, wCLDataList, inRT=True) != True: self.Obj_Parent.OBJ_Mylog.Log( 'a', "CLS_CircleToot: Set_CLData: CLDataFile read failed: " + wFile_path) return False #失敗 return True #成功
def sChk1HourTime(cls, inPath): ############################# # 記録ファイルをロード w1HourTime = [] wFilePath = inPath + gVal.DEF_STR_FILE['Chk1HourFile'] if CLS_File.sReadFile(wFilePath, w1HourTime) != True: return False #処理失敗 try: w1HourTime = w1HourTime[0].split(',') wHour = w1HourTime[1] except: return False #処理失敗 ############################# # PC時間を取得 wGetTime = CLS_OSIF.sGetTime() if wGetTime['Result'] != True: return False #処理失敗 gVal.STR_TimeInfo['Object'] = wGetTime['Object'] gVal.STR_TimeInfo['TimeDate'] = wGetTime['TimeDate'] gVal.STR_TimeInfo['Hour'] = wGetTime['Hour'] gVal.STR_TimeInfo['Week'] = wGetTime['Week'] gVal.STR_TimeInfo['Result'] = True #有効 wGetDate = wGetTime['TimeDate'].split(" ") ############################# # 時間が同じ=少なくとも1時間経ってないか? if w1HourTime[0] != "1900-01-01": if wHour == wGetTime['Hour']: gVal.STR_TimeInfo['OneHour'] = False return True else: gVal.STR_TimeInfo['OneHour'] = True if w1HourTime[0] == wGetDate[0]: gVal.STR_TimeInfo['OneDay'] = False ## return True else: gVal.STR_TimeInfo['OneDay'] = True else: ##bot起動初回の場合は時間だけ保存する gVal.STR_TimeInfo['OneHour'] = False gVal.STR_TimeInfo['OneDay'] = False ############################# # 時間をセーブ wTime = wGetTime['TimeDate'].split(" ") wTime = wTime[0] + ',' + wGetTime['Hour'] + ',' + wGetTime['Week'] wSaveTime = [] wSaveTime.append(wTime) if CLS_File.sWriteFile(wFilePath, wSaveTime) != True: return False #処理失敗 return True
def __setTrafficUser( self, inUserList ): ############################# # ファイル書き込み (改行つき) wFile_path = gVal.DEF_STR_FILE['TrafficFile'] if CLS_File.sWriteFile( wFile_path, inUserList, inRT=True )!=True : return False #失敗 return True #成功
def sChangeTrafficUser(cls, inUsername): ############################# # 名前の妥当性チェック wResUser = cls.sUserCheck(inUsername) ## "Result" : False, ## "User" : "", ## "Domain" : "", ## "Reason" : "", ## "Registed" : False, if wResUser['Result'] != True: return False #不正 ############################# # 読み出し先初期化 wTrafficUser = [] ############################# # ファイル読み込み wFile_path = gVal.DEF_STR_FILE['TrafficFile'] if CLS_File.sReadFile(wFile_path, outLine=wTrafficUser) != True: return False #失敗 ############################# # 計測ユーザか if inUsername not in wTrafficUser: return True #対象外 ##自分は抜いておく wTrafficUser.remove(inUsername) ############################# # 同一ドメインの別ユーザを検索 wUserList = cls.sGetUserList() wNewUser = None for wLine in wUserList: if wLine == inUsername: continue #自分は除く wDomain = wLine.split("@") if wDomain[1] == wResUser['Domain']: wNewUser = wLine break if wNewUser == None: ##ありえない return False ############################# # 切替 wTrafficUser.append(wNewUser) ############################# # ファイル書き込み (改行つき) wFile_path = gVal.DEF_STR_FILE['TrafficFile'] if CLS_File.sWriteFile(wFile_path, wTrafficUser, inRT=True) != True: return False #失敗 return True #正常
def Set_RateTwitterTL(self): ############################# # ファイル書き込み (改行つき) wFile_path = gVal.DEF_MASTERCONFIG + gVal.DEF_STR_FILE['TweetFile'] if CLS_File.sWriteFile(wFile_path, self.ARR_UpdateTL, inRT=True) != True: return False #失敗 return True #成功
def Set_RateLTL(self): ############################# # ファイル書き込み (改行つき) wFile_path = self.Obj_Parent.CHR_User_path + gVal.DEF_STR_FILE[ 'Rate_LTLFile'] if CLS_File.sWriteFile(wFile_path, self.ARR_UpdateTL, inRT=True) != True: return False #失敗 return True #成功
def __setDomainsFile(self): ############################# # ファイル書き込み (改行つき) ## wFile_path = gVal.DEF_STR_FILE['MstdnDomains_File'] wFile_path = gVal.DEF_STR_FILE[ 'MasterConfig_path'] + gVal.DEF_STR_FILE['MstdnDomains_File'] if CLS_File.sWriteFile(wFile_path, self.ARR_Domains, inRT=True) != True: ## wStr = "CLS_DBedit: __setDomainsFile: MstdnDomains_File write is failed: " + gVal.DEF_STR_FILE['MstdnDomains_File'] wStr = "CLS_DBedit: __setDomainsFile: MstdnDomains_File write is failed: " + wFile_path CLS_OSIF.sPrn(wStr) return False #失敗 return True #成功
def sSetMasterConfig(cls): ############################# # 書き込みデータを作成 wSetLine = [] wKeylist = gVal.STR_MasterConfig.keys() for iKey in wKeylist: wLine = iKey + "=" + str(gVal.STR_MasterConfig[iKey]) + '\n' wSetLine.append(wLine) ############################# # ファイル上書き書き込み if CLS_File.sWriteFile(gVal.DEF_STR_FILE['MasterConfig'], wSetLine) != True: return False #失敗 return True
def sLock(cls, inPath): ## ############################# ## # 排他処理をしなければ なし ## if gVal.STR_MasterConfig['Lock'] != "on" : ## return False ############################# # 排他ファイルオープン wLockStat = CLS_BotCtrl.__openLock(inPath) ############################# # 排他確認 ############################# # 排他=0 :なし # 排他ONする if wLockStat == "0": wLock = [] wLock.append("1") wFilePath = inPath + gVal.DEF_STR_FILE['LockFile'] if CLS_File.sWriteFile(wFilePath, wLock) != True: return True #失敗=排他あり にしてる return False #排他なし ############################# # 排他=1: 排他中 # 待つ elif wLockStat == "1": CLS_BotCtrl.__lockWait(inPath) ############################# # 排他=8: バックグラウンド処理待ち # 待つ elif wLockStat == "8": CLS_BotCtrl.__backWait(inPath) return False #排他なし ############################# # 排他=その他 失敗 #### 排他あり return True #排他あり
def sUnlock(cls, inPath): wLock = [] wLock.append("0") wFilePath = inPath + gVal.DEF_STR_FILE['LockFile'] CLS_File.sWriteFile(wFilePath, wLock) return