Ejemplo n.º 1
0
        public ArticleStubPage GetArticleStubPage(DateTime date)
        {
            var dayTag = date.ToShortDateString() == DateTime.Now.ToShortDateString() ? "" : "_" + date.ToShortDateString();

            return(CachedRepository <ArticleStubPage> .Instance(PrimaryUser.TwitterScreenName)
                   .Query(TwitterModel.Instance(PrimaryUser.TwitterScreenName).CONTENT + dayTag).FirstOrDefault() ?? new ArticleStubPage());
        }
Ejemplo n.º 2
0
        protected async override void OnNavigatedTo(NavigationEventArgs e)
        {
            _navigationHelper.OnNavigatedTo(e);
            await TwitterModel.LoadItemsAsync();

            DataContext = this;
        }
Ejemplo n.º 3
0
        public TwitterModel run(TwittersI tsList, int algorithmId)
        {
            TwitterModel tmp   = null;
            int          index = 0;

            for (; index < tsList.allTweets.Count; index++)
            {
                TwitterModel tm = tsList.allTweets[index];
                if (index >= config.googleLocationTweetNumberEachCycleTest)//for test
                {
                    return(tsList.allTweets.Last());
                }
                int      i  = 0;
                Result[] rs = search(tm, tm.profileLocationContent, ref i);
                if (rs != null && rs.Length != 0)
                {
                    LocationModel lm = new LocationModel(algorithmId, rs[0].Geometry.Location.Longitude, rs[0].Geometry.Location.Latitude, null, null, null);
                    tm.addLocation(lm);
                }
                if (i == 3) // if reach limit
                {
                    index--;
                    System.Diagnostics.Debug.WriteLine("google waiting");
                    Thread.Sleep(config.googlelocationWaitIntervalWhenLimit);
                }


                tmp = tm;
            }
            return(tmp);
        }
Ejemplo n.º 4
0
        public ActionResult FrontPage()
        {
            ViewBag.ArticleStubIndex = CachedRepository <ArticleStubIndex> .Instance(PrimaryUser.TwitterScreenName)
                                       .Query(TwitterModel.Instance(PrimaryUser.TwitterScreenName).CONTENT_INDEX)
                                       .FirstOrDefault();

            var page = CachedRepository <ArticleStubPage>
                       .Instance(PrimaryUser.TwitterScreenName)
                       .Query(TwitterModel.Instance(PrimaryUser.TwitterScreenName).CONTENT)
                       .FirstOrDefault() ?? new ArticleStubPage();

            var index = CachedRepository <ArticleIndex> .Instance(PrimaryUser.TwitterScreenName)
                        .Query(TwitterModel.Instance(PrimaryUser.TwitterScreenName).ARTICLE_INDEX).FirstOrDefault() ?? new ArticleIndex();

            var items = index.Articles.OrderByDescending(i => i.Published).Take(25);

            var fullArticles = new List <Article>();

            foreach (var item in items)
            {
                var articles = CachedRepository <Article> .Instance(PrimaryUser.TwitterScreenName)
                               .Query(TwitterModel.Instance(PrimaryUser.TwitterScreenName).ARTICLE + item.DayTag).ToList();

                var article = articles.Where(x => x.UniqueKey == item.Key).FirstOrDefault();
                if (article != null)
                {
                    fullArticles.Add(article);
                }
            }

            return(View("FrontPage", new FrontPageModel(fullArticles, page.ArticleStubs)));
        }
Ejemplo n.º 5
0
        public void Start()
        {
            log.WriteLine("{0}: Started", DateTime.Now);

            log.WriteLine("{0}: Initializing IProcessingStep", DateTime.Now);
            GetIProcessingStep().Init(PrimaryUser.TwitterScreenName, log);

            var screenname = PrimaryUser.TwitterScreenName;

            //log.WriteLine("{0}: Getting Friends for {1}", DateTime.Now, screenname);
            //TwitterModel.Instance.UpdateFriendsForPrimaryUser();
            //log.WriteLine("{0}: Finished Getting Friends for {1}", DateTime.Now, screenname);

            log.WriteLine("{0}: Listening to Stream", DateTime.Now);


            var userStreamContext    = TwitterModel.Instance(PrimaryUser.TwitterScreenName).GetAuthorizedTwitterContext(screenname);
            var trackerStreamContext = TwitterModel.Instance(PrimaryUser.TwitterScreenName).GetAuthorizedTwitterContext(screenname);

            TwitterModel.Instance(PrimaryUser.TwitterScreenName).VerifyCredentials(userStreamContext, log);
            TwitterModel.Instance(PrimaryUser.TwitterScreenName).VerifyCredentials(trackerStreamContext, log);


            StartTwitterStream(userStreamContext, trackerStreamContext);

            StartProcessingQueue(userStreamContext, trackerStreamContext);
        }
Ejemplo n.º 6
0
 private void OnDataRequested(DataTransferManager sender, DataRequestedEventArgs args)
 {
     if (TwitterModel != null)
     {
         TwitterModel.GetShareContent(args.Request);
     }
 }
Ejemplo n.º 7
0
        private void FindSuggestedTweeps()
        {
            if (LastUpdatedTwitterSuggestedFollows.AddHours(1) <= DateTime.Now)
            {
                try
                {
                    var friendsAndFollows = PrimaryTweep.Followers().Select(x => x.ID);
                    var keywords          = RuntimeSettings.Keywords.Select(x => x.Key).Union(GetKeywordSuggestions());
                    //Func<Tweep, bool> where = (x => x.User.Description != null && keywords.Where(w => x.User.Description.ToLower().Contains(w)).Count() >= 2);
                    Func <Tweep, bool> where = (x => !friendsAndFollows.Contains(x.User.UserID));

                    var results = TwitterModel.Instance(PrimaryTweep.ScreenName).GetSuggestedFollowsForPrimaryUser()
                                  .Where(where)
                                  .ToList();

                    RuntimeSettings.TwitterFollowSuggestions = RuntimeSettings.TwitterFollowSuggestions
                                                               .Where(where)
                                                               .Union(results).ToList();
                }
                catch (Exception ex)
                {
                    log.WriteLine("{0}: Error from FindSuggestedTweeps: {1}",
                                  DateTime.Now,
                                  ex.ToString());
                }
                finally
                {
                    LastUpdatedTwitterSuggestedFollows = DateTime.Now;
                }
            }
        }
Ejemplo n.º 8
0
        partial void BtnIrABusqueda_TouchUpInside(NSObject sender)
        {
            if (TxtAccessToken.Text != "" && TxtAccessTokenSecret.Text != "" &&
                TxtConsumerKey.Text != "" && TxtConsumerKeySecret.Text != "" &&
                TxtUserID.Text != "" && TxtScreenName.Text != "")
            {
                ulong userID;

                if (ulong.TryParse(TxtUserID.Text, out userID))
                {
                    try
                    {
                        TwitterModel modeloTwitter = new TwitterModel(TxtConsumerKey.Text, TxtConsumerKeySecret.Text, TxtAccessToken.Text, TxtAccessTokenSecret.Text, TxtScreenName.Text, userID);


                        var viewController = Storyboard.InstantiateViewController(nameof(TwitterTableViewController)) as TwitterTableViewController;
                        viewController.ModeloTwitter = modeloTwitter;

                        NavigationController.PushViewController(viewController, true);
                    }
                    catch (Exception ex)
                    {
                        ShowMessage("ERROR:", $"Hubo un error en la inserción de los datos, verifíquelos: {ex.Message}");
                    }
                }
                else
                {
                    ShowMessage("ERROR:", "En el ID sólo puede haber números.");
                }
            }
            else
            {
                ShowMessage("ADVERTENCIA:", "Llene todos los campos, por favor.");
            }
        }
Ejemplo n.º 9
0
 public DomainTests()
 {
     _twitter = new TwitterModel();
     var tweet1 = _twitter.PostTweet("bart", "This is the worst day of my life", DateTime.Now);
     var tweet2 = _twitter.PostTweet("homer", "@bart the worst day yet", DateTime.Now);
     var tweet3 = _twitter.PostTweet("bart", ". @homer Eat my shorts", DateTime.Now);
 }
Ejemplo n.º 10
0
        public async Task <SocialNetworkModel> GetSocialNetworkAsync(Account account)
        {
            try
            {
                var request = new OAuth1Request("GET", new Uri("https://api.twitter.com/1.1/account/verify_credentials.json?include_email=true"), null, account);

                var response = await request.GetResponseAsync();

                var json = response.GetResponseText();

                TwitterModel twitterUser = JsonConvert.DeserializeObject <TwitterModel>(json);

                return(new SocialNetworkModel()
                {
                    ID = twitterUser.Id,
                    NUserName = twitterUser.Name,
                    EmailAddress = twitterUser.Email,
                });
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
                return(null);
            }
        }
Ejemplo n.º 11
0
        protected override async void OnNavigatedTo(NavigationEventArgs e)
        {
            _dataTransferManager = DataTransferManager.GetForCurrentView();
            _dataTransferManager.DataRequested += OnDataRequested;

            _navigationHelper.OnNavigatedTo(e);
            await TwitterModel.LoadItemsAsync();
        }
Ejemplo n.º 12
0
        protected override void StoreInRepository(IEnumerable <Tweet> tweets)
        {
            var tracker = TwitterModel.Instance(screenName).TRACKER;

            CachedRepository <Tweet> .Instance(screenName).Save(tracker, tweets.OrderBy(t => t.CreatedAt).Select(t => t).ToList());

            log.WriteLine("{0}: {1} Tweets Saved for {2}", DateTime.Now, tweets.Count(), tracker);

            //CachedRepository<Tweet>.Instance.FlushChanges();
        }
Ejemplo n.º 13
0
        public TwitterViewModel()
        {
            m_model = new TwitterModel();

            StatusText      = "What's going on?";
            GoCommand       = new RelayCommand(OnGoClicked);
            TimelineEntries = new ObservableCollection <TwitterTimelineEntryViewModel>();

            m_timer = new Timer(OnTime, null, 0, 300000);
        }
 protected virtual void StoreInRepository(IEnumerable <Tweet> tweets)
 {
     tweets
     .GroupBy(t => t.User.ScreenName)
     .ToList()
     .ForEach(g =>
     {
         CachedRepository <Tweet> .Instance(screenName).Save(g.Key + TwitterModel.Instance(screenName).TWEETS, g.OrderBy(t => t.CreatedAt).Select(t => t).ToList());
         log.WriteLine("{0}: {1} Tweets Saved for {2}", DateTime.Now, g.Count(), g.Key);
     });
 }
Ejemplo n.º 15
0
        public ActionResult Retweet(ulong id)
        {
            //if (MobileHelper.IsMobileDevice(Request.UserAgent)) return RedirectToAction("retweet", "mobile");

            if (id > 0)
            {
                TwitterModel.Instance(PrimaryUser.TwitterScreenName).Retweet(id, User.Identity.Name);
            }

            return(RedirectToAction("Index"));
        }
Ejemplo n.º 16
0
        /// <summary>
        /// コンストラクタ
        /// </summary>
        public TwitterViewModel()
        {
            _Model = new TwitterModel();

            _Model.Service       = new TwitterService(ClsConst.ConsumerKey, ClsConst.ConsumerSecret);
            _Model.ButtonEnabled = false;

            StartAuthCom      = new RelayCommand(_Model.StartAuth);
            CompletionAuthCom = new RelayCommand(_Model.CompletionAuth);
            ReleaseAuthCom    = new RelayCommand(_Model.ReleaseAuth);
        }
Ejemplo n.º 17
0
        public TwitterModel Get(int id)
        {
            var twitter = new TwitterService
            {
                OAuthConsumerKey    = "ck1ZhyPddp9nxHTfJMatknFan",
                OAuthConsumerSecret = "49qmaXbqQpWUXQ3iJofdgungK06FOUNTJ3ldD8md1i9CwZIW2O"
            };
            TwitterModel twitts = twitter.GetTwitts("showtweetmyrgp", 10).Result;

            return(twitts);
        }
Ejemplo n.º 18
0
        public ActionResult Tweet(string Tweet)
        {
            //if (MobileHelper.IsMobileDevice(Request.UserAgent)) return RedirectToAction("tweet", "mobile");

            if (!string.IsNullOrEmpty(Tweet))
            {
                TwitterModel.Instance(PrimaryUser.TwitterScreenName).UpdateStatus(Tweet, User.Identity.Name);
            }

            return(RedirectToAction("Index"));
        }
 /// <summary>
 /// Load ViewModel items asynchronous
 /// </summary>
 public async Task LoadDataAsync(bool forceRefresh = false)
 {
     var loadTasks = new Task[]
     {
         AboutMeModel.LoadItemsAsync(forceRefresh),
         TwitterModel.LoadItemsAsync(forceRefresh),
         InstagramModel.LoadItemsAsync(forceRefresh),
         MyBlogModel.LoadItemsAsync(forceRefresh),
         MyVideosModel.LoadItemsAsync(forceRefresh),
         MyFavoriteMusicModel.LoadItemsAsync(forceRefresh),
     };
     await Task.WhenAll(loadTasks);
 }
Ejemplo n.º 20
0
        private IEnumerable <Tweet> RespondToTweets(IEnumerable <Tweet> tweets)
        {
            var repliedTo = new List <Tweet>();

            if (Messages != null)
            {
                foreach (var t in tweets)
                {
                    string tweetedBy = t.User.ScreenName.ToLower();
                    if (!NoTweetList.Any(x => x == tweetedBy) &&                               //Don't bug people with constant retweets
                        !t.TweetText.ToLower().Contains(NoTweetList[0]) &&                     //Don't bug them even if they are mentioned in the tweet
                        (!OnlyWithMentions || t.Status.Entities.UserMentionEntities.Count > 0) //OPTIONAL: Only respond to tweets that mention someone
                        )
                    {
                        //Dont want to keep hitting the same person over and over so add them to the ignore list
                        NoTweetList.Add(tweetedBy);
                        //If they were mentioned in a tweet they get ignored in the future just in case they reply
                        NoTweetList.AddRange(t.Status.Entities.UserMentionEntities.Where(um => !string.IsNullOrEmpty(um.ScreenName)).Select(um => um.ScreenName));

                        string message = "";
                        if (t.User.FollowersCount > 9999)
                        {
                            //TODO: It would be very cool to have the code branch here for custom tweets to popular twitter accounts
                            //IDEA: Maybe have it text you for a response
                            message = Messages.OrderBy(x => Guid.NewGuid()).FirstOrDefault();
                        }
                        else
                        {
                            //Randomly select response from list of possible responses
                            message = Messages.OrderBy(x => Guid.NewGuid()).FirstOrDefault();
                        }

                        //Tweet it
                        try
                        {
                            TwitterModel.Instance(PrimaryTweep.ScreenName).UpdateStatus(message + " RT @" + t.User.ScreenName + " " + t.TweetText, processStatus: false);
                        }
                        catch (Exception ex) { log.WriteLine("{0}: TweetBot Error: {1}", DateTime.Now, ex.ToString()); }

                        repliedTo.Add(t);

                        //Wait at least 1 minute between tweets so it doesnt look bot-ish with fast retweets
                        //Add some extra random timing somewhere between 0-2 minutes
                        //The shortest wait will be 1 minute the longest will be 3
                        int randomTime = 60000 + (1000 * Enumerable.Range(0, 120).OrderBy(x => Guid.NewGuid()).FirstOrDefault());
                        System.Threading.Thread.Sleep(randomTime);
                    }
                }
            }
            return(repliedTo);
        }
Ejemplo n.º 21
0
        public void SaveArticle(Article article)
        {
            string dayTag = "_" + article.PublishedDate.ToShortDateString();

            var index = GetArticleIndex();

            CachedRepository <Article> .Instance(PrimaryUser.TwitterScreenName)
            .Save(TwitterModel.Instance(PrimaryUser.TwitterScreenName).ARTICLE + dayTag, article);

            index.Articles.Add(new ArticleIndex.Index(article.PublishedDate.ToFileTimeUtc(), article.Title, article.UniqueKey, article.Tags));

            CachedRepository <ArticleIndex> .Instance(PrimaryUser.TwitterScreenName)
            .Save(TwitterModel.Instance(PrimaryUser.TwitterScreenName).ARTICLE_INDEX, index);
        }
Ejemplo n.º 22
0
        public Article GetArticle(uint id)
        {
            var articleIndex = GetArticleIndex().Articles.Where(x => x.ID() == id).FirstOrDefault();

            if (articleIndex != null)
            {
                var articles = CachedRepository <Article> .Instance(PrimaryUser.TwitterScreenName)
                               .Query(TwitterModel.Instance(PrimaryUser.TwitterScreenName).ARTICLE + articleIndex.DayTag).ToList();

                return(articles.Where(x => x.UniqueKey == articleIndex.Key).FirstOrDefault());
            }

            return(null);
        }
Ejemplo n.º 23
0
        private TwitterModel GetModel()
        {
            var model = new TwitterModel(this.Mode, this.Count, this.ScreenName, this.TweetId);

            model.CssClass = this.CssClass;

            if (model.Tweets.Count == 0)
            {
                //Try again
                model = new TwitterModel(this.Mode, this.Count, this.ScreenName, this.TweetId);
            }

            return(model);
        }
Ejemplo n.º 24
0
        public IEnumerable <TwitterModel> GenerateReport(IEnumerable <Users> userList, IEnumerable <Tweet> tweets, int tweetLengthLimit)
        {
            var twitterReport = new List <TwitterModel>();

            if (tweets == null)
            {
                return(twitterReport);
            }


            foreach (var user in userList)
            {
                var followsList = user.Follows;
                var report      = new TwitterModel {
                    UserId = user.UserId
                };

                var twts = new List <Tweet>();
                foreach (var userTweet in tweets)
                {
                    var uTweet = userTweet.UserTweet.Substring(0, Math.Min(tweetLengthLimit, userTweet.UserTweet.Length));

                    if (userTweet.UserId == user.UserId)
                    {
                        twts.Add(new Tweet()
                        {
                            UserId = userTweet.UserId, UserTweet = uTweet
                        });
                    }

                    foreach (var followedUser in followsList)
                    {
                        if (followedUser == userTweet.UserId)
                        {
                            twts.Add(new Tweet()
                            {
                                UserId = userTweet.UserId, UserTweet = uTweet
                            });
                        }
                    }
                }

                report.Tweets = twts;
                twitterReport.Add(report);
            }

            return(twitterReport);
        }
Ejemplo n.º 25
0
        public TransactionTests()
        {
            _twitter = new TwitterModel();

            var cmd1 = new PostTweet("bart", "This is the worst day of my life", DateTime.Now);

            cmd1.Execute(_twitter);

            var cmd2 = new PostTweet("homer", "@bart the worst day yet", DateTime.Now);

            cmd2.Execute(_twitter);

            var cmd3 = new PostTweet("bart", ". @homer Eat my shorts", DateTime.Now);

            cmd3.Execute(_twitter);
        }
Ejemplo n.º 26
0
        public void EditArticle(Article article)
        {
            string dayTag = "_" + article.PublishedDate.ToShortDateString();

            CachedRepository <Article> .Instance(PrimaryUser.TwitterScreenName)
            .Save(TwitterModel.Instance(PrimaryUser.TwitterScreenName).ARTICLE + dayTag, article);

            var index = GetArticleIndex();

            var articleIndex = index.Articles.Where(x => x.Key == article.UniqueKey).FirstOrDefault();

            articleIndex.Title = article.Title;
            articleIndex.Tags  = article.Tags;

            CachedRepository <ArticleIndex> .Instance(PrimaryUser.TwitterScreenName)
            .Save(TwitterModel.Instance(PrimaryUser.TwitterScreenName).ARTICLE_INDEX, index);
        }
Ejemplo n.º 27
0
        public async Task <TwitterModel> GetTwitts(string userName, int count, string accessToken = null)
        {
            TwitterModel twittModel = new TwitterModel();

            if (accessToken == null)
            {
                accessToken = await GetAccessToken().ConfigureAwait(false);
            }

            var requestUserTimeline = new HttpRequestMessage(HttpMethod.Get, string.Format("https://api.twitter.com/1.1/statuses/user_timeline.json?count={0}&screen_name=Narendermodi_PM&trim_user=1&exclude_replies=1", count, userName));

            requestUserTimeline.Headers.Add("Authorization", "Bearer " + accessToken);
            var httpClient = new HttpClient();
            HttpResponseMessage responseUserTimeLine = await httpClient.SendAsync(requestUserTimeline).ConfigureAwait(false);

            var     serializer       = new JavaScriptSerializer();
            dynamic json             = serializer.Deserialize <object>(await responseUserTimeLine.Content.ReadAsStringAsync());
            var     enumerableTwitts = (json as IEnumerable <dynamic>);

            if (enumerableTwitts == null)
            {
                return(null);
            }

            List <Twitte> lstTwitt = new List <Twitte>();

            foreach (string twitt in enumerableTwitts.Select(t => (string)(t["text"].ToString())))
            {
                Twitte temp = new Twitte();
                temp.Twittes = twitt;

                lstTwitt.Add(temp);
            }
            twittModel.listTwitte = lstTwitt;



            return(twittModel);
        }
Ejemplo n.º 28
0
        public void DeleteArticle(uint id)
        {
            var index = GetArticleIndex();

            var articleIndex = index.Articles.Where(x => x.ID() == id).FirstOrDefault();

            if (articleIndex != null)
            {
                var article = CachedRepository <Article> .Instance(PrimaryUser.TwitterScreenName)
                              .Query(TwitterModel.Instance(PrimaryUser.TwitterScreenName).ARTICLE + articleIndex.DayTag, where : x => x.UniqueKey == articleIndex.Key).FirstOrDefault();

                if (article != null)
                {
                    CachedRepository <Article> .Instance(PrimaryUser.TwitterScreenName)
                    .Delete(TwitterModel.Instance(PrimaryUser.TwitterScreenName).ARTICLE + articleIndex.DayTag, article);

                    index.Articles.Remove(articleIndex);

                    CachedRepository <ArticleIndex> .Instance(PrimaryUser.TwitterScreenName)
                    .Save(TwitterModel.Instance(PrimaryUser.TwitterScreenName).ARTICLE_INDEX, index);
                }
            }
        }
Ejemplo n.º 29
0
        public IEnumerable <Article> Articles(Func <Article, bool> where = null)
        {
            var articleIndexGroups = GetArticleIndex().Articles.GroupBy(x => x.DayTag).OrderByDescending(x => x.First().Published);

            foreach (var group in articleIndexGroups)
            {
                var articles = CachedRepository <Article> .Instance(PrimaryUser.TwitterScreenName)
                               .Query(TwitterModel.Instance(PrimaryUser.TwitterScreenName).ARTICLE + group.Key).ToList();

                var filtered = where != null?articles
                               .Where(where) : articles;

                if (articles != null)
                {
                    foreach (var article in filtered)
                    {
                        yield return(article);
                    }
                }
            }

            yield return(null);
        }
Ejemplo n.º 30
0
        private bool SendTweet(Tweet tweet, bool isRetweet)
        {
            var friendsAndFollows = PrimaryTweep.Followers().Select(x => x.ID);

            string[] ignore = (ConfigurationManager.AppSettings["Ignore"] ?? "").ToLower().Split(',');
            if (!SimulationMode)
            {
                tweet.PopulateExtendedData();
                var link = tweet.Links.OrderByDescending(x => x.ShareCount).FirstOrDefault();
                if (link != null &&
                    ignore.Where(x => link.Title.ToLower().Contains(x)).Count() == 0 &&                                                        //Cant Contain an Ignore Word
                    (tweet.User.Url == null || !link.Uri.ToString().Contains(tweet.User.Url) || friendsAndFollows.Contains(tweet.User.UserID)) //Can not be from same url as user tweeting this, unless you are a friend
                    )
                {
                    if (!isRetweet)
                    {
                        string statusText = !link.Title.ToLower().StartsWith("http") ?
                                            (link.Title.Length > 116 ? link.Title.Substring(0, 116) : link.Title) + " " + link.Uri.ToString()
                            :
                                            link.Uri.ToString();
                        TwitterModel.Instance(PrimaryTweep.ScreenName).UpdateStatus(statusText, processStatus: false);
                    }
                    else
                    {
                        TwitterModel.Instance(PrimaryTweep.ScreenName).Retweet(tweet.StatusID);
                    }

                    return(true);
                }

                return(false);
            }
            else
            {
                return(true);
            }
        }