Esempio n. 1
0
        public void Setup()
        {
            Console.WriteLine("Setting up authentication.");
            Console.WriteLine();
            token = new SsoToken();
            Console.WriteLine("SSO Token object created.");
            Console.WriteLine();
            config = Settings.Config.ConfigOutput();

            Console.WriteLine($"config created.");
            Console.WriteLine($"EsiUrl = {config.Value.EsiUrl}");
            Console.WriteLine($"DataSource = {config.Value.DataSource}");
            Console.WriteLine($"ClientId = {config.Value.ClientId}");
            Console.WriteLine($"SecretKey = {config.Value.SecretKey}");
            Console.WriteLine($"CallbackUrl = {config.Value.CallbackUrl}");
            Console.WriteLine($"UserAgent = {config.Value.UserAgent}");
            Console.WriteLine();

            string stupidlyLongString = "esi-calendar.respond_calendar_events.v1 esi-calendar.read_calendar_events.v1 esi-location.read_location.v1 esi-location.read_ship_type.v1 esi-mail.organize_mail.v1 esi-mail.read_mail.v1 esi-mail.send_mail.v1 esi-skills.read_skills.v1 esi-skills.read_skillqueue.v1 esi-wallet.read_character_wallet.v1 esi-wallet.read_corporation_wallet.v1 esi-search.search_structures.v1 esi-clones.read_clones.v1 esi-characters.read_contacts.v1 esi-universe.read_structures.v1 esi-bookmarks.read_character_bookmarks.v1 esi-killmails.read_killmails.v1 esi-corporations.read_corporation_membership.v1 esi-assets.read_assets.v1 esi-planets.manage_planets.v1 esi-fleets.read_fleet.v1 esi-fleets.write_fleet.v1 esi-ui.open_window.v1 esi-ui.write_waypoint.v1 esi-characters.write_contacts.v1 esi-fittings.read_fittings.v1 esi-fittings.write_fittings.v1 esi-markets.structure_markets.v1 esi-corporations.read_structures.v1 esi-corporations.write_structures.v1 esi-characters.read_loyalty.v1 esi-characters.read_opportunities.v1 esi-characters.read_chat_channels.v1 esi-characters.read_medals.v1 esi-characters.read_standings.v1 esi-characters.read_agents_research.v1 esi-industry.read_character_jobs.v1 esi-markets.read_character_orders.v1 esi-characters.read_blueprints.v1 esi-characters.read_corporation_roles.v1 esi-location.read_online.v1 esi-contracts.read_character_contracts.v1 esi-clones.read_implants.v1 esi-characters.read_fatigue.v1 esi-killmails.read_corporation_killmails.v1 esi-corporations.track_members.v1 esi-wallet.read_corporation_wallets.v1 esi-characters.read_notifications.v1 esi-corporations.read_divisions.v1 esi-corporations.read_contacts.v1 esi-assets.read_corporation_assets.v1 esi-corporations.read_titles.v1 esi-corporations.read_blueprints.v1 esi-bookmarks.read_corporation_bookmarks.v1 esi-contracts.read_corporation_contracts.v1 esi-corporations.read_standings.v1 esi-corporations.read_starbases.v1 esi-industry.read_corporation_jobs.v1 esi-markets.read_corporation_orders.v1 esi-corporations.read_container_logs.v1 esi-industry.read_character_mining.v1 esi-industry.read_corporation_mining.v1 esi-planets.read_customs_offices.v1 esi-corporations.read_facilities.v1 esi-corporations.read_medals.v1 esi-characters.read_titles.v1 esi-alliances.read_contacts.v1 esi-characters.read_fw_stats.v1 esi-corporations.read_fw_stats.v1 esi-characterstats.read.v1";

            Scopes.AddRange(stupidlyLongString.Split(' '));
            Console.WriteLine($"Scopes file loaded. {Scopes.Count} scopes added.");

            _client = new EsiClient(config);
            Console.WriteLine("Created EsiClient object.");
            Console.WriteLine();
        }
        /// <summary>
        /// Invites the pilot to a fleet. If a specific squad is not specified they will be invited to the default squad.
        /// </summary>
        /// <param name="fleetBoss">Fleet Boss explicit cast as AuthorizedCharacterData</param>
        /// <param name="fleetId">Target fleet Id</param>
        /// <param name="squadId">Target squad Id</param>
        /// <param name="pilotId">Invitee Id</param>
        public static async Task <object> FleetInvite(AuthorizedCharacterData fleetBoss, long fleetId, long squadId, long wingId, int pilotId)
        {
            try
            {
                EsiClient x = GetEsiClient();
                x.SetCharacterData(fleetBoss);
                EsiResponse <string> response = await x.Fleets.InviteCharacter(fleetId, pilotId, ESI.NET.Enumerations.FleetRole.SquadMember, wingId, squadId);

                if (response.StatusCode != HttpStatusCode.OK)
                {
                    s_Log.LogError("{0} error search API '{1}': {2}", response.StatusCode, response.Endpoint, response.Message);

                    Exception ex;
                    if (response.Message.Contains("'error_label': 'FleetCandidateOffline', 'error_dict'"))
                    {
                        ex = new Exception("Fleet Candidate Offline");
                    }
                    else
                    {
                        ex = new Exception(response.Message);
                    }

                    throw new Exception("Fleet Invite Failed", ex);
                }

                return(null);
            }
            catch (Exception ex)
            {
                //s_Log.LogError("{0} error searching API '{1}': {2}", FleetMembers_response.StatusCode, FleetMembers_response.Endpoint, FleetMembers_response.Message);
                //throw new Exception(FleetLayout_response.ErrorType().ToString());
                throw new NotImplementedException();
            }
        }
        public static void EnsureInit()
        {
            s_Log = Services.ApplicationLogging.CreateLogger("EsiWrapper");

            if (s_client == null)
            {
                try
                {
                    Env.Load();

                    IOptions <EsiConfig> options = Options.Create <EsiConfig>(new EsiConfig()
                    {
                        EsiUrl      = "https://esi.evetech.net/",
                        DataSource  = DataSource.Tranquility,
                        UserAgent   = "Imperium Incursions Waitlist. Contact Caitlin Viliana",
                        ClientId    = Env.GetString("eve_clientID"),
                        SecretKey   = Env.GetString("eve_clientSecret"),
                        AuthVersion = AuthVersion.v2
                    });

                    s_client = new EsiClient(options);
                }
                catch (Exception err)
                {
                    s_Log.LogError("Error initializing ESI Client: {0}", err.Message);
                }
            }
        }
        public CollectData()
        {
            RunningConfig = Options.Create(new EsiConfig()
            {
                EsiUrl      = "https://esi.evetech.net/latest/",
                DataSource  = DataSource.Tranquility,
                ClientId    = "f5a0a03c5af74f6884a278675ad3411f",
                SecretKey   = "UhjDXz5POW05q18cBSrVgwdNEYzD1fkOlRkTQMb8",
                CallbackUrl = "",
                UserAgent   = ""
            });

            TestingConfig = Options.Create(new EsiConfig()
            {
                EsiUrl      = "https://esi.evetech.net/dev",
                DataSource  = DataSource.Tranquility,
                ClientId    = "f5a0a03c5af74f6884a278675ad3411f",
                SecretKey   = "UhjDXz5POW05q18cBSrVgwdNEYzD1fkOlRkTQMb8",
                CallbackUrl = "",
                UserAgent   = ""
            });

            EsiClient ProdClient = new EsiClient(RunningConfig);
            EsiClient TestClient = new EsiClient(TestingConfig);
        }
        public EVEEsiInformation()
        {
            var currentDir = Directory.GetCurrentDirectory();

            string path = currentDir + "\\credentials.txt";
            IOptions <EsiConfig> config;

            // This text is added only once to the file.
            if (!File.Exists(path))
            {
                // Create a file to write to.
                Console.WriteLine("no file");
                throw new Exception("No Credentials Present");
            }
            else
            {
                string[] lines = System.IO.File.ReadAllLines(path);
                config = Options.Create(new EsiConfig()
                {
                    EsiUrl      = "https://esi.evetech.net/",
                    DataSource  = DataSource.Tranquility,
                    ClientId    = lines[0],
                    SecretKey   = lines[1],
                    CallbackUrl = lines[2],
                    UserAgent   = lines[3]
                });
            }

            client = new EsiClient(config);
        }
 /// <summary>
 /// Opens the Show Info window for a Character, Corporation or Alliance in game.
 /// </summary>
 /// <param name="pilot">Pilot explicit cast as AuthorizedCharacterData</param>
 /// <param name="target_id"></param>
 /// <see cref="Models.Pilot"/>
 /// <seealso cref="AuthorizedCharacterData"/>
 /// <seealso cref="ESI.NET.Models.Character"/>
 /// <seealso cref="ESI.NET.Models.Corporation"/>
 /// <seealso cref="ESI.NET.Models.Alliance"/>
 public static void ShowInfo(AuthorizedCharacterData pilot, int target_id)
 {
     try
     {
         EsiClient x = GetEsiClient();
         x.SetCharacterData(pilot);
         x.UserInterface.Information(target_id);
     }
     catch (Exception ex)
     {
         Console.Beep();
     }
 }
 /// <summary>
 /// Sets a new autopilot destination in game.
 /// </summary>
 /// <param name="pilot">Pilot explicit cast as AuthorizedCharacterData</param>
 /// <param name="system_id">ID of the target solar system.</param>
 /// <see cref="ESI.NET.Models.Universe.SolarSystem"/>
 public static void SetDestination(AuthorizedCharacterData pilot, int system_id)
 {
     try
     {
         EsiClient x = GetEsiClient();
         x.SetCharacterData(pilot);
         x.UserInterface.Waypoint(system_id, true, true);
     }
     catch (Exception ex)
     {
         Console.Beep();
     }
 }
Esempio n. 8
0
        public MapDataLoader()
        {
            IOptions <EsiConfig> config = Options.Create(new EsiConfig()
            {
                EsiUrl      = "https://esi.evetech.net/",
                DataSource  = DataSource.Tranquility,
                ClientId    = "a3c88000c6ac4de5b31f85d1e4db7c11",
                SecretKey   = "n3cLN6yUZ4pgDoxvQ7dMJ6bfMRPdvr3rdFVwKEEO",
                CallbackUrl = "eveauth-app://callback/",
                UserAgent   = "Niedar"
            });

            _esiClient = new EsiClient(config);
        }
        public static async Task <List <ESI.NET.Models.Fleets.Wing> > GetFleetLayout(AuthorizedCharacterData fleetBoss, long fleetId)
        {
            EsiClient x = GetEsiClient();

            x.SetCharacterData(fleetBoss);
            EsiResponse <List <ESI.NET.Models.Fleets.Wing> > FleetLayout_response = await x.Fleets.Wings(fleetId);

            if (FleetLayout_response.StatusCode != HttpStatusCode.OK)
            {
                s_Log.LogError("{0} error search API '{1}': {2}", FleetLayout_response.StatusCode, FleetLayout_response.Endpoint, FleetLayout_response.Message);
                throw new Exception(FleetLayout_response.ErrorType().ToString());
            }

            return(FleetLayout_response.Data);
        }
        /// <summary>
        /// Checks ESI to see if the pilot is online.
        /// </summary>
        /// <param name="pilot">Pilot explicit cast as AuthorizedCharacterData</param>
        /// <returns>Bool</returns>
        public static async Task <bool> IsOnlineAsync(AuthorizedCharacterData pilot)
        {
            EsiClient x = GetEsiClient();

            x.SetCharacterData(pilot);
            EsiResponse <ESI.NET.Models.Location.Activity> Location_response = await x.Location.Online();

            if (Location_response.StatusCode != HttpStatusCode.OK)
            {
                s_Log.LogError("{0} error searching API '{1}': {2}", Location_response.StatusCode, Location_response.Endpoint, Location_response.Message);
                return(true);
            }

            return(Location_response.Data.Online);
        }
        public static async Task <ESI.NET.Models.Location.Location> GetSystem(AuthorizedCharacterData pilot)
        {
            EsiClient x = GetEsiClient();

            x.SetCharacterData(pilot);
            EsiResponse <ESI.NET.Models.Location.Location> Location_response = await x.Location.Location();

            if (Location_response.StatusCode != HttpStatusCode.OK)
            {
                s_Log.LogError("{0} error searching API '{1}': {2}", Location_response.StatusCode, Location_response.Endpoint, Location_response.Message);
                return(null);
            }


            return(Location_response.Data);
        }
        public static async Task <List <ESI.NET.Models.Fleets.Member> > GetFleetMembers(AuthorizedCharacterData pilot, long fleet_id)
        {
            EsiClient esi = GetEsiClient();

            esi.SetCharacterData(pilot);

            EsiResponse <System.Collections.Generic.List <ESI.NET.Models.Fleets.Member> > FleetMembers_response = await esi.Fleets.Members(fleet_id);

            if (FleetMembers_response.StatusCode != HttpStatusCode.OK)
            {
                s_Log.LogError("{0} error searching API '{1}': {2}", FleetMembers_response.StatusCode, FleetMembers_response.Endpoint, FleetMembers_response.Message);
                throw new Exception(FleetMembers_response.ErrorType().ToString());
            }

            return(FleetMembers_response.Data);
        }
Esempio n. 13
0
        public DiscordBot(string discordAuthToken, string esiClientId, string esiSecretKey, string approvedDiscordUsers, string mailingListName, string channelToWatch)
        {
            _discordAuthToken     = discordAuthToken;
            _approvedDiscordUsers = approvedDiscordUsers;
            _mailingListName      = mailingListName;
            _channelToWatch       = channelToWatch;

            IOptions <EsiConfig> config = Options.Create(new EsiConfig()
            {
                EsiUrl      = "https://esi.evetech.net/",
                DataSource  = DataSource.Tranquility,
                ClientId    = esiClientId,
                SecretKey   = esiSecretKey,
                CallbackUrl = "http://localhost:12847",
                UserAgent   = "Warp To Me Incursions"
            });

            _esiClient = new EsiClient(config);
        }
Esempio n. 14
0
        public static void Main(string[] args)
        {
            //TODO create key for data and use password to decrypt key
            Console.WriteLine("Enter password:"******"salt"));

            var config = new Config();

            if (File.Exists("config"))
            {
                config = JsonConvert.DeserializeObject <Config>(configEncryptor.DecryptFromBytes(File.ReadAllBytes("config")));
            }
            else
            {
                Console.WriteLine("Enter Discord token:");
                config.DiscordToken = Console.ReadLine();
                Console.WriteLine("Enter EVE client ID:");
                config.EveClientId = Console.ReadLine();
                Console.WriteLine("Enter EVE client secret:");
                config.EveSecret = Console.ReadLine();

                File.WriteAllBytes("config", configEncryptor.EncryptToBytes(JsonConvert.SerializeObject(config)));
            }
            Console.Clear();

            EveClient  = new EsiClient(config.EveClientId, config.EveSecret, new ProductInfoHeaderValue("OIBot", "1.0"));
            ZKill      = new ZKillboardClient();
            Evepraisal = new EvepraisalClient();

            RunBot(config.DiscordToken).ConfigureAwait(false);

            var host = new WebHostBuilder()
                       .UseKestrel()
                       .UseContentRoot(Directory.GetCurrentDirectory())
                       .UseIISIntegration()
                       .UseStartup <Startup>()
                       .UseApplicationInsights()
                       .UseUrls("http://jimmacle.com:80")
                       .Build();

            host.Run();
        }
Esempio n. 15
0
        public EsiData(MainForm mainform)
        {
            SecOptions o = SecOptions.getInstance();

            o.readKey();

            IOptions <EsiConfig> config = Options.Create(new EsiConfig()
            {
                EsiUrl      = "https://esi.tech.ccp.is/",
                DataSource  = DataSource.Tranquility,
                ClientId    = o.m_clientId,
                SecretKey   = o.m_secretKey,
                CallbackUrl = "eveauth-eveclip://callback/",
                UserAgent   = "Name: Che Silas"
            });

            m_client       = new EsiClient(config);
            m_authCharData = null;
            m_mainForm     = mainform;
            InitAuth();
        }
Esempio n. 16
0
 public ProfileSettings(ref MainSettings mainSettings)
 {
     MainSettings = mainSettings;
     mainSettings.CheckInternetAccess();
     CheckForScopesFile();
     if (File.Exists(MainSettings.DataDirectory + ProfileName + $"\\{ProfileName}.json"))
     {
         Console.WriteLine();
         using (StreamReader myReader = new StreamReader(MainSettings.DataDirectory + ProfileName + $"\\{ProfileName}.json"))
         {
             ProfileSettings newFile = new ProfileSettings();
             MainSettings.jsonReader = new JsonTextReader(myReader);
             newFile           = MainSettings.serializer.Deserialize <ProfileSettings>(MainSettings.jsonReader);
             AuthorisationData = newFile.AuthorisationData;
             Config            = newFile.Config;
             LoadedFromFile    = true;
         }
     }
     else
     {
         if (File.Exists("config.txt"))
         {
             using (StreamReader myReader = new StreamReader("config.txt"))
             {
                 MainSettings.jsonReader = new JsonTextReader(myReader);
                 Config = MainSettings.serializer.Deserialize <ConfigClass>(MainSettings.jsonReader);
                 Console.WriteLine("Config settings imported.");
                 Console.WriteLine();
             }
         }
         else
         {
             GetConfigDataFromUser();
         }
     }
     EsiClient = new EsiClient(Config.ConfigOutput());
 }
Esempio n. 17
0
        public static void EnsureInit()
        {
            if (s_client == null)
            {
                try
                {
                    IOptions <EsiConfig> options = Options.Create <EsiConfig>(new EsiConfig()
                    {
                        EsiUrl     = "https://esi.evetech.net/",
                        DataSource = DataSource.Tranquility,
                        UserAgent  = "goons-incursion-jabber-bot"
                    });

                    s_client = new EsiClient(options);

                    LoadUpCachedData();
                }
                catch (Exception ex)
                {
                    Console.WriteLine("[Fatal] Exception Configuring ESI Client. Exception: {0}", ex);
                    Environment.Exit(1);
                }
            }
        }
Esempio n. 18
0
        public static async void test()
        {
            IOptions <EsiConfig> config = Options.Create(new EsiConfig()
            {
                EsiUrl      = "https://esi.evetech.net/",
                DataSource  = DataSource.Tranquility,
                ClientId    = "",
                SecretKey   = "",
                CallbackUrl = "",
                UserAgent   = ""
            });

            EsiClient client = new EsiClient(config);



            Console.WriteLine("Test");
            EsiResponse <List <ESI.NET.Models.Universe.ResolvedInfo> > response = client.Universe.Names(new List <long>()
            {
                1590304510,
                99006319,
                20000006
            }).Result;

            //EsiResponse<long[]> y = client.Universe.Structures().Result;

            //foreach (var f in y.Data)
            //{
            //    Console.WriteLine(f.ToString());
            //}

            EsiResponse <int[]> y = client.Universe.Systems().Result;

            foreach (var f in y.Data)
            {
                //Console.WriteLine(f.ToString());
            }

            int testLong = 30000131;

            EsiResponse <ESI.NET.Models.Universe.SolarSystem> z = client.Universe.System(testLong).Result;

            Console.WriteLine(z.Data.Name);


            EsiResponse <ESI.NET.Models.Universe.IDLookup> a = client.Universe.IDs(new List <string>()
            {
                "Drake Ichosira"
            }).Result;

            Console.WriteLine(a.Data);

            //long testLong = 1033147547575;

            //EsiResponse<ESI.NET.Models.Universe.Structure> z = client.Universe.Structure(testLong).Result;

            //EsiResponse<List<ESI.NET.Models.Wallet.Transaction>> x =

            Console.WriteLine(response.Data[0].Name);
            Console.WriteLine(response.Data[1].Name);
            Console.WriteLine(response.Data[2].Name);
            Console.WriteLine(z.Data.ToString());
            Console.ReadLine();
        }