Created
September 28, 2019 19:19
-
-
Save kevinlekiller/40c94d87321c64547c9e5a4b629718d9 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
local http = require("socket.http") | |
require("TamrielTradeCentre") | |
if not TamrielTradeCentreVars["Default"] then | |
return | |
end | |
local serverEU = false | |
local gf = io.open("guilds.lua", "rb") | |
local guilds | |
if gf then | |
gf:close() | |
require("guilds") | |
else | |
guilds = {["EUData"] = {}, ["NAData"] = {}} | |
end | |
function mkJson(guild, time, kiosk, entries) | |
local ret = "[" | |
for number, entry in pairs(entries) do | |
ret = ret .. '{"DiscoverUnixTime":' .. time .. ',"GuildKioskLocationID":' .. kiosk .. ',"GuildName":"' .. guild .. '","TradeAsset":{"Amount":' | |
ret = ret .. entry["Amount"] .. ',"Item":{' | |
if entry["Category2IDOverWrite"] ~= nil then | |
ret = ret .. '"Category2IDOverWrite":' .. entry["Category2IDOverWrite"] .. ',' | |
end | |
if entry["ID"] ~= nil then | |
ret = ret .. '"ID":' .. entry["ID"] .. ',' | |
end | |
if entry["ItemLink"] ~= nil then | |
ret = ret .. '"ItemLink":"' .. entry["ItemLink"] .. '",' | |
end | |
if entry["Level"] ~= nil then | |
ret = ret .. '"LevelTotal":' .. entry["Level"] .. ',' | |
end | |
if entry["MasterWritInfo"] ~= nil then | |
ret = ret .. '"MasterWritInfo":{' | |
for key, value in pairs(entry["MasterWritInfo"]) do | |
ret = ret .. '"' .. key .. '":' | |
if tonumber(value) == nil then | |
ret = ret .. '"' .. value .. '",' | |
else | |
ret = ret .. value .. ',' | |
end | |
end | |
ret = string.gsub(ret, ',$', '') | |
ret = ret .. '},' | |
end | |
if entry["QualityID"] ~= nil then | |
ret = ret .. '"QualityID":' .. entry["QualityID"] .. ',' | |
end | |
if entry["TraitID"] ~= nil then | |
ret = ret .. '"TraitID":' .. entry["TraitID"] .. ',' | |
end | |
if entry["UID"] ~= nil then | |
ret = ret .. '"UID":' .. entry["UID"] .. ',' | |
end | |
ret = string.gsub(ret, ',$', '') | |
ret = ret .. '},"TotalPrice":' .. entry["TotalPrice"] .. '}},' | |
end | |
ret = string.gsub(ret, ',$', '') | |
ret = ret .. ']' | |
return ret | |
end | |
function postJson(json, server) | |
if server == "EUData" then | |
server = "eu" | |
else | |
server = "us" | |
end | |
local resp = {} | |
response, code, headers = http.request { | |
method = "POST", | |
url = "https://" .. server .. ".tamrieltradecentre.com/api/PC/Trade/PostTrade", | |
headers = { | |
["Accept"] = "*/*"; | |
["Accept-Encoding"] = "gzip, deflate, br"; | |
["Accept-Language"] = "en-US,en;q=0.5"; | |
["Connection"] = "keep-alive"; | |
["Content-Type"] = "application/json; charset=UTF-8"; | |
["Content-Length"] = #json; | |
["DNT"] = "1"; | |
["Host"] = server .. ".tamrieltradecentre.com"; | |
["Referer"] = "https://us.tamrieltradecentre.com/pc/Trade/WebClient"; | |
["TE"] = "Trailers"; | |
["User-Agent"] = "Mozilla/5.0 (X11; Linux x86_64; rv:69.0) Gecko/20100101 Firefox/69.0"; | |
["WebClientVersion"] = "2.0.0.0"; | |
}, | |
source = ltn12.source.string(json), | |
sink = ltn12.sink.table(resp) | |
} | |
print(response) | |
print(code) | |
if type(headers) == "table" then | |
for k, v in pairs(headers) do | |
print(k, v) | |
end | |
end | |
if type(resp) == "table" then | |
for k, v in pairs(resp) do | |
print(k, v) | |
end | |
end | |
end | |
for username, udata in pairs(TamrielTradeCentreVars["Default"]) do | |
for server, sdata in pairs(udata["$AccountWide"]) do | |
if server == "EUData" or server == "NAData" then | |
if server == "EUData" then | |
serverEU = true | |
elseif server == "NAData" then | |
serverEU = false | |
end | |
for guild, gdata in pairs(sdata["Guilds"]) do | |
if gdata["Entries"][0] ~= nil and tonumber(gdata["KioskLocationID"]) ~= nil then | |
if guilds[server][guild] == nil then | |
guilds[server][guild] = gdata["LastUpdate"] - 1 | |
end | |
if gdata["LastUpdate"] > guilds[server][guild] then | |
local json = mkJson(guild, gdata["LastUpdate"], gdata["KioskLocationID"], gdata["Entries"]) | |
print(json) | |
postJson(json, server) | |
end | |
end | |
end | |
end | |
end | |
end | |
-- TODO - Write "guilds" variable to guilds.lua so the next time this runs it doesn't resend the same info to the API |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment