コード例 #1
0
        public async Task <IHttpActionResult> PostTwitterUser(TwitterUserModel twitterUser)
        {
            var newUser = new TwitterUser
            {
                Name           = twitterUser.Name,
                Description    = "test",
                ImageURL       = "added",
                AddedAt        = DateTime.Now,
                CreatedAt      = DateTime.Now,
                FollowersCount = 1,
                FollowingCount = 1,
                UserName       = twitterUser.UserName
            };

            db.TwitterUsers.Add(
                newUser
                );
            await db.SaveChangesAsync();

            var storageAccount                     = CloudStorageAccount.Parse(ConfigurationManager.ConnectionStrings["AzureWebJobsStorage"].ToString());
            CloudQueueClient queueClient           = storageAccount.CreateCloudQueueClient();
            CloudQueue       thumbnailRequestQueue = queueClient.GetQueueReference("addrequest");

            thumbnailRequestQueue.CreateIfNotExists();
            var queueMessage = new CloudQueueMessage(JsonConvert.SerializeObject(new NewTwitterAddInformation {
                UserId = newUser.Id
            }));
            await thumbnailRequestQueue.AddMessageAsync(queueMessage);

            return(CreatedAtRoute("DefaultApi", new { id = newUser.Id }, twitterUser));
        }
コード例 #2
0
        public ActionResult UserHomepage()
        {
            var twitterInfo = new TwitterUserModel();

            twitterInfo.tweetsPlaces = new List <string>();
            var twitterUser = _userRepository.Find(User.Identity.GetUserName());

            if (twitterUser != null)
            {
                twitterInfo.user = twitterUser;

                //get tweets
                twitterInfo.tweets = _twitterService.GetTweets(twitterUser.ScreenName, twitterUser.AccessToken);
            }
            else
            {
                return(RedirectToAction("RegisterTwitter"));
            }
            return(View(twitterInfo));
        }
コード例 #3
0
        private async void DoWork(object state)
        {
            _logger.LogInformation("===========> TwitterUserData Service - " + DateTime.Now.ToString("dd.MM.yy - hh:mm"));

            //Perform Task Delay
            await Task.Delay(Config.Parameter.UpdateDelay *60 *1000);

            try
            {
                //Get all members from TwitterList - Tweetinvi
                var list = Tweetinvi.TwitterList.GetExistingList(Config.Parameter.ListName, Config.Parameter.ScreenName);
                //var AllMembers = list.GetMembers(5); //Just 5 Records for Debug Reasons
                var AllMembers = list.GetMembers(list.MemberCount);

                using (var db = new LiteDatabase("TwitterData.db"))
                {
                    var mapper = BsonMapper.Global;

                    mapper.Entity <TwitterUserModel>()
                    .Id(y => y.Id);         // set your document ID

                    var col = db.GetCollection <TwitterUserModel>("TwitterUser");


                    //foreach user make the database update
                    foreach (var x in AllMembers)
                    {
                        //Get timeline for screenname from twitter using Tweetinvi
                        //var user = Tweetinvi.User.GetUserFromScreenName(x.ScreenName);

                        //Search for the TweetUser ID
                        var id = col.FindOne(a => a.Id == x.Id);

                        var politicalParty = id.PoliticalParty;

                        if (id == null)
                        {
                            //Create UserModel for User
                            var twitterUser = new TwitterUserModel
                            {
                                Id                      = x.Id,
                                Name                    = x.Name,
                                Screen_name             = x.ScreenName,
                                Description             = x.Description,
                                Created_at              = x.CreatedAt,
                                Location                = x.Location,
                                Geo_enabled             = x.GeoEnabled,
                                Url                     = x.Url,
                                Statuses_count          = x.StatusesCount,
                                Followers_count         = x.FollowersCount,
                                Friends_count           = x.FriendsCount,
                                Verified                = x.Verified,
                                Profile_image_url_https = x.ProfileImageUrlHttps,
                                Favourites_count        = x.FavouritesCount,
                                Listed_count            = x.ListedCount,
                                UserUpdated             = DateTime.Now,
                                PoliticalParty          = "filloutbyhandfornow"
                            };

                            //Create new database entry for given user
                            col.Insert(twitterUser);
                            _logger.LogInformation(">> ...created new dbentry => " + x.ScreenName);
                        }
                        else
                        {
                            if (id.UserUpdated.AddMinutes(Config.Parameter.TwitterUserUpdateInterval) < DateTime.Now)
                            {
                                //Create UserModel for User
                                var twitterUser = new TwitterUserModel
                                {
                                    Id                      = x.Id,
                                    Name                    = x.Name,
                                    Screen_name             = x.ScreenName,
                                    Description             = x.Description,
                                    Created_at              = x.CreatedAt,
                                    Location                = x.Location,
                                    Geo_enabled             = x.GeoEnabled,
                                    Url                     = x.Url,
                                    Statuses_count          = x.StatusesCount,
                                    Followers_count         = x.FollowersCount,
                                    Friends_count           = x.FriendsCount,
                                    Verified                = x.Verified,
                                    Profile_image_url_https = x.ProfileImageUrlHttps,
                                    Favourites_count        = x.FavouritesCount,
                                    Listed_count            = x.ListedCount,
                                    UserUpdated             = DateTime.Now,
                                    PoliticalParty          = politicalParty
                                };

                                //Update User if name is not null and if the saveinterval is reached^^
                                col.Update(twitterUser);
                                _logger.LogInformation(">> ...updated dbentry => " + x.ScreenName);
                            }
                            else
                            {
                                if (id != null)
                                {
                                    _logger.LogInformation(">> TUD...already updated => " + x.ScreenName);
                                }
                                else
                                {
                                    _logger.LogInformation(">> ...not found => " + x.ScreenName);
                                }
                            }
                        }
                        await Task.Delay(Config.Parameter.TwitterUserWriteDelay *1000);
                    }
                }
            }
            catch (TwitterException ex)
            {
                _logger.LogInformation("Twitter has problems..." + ex);
            }
            catch (ArgumentException ex)
            {
                _logger.LogInformation("ArgumentException..." + ex);
            }
            catch (LiteException ex)
            {
                _logger.LogInformation("LiteDB Exception..." + ex);
            }
            catch (Exception ex)
            {
                _logger.LogInformation("Exception..." + ex);
            }
        }
コード例 #4
0
        public static bool TryParseUser(IHtmlDocument doc, out TwitterUserModel user)
        {
            user            = new TwitterUserModel();
            user.SpiderTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");

            try
            {
                //Get user account ID.
                var userIDElem = doc.All.Where(m => m.LocalName == "div" && m.ClassList.Contains("user-actions") &&
                                               m.ClassList.Contains("btn-group") && m.ClassList.Contains("not-following") && m.HasAttribute("data-user-id")).FirstOrDefault();
                if (userIDElem != null)
                {
                    long.TryParse(userIDElem.GetAttribute("data-user-id"), out var userID);
                    user.ID       = userID;
                    user.UserName = userIDElem.GetAttribute("data-screen-name");
                    user.Name     = userIDElem.GetAttribute("data-name");
                    user.Private  = userIDElem.GetAttribute("data-protected") == "true" ? 1 : 0;
                }
            }
            catch (Exception)
            {
                return(false);
            }
            try
            {
                user.Verified = doc.QuerySelector("span.ProfileHeaderCard-badges").TextContent.Contains("Verified account") ? 1 : 0;
            }
            catch (Exception)
            {
                user.Verified = 0;
            }

            try
            {
                //Get display Name
                var avatarElem = doc.QuerySelector("img.ProfileAvatar-image");
                if (avatarElem != null)
                {
                    user.Avatar = avatarElem.GetAttribute("src");
                }
            }
            catch (Exception)
            {
                user.Avatar = string.Empty;
            }
            try
            {
                user.Bio = doc.QuerySelector("p.ProfileHeaderCard-bio").TextContent.Replace("\n", " ");
            }
            catch (Exception)
            {
                user.Bio = string.Empty;
            }
            try
            {
                user.Location = doc.QuerySelector("span.ProfileHeaderCard-locationText").TextContent.Replace("\n", " ").Trim();
            }
            catch (Exception)
            {
                user.Location = string.Empty;
            }
            try
            {
                user.Url = doc.QuerySelector("span.ProfileHeaderCard-urlText a").GetAttribute("title");
            }
            catch (Exception)
            {
                user.Url = string.Empty;
            }
            try
            {
                var joinDateTime = doc.QuerySelector("span.ProfileHeaderCard-joinDateText").GetAttribute("title").Split(new string[] { " - " }, 2, StringSplitOptions.RemoveEmptyEntries);
                user.JoinTime = joinDateTime[0];
                user.JoinDate = joinDateTime[1];
            }
            catch (Exception)
            {
                user.JoinDate = string.Empty;
                user.JoinTime = string.Empty;
            }
            try
            {
                long.TryParse(doc.QuerySelector("li.ProfileNav-item.ProfileNav-item--tweets a span.ProfileNav-value").GetAttribute("data-count"), out var tweetsCount);
                user.Tweets = tweetsCount;
            }
            catch (Exception)
            {
                user.Tweets = 0;
            }
            try
            {
                long.TryParse(doc.QuerySelector("li.ProfileNav-item.ProfileNav-item--following a span.ProfileNav-value").GetAttribute("data-count"), out var followingCount);
                user.Following = followingCount;
            }
            catch (Exception)
            {
                user.Following = 0;
            }

            try
            {
                long.TryParse(doc.QuerySelector("li.ProfileNav-item.ProfileNav-item--followers a span.ProfileNav-value").GetAttribute("data-count"), out var followersCount);
                user.Followers = followersCount;
            }
            catch (Exception)
            {
                user.Followers = 0;
            }

            try
            {
                long.TryParse(doc.QuerySelector("li.ProfileNav-item.ProfileNav-item--favorites a span.ProfileNav-value").GetAttribute("data-count"), out var favoritesCount);
                user.Likes = favoritesCount;
            }
            catch (Exception)
            {
                user.Likes = 0;
            }
            try
            {
                var  mediaCountStr = doc.QuerySelector("a.PhotoRail-headingWithCount").TextContent.Trim().Split(new[] { ' ' })[0].Replace(",", "").ToLower().Trim();
                long mediaCount    = 0;
                if (mediaCountStr.EndsWith("k"))
                {
                    float.TryParse(mediaCountStr.Replace("k", ""), out var count);
                    mediaCount = (long)(count * 1000);
                }
                else if (mediaCountStr.EndsWith("m"))
                {
                    float.TryParse(mediaCountStr.Replace("m", ""), out var count);
                    mediaCount = (long)(count * 1000000);
                }
                else if (mediaCountStr.EndsWith("b"))
                {
                    float.TryParse(mediaCountStr.Replace("b", ""), out var count);
                    mediaCount = (long)(count * 1000000000);
                }
                else
                {
                    long.TryParse(mediaCountStr, out mediaCount);
                }
                user.Media = mediaCount;
            }
            catch (Exception)
            {
                user.Media = 0;
            }
            try
            {
                user.BackgroundImage = doc.QuerySelector("div.ProfileCanopy-headerBg img").GetAttribute("src");
            }
            catch (Exception)
            {
                user.BackgroundImage = string.Empty;
            }

            return(true);
        }
コード例 #5
0
        //Move to Update Service
        public async Task SaveToDatabase()
        {
            using (var db = new LiteDatabase("TwitterData.db"))
            {
                x = CurrentUser;

                var mapper = BsonMapper.Global;

                mapper.Entity <TwitterUserModel>()
                .Id(x => x.Id);     // set your document ID

                var col = db.GetCollection <TwitterUserModel>("TwitterUser");

                //Search for the Name
                var name = col.FindOne(a => a.Screen_name == x.ScreenName);

                if (name == null)
                {
                    //Create UserModel for User
                    var twitterUser = new TwitterUserModel
                    {
                        Id                      = x.Id,
                        Name                    = x.Name,
                        Screen_name             = x.ScreenName,
                        Description             = x.Description,
                        Created_at              = x.CreatedAt,
                        Location                = x.Location,
                        Geo_enabled             = x.GeoEnabled,
                        Url                     = x.Url,
                        Statuses_count          = x.StatusesCount,
                        Followers_count         = x.FollowersCount,
                        Friends_count           = x.FriendsCount,
                        Verified                = x.Verified,
                        Profile_image_url_https = x.ProfileImageUrlHttps,
                        Favourites_count        = x.FavouritesCount,
                        Listed_count            = x.ListedCount,
                        UserUpdated             = DateTime.Now
                    };

                    //Create new database entry for given user
                    col.Insert(twitterUser);
                    _logger.LogInformation("...created new dbentry => " + x.ScreenName);
                }
                else
                {
                    if (name.UserUpdated.AddMinutes(Config.Parameter.TwitterUserUpdateInterval) < DateTime.Now)
                    {
                        //Create UserModel for User
                        var twitterUser = new TwitterUserModel
                        {
                            Id                      = x.Id,
                            Name                    = x.Name,
                            Screen_name             = x.ScreenName,
                            Description             = x.Description,
                            Created_at              = x.CreatedAt,
                            Location                = x.Location,
                            Geo_enabled             = x.GeoEnabled,
                            Url                     = x.Url,
                            Statuses_count          = x.StatusesCount,
                            Followers_count         = x.FollowersCount,
                            Friends_count           = x.FriendsCount,
                            Verified                = x.Verified,
                            Profile_image_url_https = x.ProfileImageUrlHttps,
                            Favourites_count        = x.FavouritesCount,
                            Listed_count            = x.ListedCount,
                            UserUpdated             = DateTime.Now
                        };

                        //Update User if name is not null and if the saveinterval is reached^^
                        col.Update(twitterUser);
                        _logger.LogInformation("...updated dbentry => " + x.ScreenName);
                    }
                    else
                    {
                        if (name != null)
                        {
                            _logger.LogInformation("...already updated => " + x.ScreenName);
                        }
                        else
                        {
                            _logger.LogInformation("...not found => " + x.ScreenName);
                        }
                    }
                }
                await Task.Delay(200);
            }
        }
コード例 #6
0
        public IActionResult OnPostSaveEntry(long id)
        {
            using (var db = new LiteDatabase("TwitterData.db"))
            {
                _logger.LogInformation(">>>>>>>>> Checking DB for {0} ...", id);

                var col = db.GetCollection <TwitterUserModel>("TwitterUser");

                var changeEntry = col.Find(x => x.Id == id);

                if (changeEntry != null)

                {
                    var politicalPartyMembership = "";

                    if (PoliticalPartyMember == 1)
                    {
                        politicalPartyMembership = "AFD";
                    }

                    if (PoliticalPartyMember == 2)
                    {
                        politicalPartyMembership = "BÜNDNIS 90/DIE GRÜNEN";
                    }


                    if (PoliticalPartyMember == 3)
                    {
                        politicalPartyMembership = "CDU/CSU";
                    }


                    if (PoliticalPartyMember == 4)
                    {
                        politicalPartyMembership = "Die Linke";
                    }


                    if (PoliticalPartyMember == 5)
                    {
                        politicalPartyMembership = "FDP";
                    }


                    if (PoliticalPartyMember == 6)
                    {
                        politicalPartyMembership = "SPD";
                    }

                    if (PoliticalPartyMember == 7)
                    {
                        politicalPartyMembership = "Fraktionslos";
                    }

                    if (PoliticalPartyMember == 8)
                    {
                        politicalPartyMembership = null;
                    }

                    foreach (var item in changeEntry)
                    {
                        _logger.LogInformation(">>>>>>>>> Found DB Entry\n>>>>>>>>> {0} - {1} - {2}", item.Id, item.Name, item.PoliticalParty);

                        var twitterUser = new TwitterUserModel
                        {
                            Id                      = item.Id,
                            Name                    = item.Name,
                            Screen_name             = item.Screen_name,
                            Description             = item.Description,
                            Created_at              = item.Created_at,
                            Location                = item.Location,
                            Geo_enabled             = item.Geo_enabled,
                            Url                     = item.Url,
                            Statuses_count          = item.Statuses_count,
                            Followers_count         = item.Followers_count,
                            Friends_count           = item.Friends_count,
                            Verified                = item.Verified,
                            Profile_image_url_https = item.Profile_image_url_https,
                            Favourites_count        = item.Favourites_count,
                            Listed_count            = item.Listed_count,
                            UserUpdated             = DateTime.Now,
                            PoliticalParty          = politicalPartyMembership
                        };

                        //Update User if name is not null and if the saveinterval is reached^^
                        col.Update(twitterUser);
                        _logger.LogInformation(">>>>>>>>> Updated {0} with {1} ... ", politicalPartyMembership, item.Id);
                    }
                }
            }

            return(RedirectToPage());
        }
コード例 #7
0
        private static void PoliticalPartyUpdate()
        {
            using (var db = new LiteDatabase("TwitterData.db"))
            {
                try
                {
                    Console.WriteLine(">>> Getting Collection...");
                    var col = db.GetCollection <TwitterUserModel>("TwitterUser");

                    var partyList = col.FindAll().Where(s => s.PoliticalParty == null);

                    Console.WriteLine(">>> Political Partymembers:");

                    List <string> abfall = new List <string>();
                    List <string> green  = new List <string>();
                    List <string> left   = new List <string>();
                    List <string> afd    = new List <string>();
                    List <string> cducsu = new List <string>();
                    List <string> spd    = new List <string>();
                    List <string> fdp    = new List <string>();
                    List <string> blau   = new List <string>();
                    List <string> nix    = new List <string>();

                    bool debugLine = false;

                    foreach (var entry in partyList)
                    {
                        if (debugLine == true)
                        {
                            Console.WriteLine(">>> Found: {0} ", entry.Name.ToString());
                        }

                        //Change with desciption

                        if (entry.Description == null)
                        {
                            if (debugLine == true)
                            {
                                Console.WriteLine("Is Abfall ");
                            }
                            abfall.Add(entry.Name);
                        }
                        else
                        {
                            if (entry.Description.Contains("BÜNDNIS 90/DIE GRÜNEN") ||
                                entry.Description.Contains("Grüne") ||
                                entry.Description.Contains("grüne") ||
                                entry.Description.Contains("Gruene") ||
                                entry.Description.Contains("gruene")
                                )
                            {
                                if (debugLine == true)
                                {
                                    Console.WriteLine("Is GRÜNE");
                                }
                                green.Add(entry.Name);
                                var userModel = new TwitterUserModel
                                {
                                    Id                      = entry.Id,
                                    Name                    = entry.Name,
                                    Screen_name             = entry.Screen_name,
                                    Description             = entry.Description,
                                    Created_at              = entry.Created_at,
                                    Location                = entry.Location,
                                    Geo_enabled             = entry.Geo_enabled,
                                    Url                     = entry.Url,
                                    Statuses_count          = entry.Statuses_count,
                                    Followers_count         = entry.Followers_count,
                                    Friends_count           = entry.Friends_count,
                                    Verified                = entry.Verified,
                                    Profile_image_url_https = entry.Profile_image_url_https,
                                    Favourites_count        = entry.Favourites_count,
                                    Listed_count            = entry.Listed_count,
                                    UserUpdated             = entry.UserUpdated,
                                    PoliticalParty          = "BÜNDNIS 90/DIE GRÜNEN",
                                };


                                col.Update(userModel);
                            }
                            else if (entry.Description.Contains("DIE LINKE") ||
                                     entry.Description.Contains("LINKE") ||
                                     entry.Description.Contains("linke") ||
                                     entry.Description.Contains("linksfraktion") ||
                                     entry.Description.Contains("links") ||
                                     entry.Description.Contains("DieLinke") ||
                                     entry.Description.Contains("Linksfraktion")
                                     )
                            {
                                if (debugLine == true)
                                {
                                    Console.WriteLine("Is DIE LINKE");
                                }
                                left.Add(entry.Name);

                                var userModel = new TwitterUserModel
                                {
                                    Id                      = entry.Id,
                                    Name                    = entry.Name,
                                    Screen_name             = entry.Screen_name,
                                    Description             = entry.Description,
                                    Created_at              = entry.Created_at,
                                    Location                = entry.Location,
                                    Geo_enabled             = entry.Geo_enabled,
                                    Url                     = entry.Url,
                                    Statuses_count          = entry.Statuses_count,
                                    Followers_count         = entry.Followers_count,
                                    Friends_count           = entry.Friends_count,
                                    Verified                = entry.Verified,
                                    Profile_image_url_https = entry.Profile_image_url_https,
                                    Favourites_count        = entry.Favourites_count,
                                    Listed_count            = entry.Listed_count,
                                    UserUpdated             = entry.UserUpdated,
                                    PoliticalParty          = "Die Linke",
                                };


                                col.Update(userModel);
                            }
                            else if (entry.Description.Contains("AFD") ||
                                     entry.Description.Contains("AfD") ||
                                     entry.Description.Contains("afd") ||
                                     entry.Screen_name.Contains("afd") ||
                                     entry.Screen_name.Contains("AFD") ||
                                     entry.Name.Contains("AFD") ||
                                     entry.Name.Contains("AfD")
                                     )
                            {
                                if (debugLine == true)
                                {
                                    Console.WriteLine("Is AFD");
                                }
                                afd.Add(entry.Name);
                                var userModel = new TwitterUserModel
                                {
                                    Id                      = entry.Id,
                                    Name                    = entry.Name,
                                    Screen_name             = entry.Screen_name,
                                    Description             = entry.Description,
                                    Created_at              = entry.Created_at,
                                    Location                = entry.Location,
                                    Geo_enabled             = entry.Geo_enabled,
                                    Url                     = entry.Url,
                                    Statuses_count          = entry.Statuses_count,
                                    Followers_count         = entry.Followers_count,
                                    Friends_count           = entry.Friends_count,
                                    Verified                = entry.Verified,
                                    Profile_image_url_https = entry.Profile_image_url_https,
                                    Favourites_count        = entry.Favourites_count,
                                    Listed_count            = entry.Listed_count,
                                    UserUpdated             = entry.UserUpdated,
                                    PoliticalParty          = "AFD",
                                };


                                col.Update(userModel);
                            }
                            else if (entry.Description.Contains("CDU") ||
                                     entry.Description.Contains("CSU") ||
                                     entry.Description.Contains("CDU/CSU") ||
                                     entry.Description.Contains("cducsu") ||
                                     entry.Screen_name.Contains("cdu") ||
                                     entry.Screen_name.Contains("CDU") ||
                                     entry.Screen_name.Contains("csu") ||
                                     entry.Screen_name.Contains("CSU") ||
                                     entry.Name.Contains("CDU") ||
                                     entry.Name.Contains("CSU")
                                     )
                            {
                                if (debugLine == true)
                                {
                                    Console.WriteLine("Is CDU/CSU");
                                }
                                cducsu.Add(entry.Name);
                                var userModel = new TwitterUserModel
                                {
                                    Id                      = entry.Id,
                                    Name                    = entry.Name,
                                    Screen_name             = entry.Screen_name,
                                    Description             = entry.Description,
                                    Created_at              = entry.Created_at,
                                    Location                = entry.Location,
                                    Geo_enabled             = entry.Geo_enabled,
                                    Url                     = entry.Url,
                                    Statuses_count          = entry.Statuses_count,
                                    Followers_count         = entry.Followers_count,
                                    Friends_count           = entry.Friends_count,
                                    Verified                = entry.Verified,
                                    Profile_image_url_https = entry.Profile_image_url_https,
                                    Favourites_count        = entry.Favourites_count,
                                    Listed_count            = entry.Listed_count,
                                    UserUpdated             = entry.UserUpdated,
                                    PoliticalParty          = "CDU/CSU",
                                };


                                col.Update(userModel);
                            }
                            else if (entry.Description.Contains("FDP") ||
                                     entry.Description.Contains("fdp") ||
                                     entry.Description.Contains("liberal") ||
                                     entry.Description.Contains("Freien Demokraten") ||
                                     entry.Screen_name.Contains("fdp") ||
                                     entry.Screen_name.Contains("FDP") ||
                                     entry.Name.Contains("FDP")
                                     )
                            {
                                if (debugLine == true)
                                {
                                    Console.WriteLine("Is FDP");
                                }
                                fdp.Add(entry.Name);
                                var userModel = new TwitterUserModel
                                {
                                    Id                      = entry.Id,
                                    Name                    = entry.Name,
                                    Screen_name             = entry.Screen_name,
                                    Description             = entry.Description,
                                    Created_at              = entry.Created_at,
                                    Location                = entry.Location,
                                    Geo_enabled             = entry.Geo_enabled,
                                    Url                     = entry.Url,
                                    Statuses_count          = entry.Statuses_count,
                                    Followers_count         = entry.Followers_count,
                                    Friends_count           = entry.Friends_count,
                                    Verified                = entry.Verified,
                                    Profile_image_url_https = entry.Profile_image_url_https,
                                    Favourites_count        = entry.Favourites_count,
                                    Listed_count            = entry.Listed_count,
                                    UserUpdated             = entry.UserUpdated,
                                    PoliticalParty          = "FDP",
                                };


                                col.Update(userModel);
                            }
                            else if (entry.Description.Contains("SPD") ||
                                     entry.Description.Contains("spd") ||
                                     entry.Description.Contains("sozialdemokrat") ||
                                     entry.Screen_name.Contains("spd") ||
                                     entry.Screen_name.Contains("SPD") ||
                                     entry.Name.Contains("SPD")
                                     )
                            {
                                if (debugLine == true)
                                {
                                    Console.WriteLine("Is SPD");
                                }
                                spd.Add(entry.Name);
                                var userModel = new TwitterUserModel
                                {
                                    Id                      = entry.Id,
                                    Name                    = entry.Name,
                                    Screen_name             = entry.Screen_name,
                                    Description             = entry.Description,
                                    Created_at              = entry.Created_at,
                                    Location                = entry.Location,
                                    Geo_enabled             = entry.Geo_enabled,
                                    Url                     = entry.Url,
                                    Statuses_count          = entry.Statuses_count,
                                    Followers_count         = entry.Followers_count,
                                    Friends_count           = entry.Friends_count,
                                    Verified                = entry.Verified,
                                    Profile_image_url_https = entry.Profile_image_url_https,
                                    Favourites_count        = entry.Favourites_count,
                                    Listed_count            = entry.Listed_count,
                                    UserUpdated             = entry.UserUpdated,
                                    PoliticalParty          = "SPD",
                                };


                                col.Update(userModel);
                            }
                            else if (entry.Description.Contains("Blaue") ||
                                     entry.Description.Contains("Blauen") ||
                                     entry.Description.Contains("blaue") ||
                                     entry.Description.Contains("blau"))
                            {
                                if (debugLine == true)
                                {
                                    Console.WriteLine("Is Blau");
                                }
                                blau.Add(entry.Name);
                                var userModel = new TwitterUserModel
                                {
                                    Id                      = entry.Id,
                                    Name                    = entry.Name,
                                    Screen_name             = entry.Screen_name,
                                    Description             = entry.Description,
                                    Created_at              = entry.Created_at,
                                    Location                = entry.Location,
                                    Geo_enabled             = entry.Geo_enabled,
                                    Url                     = entry.Url,
                                    Statuses_count          = entry.Statuses_count,
                                    Followers_count         = entry.Followers_count,
                                    Friends_count           = entry.Friends_count,
                                    Verified                = entry.Verified,
                                    Profile_image_url_https = entry.Profile_image_url_https,
                                    Favourites_count        = entry.Favourites_count,
                                    Listed_count            = entry.Listed_count,
                                    UserUpdated             = entry.UserUpdated,
                                    PoliticalParty          = "Die Blauen",
                                };


                                col.Update(userModel);
                            }
                            else
                            {
                                if (debugLine == true)
                                {
                                    Console.WriteLine("Is NIX");
                                }
                                nix.Add(entry.Name);
                            }
                        }

                        //Find equal name  - in list / textfile? - on wikiData?


                        //change the political party entry
                    }


                    //Debug Listings

                    Console.WriteLine(">>> Die Linke {0} ", left.Count());
                    Console.WriteLine(">>> Grüne {0} ", green.Count());
                    Console.WriteLine(">>> AFD {0} ", afd.Count());
                    Console.WriteLine(">>> CDU/CSU {0} ", cducsu.Count());
                    Console.WriteLine(">>> SPD {0} ", spd.Count());
                    Console.WriteLine(">>> FDP {0} ", fdp.Count());
                    Console.WriteLine(">>> Blaue {0} ", blau.Count());


                    Console.WriteLine(">>> Nichts gefunden {0} ", nix.Count());
                    foreach (var jarnix in nix)
                    {
                        Console.WriteLine(jarnix.ToString());
                    }

                    Console.WriteLine(">>> Abfall {0} ", abfall.Count());
                    foreach (var muell in abfall)
                    {
                        Console.WriteLine(muell.ToString());
                    }
                }
                catch (LiteException ex)
                {
                    Console.WriteLine("LiteDB Exception: " + ex);
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Exception: " + ex);
                }


                Console.ReadKey();
            }
        }
コード例 #8
0
        private async Task <TwitterUserModel> getAccessToken(string authToken, string authVerifier)
        {
            GXUser           user   = null;
            TwitterUserModel twUser = null;
            string           jwt    = "";

            string nonce     = oAuthUtil.GetNonce();
            string timeStamp = oAuthUtil.GetTimeStamp();

            string sigBaseStringParams = "oauth_consumer_key=" + "5R7Y1dJMc26yEdzFEbLWCZWKg";

            sigBaseStringParams += "&" + "oauth_nonce=" + nonce;
            sigBaseStringParams += "&" + "oauth_signature_method=" + "HMAC-SHA1";
            sigBaseStringParams += "&" + "oauth_timestamp=" + timeStamp;
            sigBaseStringParams += "&" + "oauth_token=" + authToken;
            sigBaseStringParams += "&" + "oauth_verifier=" + authVerifier;
            sigBaseStringParams += "&" + "oauth_version=1.0";
            string sigBaseString = "POST&";

            sigBaseString += Uri.EscapeDataString("https://api.twitter.com/oauth/access_token") + "&" + Uri.EscapeDataString(sigBaseStringParams);

            byte[]   content = Encoding.UTF8.GetBytes(sigBaseString);
            HMACSHA1 hmac    = new HMACSHA1(Encoding.ASCII.GetBytes("Ly2vdzPf23DfYlFPruxloVT4ix93Y9hmXepngPbQWRUHMPeZZs" + "&"));

            hmac.ComputeHash(content);

            string signature = Convert.ToBase64String(hmac.Hash);

            signature = signature.Replace("-", "");


            //string signature = oAuthUtil.GetSignature(sigBaseString, "Ly2vdzPf23DfYlFPruxloVT4ix93Y9hmXepngPbQWRUHMPeZZs");

            var responseText = await oAuthUtil.PostData("https://api.twitter.com/oauth/access_token", sigBaseStringParams + "&oauth_signature=" + Uri.EscapeDataString(signature));

            if (!string.IsNullOrEmpty(responseText))
            {
                string oauth_token          = null;
                string oauth_token_secret   = null;
                string oauth_authorize_url  = null;
                string oauth_oauth_verifier = null;
                string user_id     = null;
                string screen_name = null;

                string[] keyValPairs = responseText.Split('&');

                for (int i = 0; i < keyValPairs.Length; i++)
                {
                    String[] splits = keyValPairs[i].Split('=');
                    switch (splits[0])
                    {
                    case "oauth_token":
                        oauth_token = splits[1];
                        break;

                    case "oauth_token_secret":
                        oauth_token_secret = splits[1];
                        break;

                    case "xoauth_request_auth_url":
                        oauth_authorize_url = splits[1];
                        break;

                    case "oauth_verifier":
                        oauth_oauth_verifier = splits[1];
                        break;

                    case "user_id":
                        user_id = splits[1];
                        break;

                    case "screen_name":
                        screen_name = splits[1];
                        break;
                    }
                }

                //requestToken.Text = oauth_token;
                //requestTokenSecretKey.Text = oauth_token_secret;
                //oAuthAuthorizeLink.Content = Uri.UnescapeDataString(_twitterAuthorizeUrl + "?oauth_token=" + oauth_token);

                var oa = new OAuthResponse();

                if (oauth_token != null && oauth_token_secret != null)
                {
                    //var credentialsText = Verify_Credentials("5R7Y1dJMc26yEdzFEbLWCZWKg", "Ly2vdzPf23DfYlFPruxloVT4ix93Y9hmXepngPbQWRUHMPeZZs", oauth_token, oauth_token_secret);
                    var credentialsText = GetTwitterUser("5R7Y1dJMc26yEdzFEbLWCZWKg",
                                                         "Ly2vdzPf23DfYlFPruxloVT4ix93Y9hmXepngPbQWRUHMPeZZs", oauth_token, oauth_token_secret);
                    if (credentialsText.IndexOf("Error:") < 0 && !string.IsNullOrEmpty(credentialsText))
                    {
                        try
                        {
                            twUser = JsonConvert.DeserializeObject <TwitterUserModel>(credentialsText);
                        }catch (Exception ex)
                        {
                            return(null);
                        }
                    }
                }
            }

            return(twUser);
        }