50 lines
2.2 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|