mirror of
https://github.com/MCMi460/3DS-RPC.git
synced 2025-06-18 13:35:34 -04:00
Rename column variables to be unambiguous
This commit is contained in:
parent
fc327b71a3
commit
5d3a07b4c5
@ -70,10 +70,10 @@ class Discord(Base):
|
||||
__tablename__ = "discord"
|
||||
|
||||
id: Mapped[int] = mapped_column("id", primary_key=True, nullable=False, unique=True)
|
||||
refresh: Mapped[str] = mapped_column("refresh", nullable=False)
|
||||
bearer: Mapped[str] = mapped_column("bearer", nullable=False)
|
||||
session: Mapped[str] = mapped_column("session")
|
||||
token: Mapped[str] = mapped_column("token", unique=True)
|
||||
refresh_token: Mapped[str] = mapped_column("refresh", nullable=False)
|
||||
bearer_token: Mapped[str] = mapped_column("bearer", nullable=False)
|
||||
rpc_session_token: Mapped[str] = mapped_column("session")
|
||||
site_session_token: Mapped[str] = mapped_column("token", unique=True)
|
||||
last_accessed: Mapped[int] = mapped_column("last_accessed", nullable=False)
|
||||
generation_date: Mapped[int] = mapped_column("generation_date", nullable=False)
|
||||
show_profile_button: Mapped[bool] = mapped_column("show_profile_button", nullable=False, default=True)
|
||||
|
@ -41,25 +41,26 @@ class DiscordSession():
|
||||
def retire(self, refresh):
|
||||
session.execute(
|
||||
update(DiscordTable)
|
||||
.where(DiscordTable.refresh == refresh)
|
||||
.values(session='')
|
||||
.where(DiscordTable.refresh_token == refresh)
|
||||
.values(rpc_session_token='')
|
||||
)
|
||||
session.commit()
|
||||
|
||||
def create(self, refresh, discord_session):
|
||||
def create(self, refresh_token: str, session_token: str):
|
||||
session.execute(
|
||||
update(DiscordTable)
|
||||
.where(DiscordTable.refresh == refresh)
|
||||
.values(session=discord_session)
|
||||
.where(DiscordTable.refresh_token == refresh_token)
|
||||
.values(rpc_session_token=session_token)
|
||||
)
|
||||
session.commit()
|
||||
return discord_session
|
||||
|
||||
def update(self, discord_session):
|
||||
def update(self, session_token: str):
|
||||
session.execute(
|
||||
update(DiscordTable)
|
||||
.where(DiscordTable.last_accessed == time.time())
|
||||
.values(session=discord_session)
|
||||
.where(DiscordTable.rpc_session_token == session_token)
|
||||
.values(
|
||||
last_accessed=time.time(),
|
||||
)
|
||||
)
|
||||
session.commit()
|
||||
|
||||
@ -68,7 +69,7 @@ class Discord():
|
||||
def update_presence(self, current_user: DiscordTable, user_data: UserData, network: NetworkType):
|
||||
last_accessed = user_data.last_accessed
|
||||
if time.time() - last_accessed >= 1000:
|
||||
DiscordSession().retire(current_user.refresh)
|
||||
DiscordSession().retire(current_user.refresh_token)
|
||||
elif time.time() - last_accessed <= 30:
|
||||
print('[MANUAL RATE LIMITED]')
|
||||
return False
|
||||
@ -110,11 +111,11 @@ class Discord():
|
||||
|
||||
data['activities'][0]['assets']['small_image'] = user_data.mii_urls['face']
|
||||
data['activities'][0]['assets']['small_text'] = small_text_detail
|
||||
if discord_user.session:
|
||||
data['token'] = discord_user.session
|
||||
if discord_user.rpc_session_token:
|
||||
data['token'] = discord_user.rpc_session_token
|
||||
|
||||
headers = {
|
||||
'Authorization': 'Bearer %s' % current_user.bearer,
|
||||
'Authorization': 'Bearer %s' % current_user.bearer_token,
|
||||
'Content-Type': 'application/json',
|
||||
}
|
||||
# Truncate any text exceeding the maximum field limit, 128 characters.
|
||||
@ -127,30 +128,30 @@ class Discord():
|
||||
r.raise_for_status()
|
||||
|
||||
response = r.json()
|
||||
DiscordSession().create(current_user.refresh, response['token'])
|
||||
DiscordSession().create(current_user.refresh_token, response['token'])
|
||||
DiscordSession().update(response['token'])
|
||||
return True
|
||||
|
||||
def reset_presence(self, current_user: DiscordTable):
|
||||
if not current_user.session:
|
||||
if not current_user.rpc_session_token:
|
||||
print('[NO SESSION TO RESET]')
|
||||
return False
|
||||
elif time.time() - current_user.last_accessed <= 30:
|
||||
print('[MANUAL RATE LIMITED]')
|
||||
return False
|
||||
DiscordSession().update(current_user.session)
|
||||
DiscordSession().update(current_user.rpc_session_token)
|
||||
headers = {
|
||||
'Authorization': 'Bearer %s' % current_user.bearer,
|
||||
'Authorization': 'Bearer %s' % current_user.bearer_token,
|
||||
'Content-Type': 'application/json',
|
||||
}
|
||||
data = {
|
||||
'token': current_user.session,
|
||||
'token': current_user.rpc_session_token,
|
||||
}
|
||||
r = requests.post('%s/users/@me/headless-sessions/delete' % API_ENDPOINT, data=json.dumps(data), headers=headers)
|
||||
r.raise_for_status()
|
||||
|
||||
# Reset session
|
||||
DiscordSession().create(current_user.refresh, '')
|
||||
DiscordSession().create(current_user.rpc_session_token, '')
|
||||
return True
|
||||
|
||||
def refresh_bearer(self, refresh: str, access: str, generation_date: int, user_id: int):
|
||||
@ -173,10 +174,10 @@ class Discord():
|
||||
|
||||
session.execute(
|
||||
update(DiscordTable)
|
||||
.where(DiscordTable.refresh == refresh)
|
||||
.where(DiscordTable.refresh_token == refresh)
|
||||
.values(
|
||||
refresh=response['refresh_token'],
|
||||
bearer=response['access_token'],
|
||||
refresh_token=response['refresh_token'],
|
||||
bearer_token=response['access_token'],
|
||||
generation_date=time.time()
|
||||
)
|
||||
)
|
||||
@ -200,7 +201,7 @@ while True:
|
||||
group = session.scalars(select(DiscordTable)).all()
|
||||
for dn in group:
|
||||
try:
|
||||
if discord.refresh_bearer(dn.refresh, dn.bearer, dn.generation_date, dn.id):
|
||||
if discord.refresh_bearer(dn.refresh_token, dn.bearer_token, dn.generation_date, dn.id):
|
||||
time.sleep(delay * 2)
|
||||
except HTTPError:
|
||||
discord.delete_discord_user(dn.id)
|
||||
|
@ -158,7 +158,7 @@ def refreshBearer(token:str):
|
||||
'client_id': '%s' % CLIENT_ID,
|
||||
'client_secret': '%s' % CLIENT_SECRET,
|
||||
'grant_type': 'refresh_token',
|
||||
'refresh_token': user.refresh,
|
||||
'refresh_token': user.refresh_token,
|
||||
}
|
||||
headers = {
|
||||
'Content-Type': 'application/x-www-form-urlencoded',
|
||||
@ -168,13 +168,13 @@ def refreshBearer(token:str):
|
||||
token, user, pfp = createDiscordUser('', r.json())
|
||||
return token, user, pfp
|
||||
|
||||
def tokenFromID(ID:int):
|
||||
def tokenFromID(ID:int) -> str:
|
||||
stmt = select(Discord).where(Discord.id == ID)
|
||||
result = db.session.scalar(stmt)
|
||||
return result.token
|
||||
return result.site_session_token
|
||||
|
||||
def userFromToken(token:str):
|
||||
stmt = select(Discord).where(Discord.token == token)
|
||||
def userFromToken(token: str) -> Discord:
|
||||
stmt = select(Discord).where(Discord.site_session_token == token)
|
||||
result = db.session.scalar(stmt)
|
||||
if not result:
|
||||
raise Exception('invalid token!')
|
||||
@ -198,10 +198,10 @@ def createDiscordUser(code:str, response:dict = None):
|
||||
raise Exception('UNIQUE constraint failed: discord.id')
|
||||
db.session.add(Discord(
|
||||
id=user['id'],
|
||||
refresh=response['refresh_token'],
|
||||
bearer=response['access_token'],
|
||||
session='',
|
||||
token=token,
|
||||
refresh_token=response['refresh_token'],
|
||||
bearer_token=response['access_token'],
|
||||
rpc_session_token='',
|
||||
site_session_token=token,
|
||||
last_accessed=0,
|
||||
generation_date=time.time()
|
||||
))
|
||||
@ -211,10 +211,10 @@ def createDiscordUser(code:str, response:dict = None):
|
||||
old_token = tokenFromID(user['id'])
|
||||
|
||||
discord_user = userFromToken(old_token)
|
||||
discord_user.refresh = response['refresh_token']
|
||||
discord_user.bearer = response['access_token']
|
||||
discord_user.refresh_token = response['refresh_token']
|
||||
discord_user.bearer_token = response['access_token']
|
||||
discord_user.generation_date = time.time()
|
||||
discord_user.token = token
|
||||
discord_user.site_session_token = token
|
||||
|
||||
db.session.commit()
|
||||
return token, user['username'], ('https://cdn.discordapp.com/avatars/%s/%s.%s' % (user['id'], user['avatar'], 'gif' if user['avatar'].startswith('a_') else 'png') if user['avatar'] else '')
|
||||
@ -402,7 +402,7 @@ def settings():
|
||||
}
|
||||
data = sidenav()
|
||||
try:
|
||||
stmt = select(Discord).where(Discord.token == request.cookies['token'])
|
||||
stmt = select(Discord).where(Discord.site_session_token == request.cookies['token'])
|
||||
result = db.session.scalar(stmt)
|
||||
except Exception as e:
|
||||
if 'invalid token' in str(e):
|
||||
@ -781,7 +781,7 @@ def settingsToggler(which:str):
|
||||
try:
|
||||
db.session.execute(
|
||||
update(Discord)
|
||||
.where(Discord.token == request.cookies['token'])
|
||||
.where(Discord.site_session_token == request.cookies['token'])
|
||||
.values({getattr(Discord, which): toggle})
|
||||
)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user