예제 #1
0
        public DestinyService(IServiceProvider services)
        {
            // Create new BungieClient
            bungieClient = new BungieClient(apiKey: new BungieApiKey(Environment.GetEnvironmentVariable("NFLBOT_BUNGIETOKEN")));

            // Set Season Date
            currentSeasonStart = Convert.ToDateTime("10.01.2019",
                                                    CultureInfo.InvariantCulture);
        }
예제 #2
0
        static void Main(string[] args)
        {
            _bungieClient = new BungieClient((settings) =>
            {
                settings.IncludeApiKey(args[0]);

                settings.SetDefinitionsLoadingBehaviour(
                    saveToAppMemory: true,
                    tryDownloadMissingDefinitions: true,
                    preferredSource: DefinitionSources.SQLite,
                    retryDownloading: false,
                    DestinyLocales.EN);

                settings.UsePreloadedData("H:\\BungieNetCoreAPIRepository\\Manifests");

                settings.UseVersionControl(
                    keepOldVersions: true,
                    checkUpdates: false,
                    repositoryPath: string.Empty);

                settings.EnableLogging();

                settings.PremapPointers();

                settings.IncludeClientIdAndSecret(clientId: int.Parse(args[1]), clientSecret: args[2]);

                settings.EnableTokenRenewal(refreshRate: 30000);
            });

            var link = BungieClient.Platform.GetAuthorizationLink();

            Console.WriteLine(link);
            Console.Write("State: ");
            var state = Console.ReadLine();

            Console.WriteLine();
            Console.Write("Code: ");
            var code = Console.ReadLine();

            Console.WriteLine();

            BungieClient.Platform.ReceiveCode(state, code);
            BungieClient.Platform.GetAuthorizationToken(code).GetAwaiter().GetResult();

            _bungieClient.LogListener.OnNewMessage += (mes) => Console.WriteLine(mes);
            MainAsync().GetAwaiter().GetResult();
        }
예제 #3
0
 public BungieService(IServiceProvider services)
 {
     _client = new BungieClient(
         new BungieClientSettings()
     {
         UseExistingConfig  = true,
         ExistingConfigPath = "BungieConfig.json"
     });
     //Client = new BungieClient(
     //    apiKey: Core.Configuration.GetSection("BungieAPI:ClientKey").Value,
     //    settings: new BungieClientSettings()
     //    {
     //        UseGlobalCache = true,
     //        PathToLocalDb = @"H:\BungieNetCoreAPIRepository\ManifestDB_14.12.2020",
     //        Locales = new string[] { "en", "ru" }
     //    });
 }
예제 #4
0
        void IModule.Install(ModuleManager manager)
        {
            _manager = manager;
            _client  = manager.Client;
            try {
                _bungie = new BungieClient(GlobalSettings.Bungie.ApiKey);
            } catch {
                Console.WriteLine("Couldn't create client for Bungie API. Did you forget to provide an API key?");
                return;
            }

            manager.CreateCommands(String.Empty, group => {
                group.CreateGroup("destiny", g => {
                    g.CreateCommand("search")
                    .Description("Searches for and returns a given Gamertag or PSN ID's Destiny Membership ID.")
                    .Parameter("platform")
                    .Parameter("displayName")
                    .Do(SearchDestinyPlayer);
                    g.CreateCommand("characters")
                    .Alias(new string[] { "chars", "overview" })
                    .Description("Shows an overview of a given player's Destiny characters and some other info.")
                    .Parameter("platform")
                    .Parameter("displayName")
                    .Do(CharacterOverview);
                    g.CreateCommand("activity")
                    .Description("Shows a player's 3 latest activities.")
                    .Parameter("platform")
                    .Parameter("displayName")
                    .Do(LatestActivities);
                    g.CreateCommand("pgcr")
                    .Description("Fetches and shows the Post Game Carnage Report for a given Instance ID.")
                    .Parameter("instance ID")
                    .Do(PostGameCarnageReport);
                });
            });
        }
예제 #5
0
 public HomeController()
 {
     _BungieClient = new BungieClient();
 }
        public static void Main(string[] args)
        {
            string[] contentIds;
            
            var config = Newtonsoft.Json.JsonConvert.DeserializeObject<Config>(File.ReadAllText("config.json"));

            using (var cli = new BungieClient(config.BungieApiKey))
            {
                contentIds = cli.GetAllNews("Destiny", "en").Result
                    .Where(x => x.properties.Title.StartsWith("Bungie Weekly Update"))
                    .Select(x => x.contentId)
                    .ToArray();
            }

            var reddit = new Reddit();
            var me = reddit.LogIn(config.RedditUser, config.RedditPassword);

            using (var outStream = File.OpenWrite("results.csv"))
            {
                using (var writer = new StreamWriter(outStream))
                {
                    foreach (var aid in contentIds)
                    {
                        var misses = 0;
                        
                        foreach (var post in reddit.Search<Post>($"selftext:aid={aid} self:yes subreddit:DestinyTheGame", sortE: Sorting.Top))
                        {
                            Console.Write(".");
                            
                            if (++misses == 10)
                                return;

                            try
                            {
                                if (!post.IsSelfPost || (post.Title.IndexOf("Bungie Weekly Update", StringComparison.OrdinalIgnoreCase) == -1 && post.Title.IndexOf("Destiny Update", StringComparison.OrdinalIgnoreCase) == -1))
                                    continue;
                            }
                            catch (WebException ex) when ((ex.Response as HttpWebResponse)?.StatusCode == HttpStatusCode.NotFound)
                            {
                                continue;
                            }

                            var scores = new List<double>();

                            foreach (var comment in post.GetCommentsRecursive())
                            {
                                if (string.IsNullOrEmpty(comment.Body))
                                    continue;
                                
                                scores.Add(i4Ds.LanguageToolkit.SentimentAnalyzer.GetSentiment("en", comment.Body));
                            }

                            var line = string.Format("{0:yyyy/MM/dd},{1}", post.CreatedUTC, scores.Average());

                            writer.WriteLine(line);

                            Console.WriteLine();
                            Console.WriteLine(line);

                            break;
                        }
                    }
                }
            }
        }