mirror of
				https://github.com/chev2/tf2-voice-ban-bots.git
				synced 2025-10-30 08:12:33 +00:00 
			
		
		
		
	Add voice_ban merge support
This commit is contained in:
		
							parent
							
								
									09a0ca79dd
								
							
						
					
					
						commit
						dc66723f5b
					
				
					 1 changed files with 43 additions and 18 deletions
				
			
		|  | @ -1,11 +1,13 @@ | ||||||
| import os | import os #path/file opening | ||||||
| import json | import json #json parse | ||||||
| import requests | import requests #http requests | ||||||
|  | import re #regex | ||||||
| 
 | 
 | ||||||
| tf2_playerlist_url = "https://raw.githubusercontent.com/PazerOP/tf2_bot_detector/master/tf2_bot_detector/cfg/playerlist.official.json" #Pazer's list of bots | tf2_playerlist_url = "https://raw.githubusercontent.com/PazerOP/tf2_bot_detector/master/tf2_bot_detector/cfg/playerlist.official.json" #Pazer's list of bots | ||||||
| github_headers = { | github_headers = { | ||||||
|     'User-Agent': 'tf2-voice-ban-bots/1.0 (Python script - written by github.com/chev2)' |     'User-Agent': 'tf2-voice-ban-bots/1.0 (Python script - written by github.com/chev2)' | ||||||
| } | } | ||||||
|  | steamid3_regex = r'(\[U:1:\d+\])' | ||||||
| cwd = os.getcwd() | cwd = os.getcwd() | ||||||
| 
 | 
 | ||||||
| print("Attempting connection to bots list...") | print("Attempting connection to bots list...") | ||||||
|  | @ -25,24 +27,47 @@ for player in json_info["players"]: | ||||||
| 
 | 
 | ||||||
| print("{0} bots found in json".format(len(players))) | print("{0} bots found in json".format(len(players))) | ||||||
| 
 | 
 | ||||||
|  | mergefilequery = None | ||||||
|  | path = None | ||||||
|  | mergeplayers = [] | ||||||
|  | 
 | ||||||
|  | while mergefilequery not in ("y", "n"): | ||||||
|  |     mergefilequery = input("Would you like to merge your current voice_ban.dt file with the bots list? [y/n]: ") | ||||||
|  |     if mergefilequery.lower() == "y": | ||||||
|  |         while True: | ||||||
|  |             path = input("Please specify the file path to your voice_ban.dt file: ") | ||||||
|  |             if os.path.isfile(path): | ||||||
|  |                 break | ||||||
|  | 
 | ||||||
|  |         with open(path, "r") as mergefile: | ||||||
|  |             filestr = mergefile.read() | ||||||
|  |             for player in re.finditer(steamid3_regex, filestr): | ||||||
|  |                 mergeplayers.append(player.group(1)) | ||||||
|  | 
 | ||||||
|  |         print("Found {0} players in the provided file, adding them to the final muted players list.".format(len(mergeplayers))) | ||||||
|  | 
 | ||||||
|  |         players += mergeplayers #add the user-provided mutes to the grabbed player mutes | ||||||
|  |     elif mergefilequery.lower() == "n": | ||||||
|  |         print("Skipping merge step...") | ||||||
|  | 
 | ||||||
|  | dupe_number = len(players) - len(set(players)) #get number of duplicates | ||||||
|  | players = set(players) #remove duplicates in case of merging | ||||||
|  | 
 | ||||||
| players_as_string = "\x01\0\0\0" + '\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0'.join(players) + '\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0' #this is how the voice_ban.dt file is patterned | players_as_string = "\x01\0\0\0" + '\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0'.join(players) + '\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0' #this is how the voice_ban.dt file is patterned | ||||||
| 
 | 
 | ||||||
| writetofile = "" | print("{0} muted players in total. Removed {1} duplicates.".format(len(players), dupe_number)) | ||||||
| 
 | 
 | ||||||
| def AskToWriteFile(): | writetofile = None | ||||||
|     global writetofile |  | ||||||
|     writetofile = input("List of players has been successfully found. Write the muted bots to a new voice_ban.dt file? [y/n]: ") |  | ||||||
| 
 | 
 | ||||||
| AskToWriteFile() | while writetofile not in ("y", "n"): | ||||||
|  |     writetofile = input("Write the muted bots to a new voice_ban.dt file? [y/n]: ") | ||||||
|  |     if writetofile.lower() == "y": | ||||||
|  |         with open("voice_ban.dt", "w") as file: #write muted players | ||||||
|  |             file.seek(0) #go to beginning of the file | ||||||
|  |             file.write(players_as_string) #write muted players | ||||||
|  |             file.truncate() | ||||||
| 
 | 
 | ||||||
| if writetofile.lower() == "y": #create the file if the user says yes |         print("Wrote players to {0}\\voice_ban.dt".format(cwd)) | ||||||
|     with open("voice_ban.dt", "w") as file: #write muted players |     elif writetofile.lower() == "n": | ||||||
|         file.seek(0) #go to beginning of the file |         print("Exitting...") | ||||||
|         file.write(players_as_string) #write muted players |  | ||||||
|         file.truncate() |  | ||||||
| 
 | 
 | ||||||
|     print("Wrote players to {0}\\voice_ban.dt".format(cwd)) |  | ||||||
| elif writetofile.lower() == "n": #exit the program if the user says no |  | ||||||
|     print("Exitting...") |  | ||||||
| else: |  | ||||||
|     AskToWriteFile() |  | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Chev
						Chev