EFTCheatPVE/stoopid.raw/PullQuestIDs.cs

50 lines
2.2 KiB
C#

using System;
using System.IO;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using EFT.UI;
using Newtonsoft.Json;
using UnityEngine;
public class PullQuestIDs : MonoBehaviour
{
private async void Start()
{
ConsoleScreen.Log("Fetching Quest IDs");
await FetchAndSaveDataAsync();
ConsoleScreen.Log("Fetching Quest IDs Completed");
}
private async Task FetchAndSaveDataAsync()
{
var value = new { new
{
query = "query Tasks \n {\n tasks(lang: en, gameMode: pve) \n {\n trader {\n name\n }\n name\n id\n experience\n factionName\n kappaRequired\n lightkeeperRequired\n minPlayerLevel\n objectives {\n type\n description\n }\n restartable\n }\n }"
}.query };
string text = Path.Combine(Application.persistentDataPath);
Directory.CreateDirectory(text);
string filePath = Path.Combine(text, "QuestIDs.Json");
ConsoleScreen.Log("Fetching data from API.");
using HttpClient httpClient = new HttpClient();
_ = 1;
try
{
StringContent content = new StringContent(JsonConvert.SerializeObject(value), Encoding.UTF8, "application/json");
ConsoleScreen.Log("Sending request");
HttpResponseMessage httpResponseMessage = await httpClient.PostAsync("https://api.tarkov.dev/graphql", content);
if (!httpResponseMessage.IsSuccessStatusCode)
{
ConsoleScreen.LogError($"API request failed with status code: {httpResponseMessage.StatusCode}");
return;
}
string contents = JsonConvert.SerializeObject(JsonConvert.DeserializeObject(await httpResponseMessage.Content.ReadAsStringAsync()), Formatting.Indented);
File.WriteAllText(filePath, contents);
ConsoleScreen.Log("Response written to: " + filePath);
}
catch (Exception ex)
{
ConsoleScreen.LogError("An error occurred: " + ex.Message);
}
}
}