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()); }
protected async override void OnNavigatedTo(NavigationEventArgs e) { _navigationHelper.OnNavigatedTo(e); await TwitterModel.LoadItemsAsync(); DataContext = this; }
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); }
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))); }
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); }
private void OnDataRequested(DataTransferManager sender, DataRequestedEventArgs args) { if (TwitterModel != null) { TwitterModel.GetShareContent(args.Request); } }
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; } } }
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."); } }
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); }
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); } }
protected override async void OnNavigatedTo(NavigationEventArgs e) { _dataTransferManager = DataTransferManager.GetForCurrentView(); _dataTransferManager.DataRequested += OnDataRequested; _navigationHelper.OnNavigatedTo(e); await TwitterModel.LoadItemsAsync(); }
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(); }
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); }); }
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")); }
/// <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); }
public TwitterModel Get(int id) { var twitter = new TwitterService { OAuthConsumerKey = "ck1ZhyPddp9nxHTfJMatknFan", OAuthConsumerSecret = "49qmaXbqQpWUXQ3iJofdgungK06FOUNTJ3ldD8md1i9CwZIW2O" }; TwitterModel twitts = twitter.GetTwitts("showtweetmyrgp", 10).Result; return(twitts); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); } } }
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); }
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); } }