From a1470e562bb4ba4cdfd59aab21f4c1fb641ccc19 Mon Sep 17 00:00:00 2001 From: 9382 Date: Mon, 13 Mar 2023 16:24:30 +0000 Subject: [PATCH] Fix "Last Online" status grabbing --- src/modules/commands/user.lua | 17 +++++++++-------- src/modules/strafes_net.lua | 10 +++++++--- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/src/modules/commands/user.lua b/src/modules/commands/user.lua index 01f96e6..37cf2a1 100644 --- a/src/modules/commands/user.lua +++ b/src/modules/commands/user.lua @@ -58,12 +58,13 @@ commands:Add('user',{},'user ', function(t) local name = user_info.name local displayName = user_info.displayName - -- local onlineStatus_info = API:GetUserOnlineStatus(id) - - -- local LastLocation = onlineStatus_info.LastLocation - -- table.foreach(onlineStatus_info.errors[1],print) - -- local LastOnline = date.fromISO(onlineStatus_info.LastOnline):toSeconds()+(3600*5) - + local onlineStatus_info = API:GetUserOnlineStatus(id) + table.foreach(onlineStatus_info,print) + + local LastLocation = onlineStatus_info.lastLocation + if onlineStatus_info.userPresenceType==2 then LastLocation="Ingame" end + local LastOnline = date.fromISO(onlineStatus_info.lastOnline):toSeconds()+(3600*5) + local badgeRequest = API:GetBadgesAwardedDates(id,Badges) local badgeData = badgeRequest.data @@ -91,8 +92,8 @@ commands:Add('user',{},'user ', function(t) {name='ID',value=id,inline=true}, {name='Account Age',value=accountAge..' days',inline=true}, {name='Created',value='',inline=true}, - -- {name='Last Online',value='',inline=true}, - -- {name='Last Location',value=LastLocation,inline=true}, + {name='Last Online',value='',inline=true}, + {name='Last Location',value=LastLocation,inline=true}, {name='Banned',value=isBanned,inline=true}, {name='Description',value=description,inline=false}, } diff --git a/src/modules/strafes_net.lua b/src/modules/strafes_net.lua index 775c86e..9cbdbbc 100644 --- a/src/modules/strafes_net.lua +++ b/src/modules/strafes_net.lua @@ -7,6 +7,7 @@ local FIVEMAN_API_URL = 'https://api.fiveman1.net/v1/' local ROBLOX_API_URL = 'https://users.roblox.com/v1/' local ROBLOX_API_URL2 = 'https://api.roblox.com/' local ROBLOX_BADGES_API = 'https://badges.roblox.com/v1/' +local ROBLOX_PRESENCE_URL = 'https://presence.roblox.com/v1/' local ROBLOX_THUMBNAIL_URL = 'https://thumbnails.roblox.com/v1/' local ROBLOX_GROUPS_ROLES_URL = 'https://groups.roblox.com/v2/users/%s/groups/roles' @@ -91,6 +92,7 @@ function formatTime(time) -- chatgpt THIS IS FOR SECONDS! NOT MILLISECONDS return string.format("%02d:%02d.%03d", minutes, seconds, milliseconds) end end +function L1Copy(t,b) b=b or {} for x,y in next,t do b[x]=y end return b end -- [[ STRAFESNET API ]] -- @@ -274,10 +276,12 @@ function API:GetRobloxInfoFromDiscordId(DISCORD_ID) return response2 end -function API:GetUserOnlineStatus(USER_ID) -- https://api.roblox.com/users/1455906620/onlinestatus +function API:GetUserOnlineStatus(USER_ID) if not USER_ID then return 'empty id' end - local response,headers = http_request('GET', ROBLOX_API_URL2..'users/'..USER_ID..'/onlinestatus', API_HEADER) - return response,headers + local response1 = http_request('POST', ROBLOX_PRESENCE_URL..'presence/users', API_HEADER, {userIds={USER_ID}}).userPresences[1] --For LastLocation + local response2 = http_request('POST', ROBLOX_PRESENCE_URL..'presence/last-online', API_HEADER, {userIds={USER_ID}}).lastOnlineTimestamps[1] --For a more accurate LastOnline + L1Copy(response2, response1) + return response1 end function API:GetBadgesAwardedDates(USER_ID,BADGE_LIST)