Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python3
- from steam.webapi import WebAPI
- import ts3
- import pymysql.cursors
- ts3_query_user = "serveradmin"
- ts3_query_password = ""
- database_server_address = "localhost"
- database_server_user = "teamspeaksteam"
- database_server_password = "lol"
- # Let's open a ts3 query connection
- with ts3.query.TS3Connection(database_server_address) as ts3conn:
- try:
- # login using the teamspeak query credentials
- ts3conn.login(
- client_login_name=ts3_query_user,
- client_login_password=ts3_query_password,
- )
- # stop the script when an error occuress during authentication
- except ts3.query.TS3QueryError as err:
- print("Login failed:", err.resp.error["msg"])
- exit(1)
- # user session id 1 for the login
- ts3conn.use(sid=1)
- # connecting with the database to lookup the teamspeak id for the steam id
- connection = pymysql.connect(
- host=database_server_address,
- user=database_server_user,
- password=database_server_password,
- db='teamspeaksteam',
- charset='utf8mb4',
- cursorclass=pymysql.cursors.DictCursor
- )
- online_clients = []
- clientlist = ts3conn.clientlist()
- for client in clientlist:
- if client["client_type"] == "0":
- online_clients.append(int(client["client_database_id"]))
- online_clients = str(tuple(online_clients))
- print(online_clients)
- try:
- with connection.cursor() as cursor:
- # Read a single record
- sql = "SELECT `SteamID`, `TeamspeakID` FROM `Links` WHERE `TeamspeakID` in " + online_clients
- cursor.execute(sql)
- result = cursor.fetchall()
- print(result)
- finally:
- connection.close()
- api = WebAPI("")
- steamids = ""
- for item in result:
- steamids += item["SteamID"] + ","
- response = api.ISteamUser.GetPlayerSummaries(steamids=steamids[:-1])["response"]
- for player in response["players"]:
- # if "spielt: " not in ts3conn.clientinfo
- for item in result:
- if item["SteamID"] == player["steamid"]:
- for client in clientlist:
- if int(item["TeamspeakID"]) == int(client["client_database_id"]):
- # ts3conn.clientpoke(clid=client["clid"], msg=player.get("gameextrainfo"))
- group_exists = False
- game = str("spielt: " + str(player.get("gameextrainfo")))
- if game == "spielt: PLAYERUNKNOWN'S BATTLEGROUNDS":
- game = "spielt: PUBG"
- game = game[:119]
- print(game)
- for group in list(ts3conn.servergrouplist()):
- if "spielt: " in group["name"]:
- if game == group["name"] and len(game) >= len("spielt: "):
- print("adding:" + game)
- try:
- ts3conn.servergroupaddclient(sgid=group["sgid"], cldbid=int(client["client_database_id"]))
- ts3conn.servergroupaddperm(sgid=group["sgid"], permid=149, permvalue=2, permnegated=0, permskip=0)
- except:
- pass
- group_exists = True
- else:
- print(group)
- print(client)
- ts3conn.servergroupaddperm(sgid=group["sgid"], permid=149, permvalue=2, permnegated=0, permskip=0)
- try:
- ts3conn.servergroupdelclient(sgid=group["sgid"], cldbid=int(client["client_database_id"]))
- except:
- pass
- if (not group_exists) and player.get("gameextrainfo"):
- print(group_exists)
- print(player["gameextrainfo"])
- print(game)
- ts3conn.servergroupadd(name=game)
- ts3conn.servergroupaddperm(sgid=group["sgid"], permid=149, permvalue=2, permnegated=0, permskip=0)
- for group in list(ts3conn.servergrouplist()):
- if "spielt: " in group["name"]:
- if "spielt: " + str(player.get("gameextrainfo")) == group["name"]:
- ts3conn.servergroupaddperm(sgid=group["sgid"], permid=149, permvalue=2, permnegated=0, permskip=0)
- print("adding:" + player.get("gameextrainfo"))
- try:
- ts3conn.servergroupaddclient(sgid=group["sgid"], cldbid=int(client["client_database_id"]))
- except:
- pass
- group_exists = True
- else:
- try:
- ts3conn.servergroupdelclient(sgid=group["sgid"], cldbid=int(client["client_database_id"]))
- except:
- pass
- # print(player["steamid"], player["gameextrainfo"])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement