public void Bug_CSHARP_44()
        {
            var table = ents.GetTable<Tweets>();

            byte[] buf = new byte[256];
            for (int i = 0; i < 256; i++)
                buf[i] = (byte)i;

            int RowsNo = 100;
            List<Tweets> entL = new List<Tweets>();
            for (int i = 0; i < RowsNo; i++)
            {
                var ent = new Tweets() { tweet_id = Guid.NewGuid(), author = "test" + i.ToString(), body = "body" + i.ToString(), isok = (i % 2 == 0) };
                ent.exampleSet.Add(i.ToString());
                ent.exampleSet.Add((i + 1).ToString());
                ent.exampleSet.Add((i - 1).ToString());
                ent.data = null;
                table.AddNew(ent, EntityTrackingMode.KeepAttachedAfterSave);
                entL.Add(ent);
            }
            ents.SaveChanges(SaveChangesMode.Batch);

            var cnt = table.Count().Execute();

            Assert.Equal(RowsNo, cnt);

            foreach (var enti in entL)
                enti.data = buf;

            ents.SaveChanges(SaveChangesMode.Batch);

            var dat = (from e in table select e.data).FirstOrDefault().Execute();

            Assert.ArrEqual(dat, buf);
        }
        public void Test1()
        {
            var table = ents.GetTable<Tweets>();

            int RowsNo = 2000;
            List<Tweets> entL = new List<Tweets>();
            for (int i = 0; i < RowsNo; i++)
            {
                var ent = new Tweets() { tweet_id = Guid.NewGuid(), author = "test" + i.ToString(), body = "body" + i.ToString(), isok = (i % 2 == 0) };
                ent.exampleSet.Add(i.ToString());
                ent.exampleSet.Add((i + 1).ToString());
                ent.exampleSet.Add((i - 1).ToString());
                table.AddNew(ent, EntityTrackingMode.KeepAttachedAfterSave);
                entL.Add(ent);
            }
            ents.SaveChanges(SaveChangesMode.Batch);

            var cnt = table.Count().Execute();

            Assert.Equal(RowsNo, cnt);

            foreach (var ent in entL)
                table.Delete(ent);

            ents.SaveChanges(SaveChangesMode.Batch);

            var cnt2 = table.Count().Execute();
            Assert.Equal(0, cnt2);
        }
 public void SaveObject(Tweets tweet)
 {
     using (Repository<Tweets> DataAccessHelper = new Repository<Tweets>())
     {
         DataAccessHelper.Add(tweet);
         DataAccessHelper.SaveChanges();
     }
 }
 //redundant
 //public List<Accounts>AccountsList { get; set; }
 public void Create(Tweets persistObject)
 {
     using (Repository<Tweets> DataAccessHelper = new Repository<Tweets>())
     {
         DataAccessHelper.Add(persistObject);
         DataAccessHelper.SaveChanges();
     }
 }
Exemple #5
0
        static void Main(string[] args)
        {
            String ini;
            if (args.Length < 1) {
                Console.WriteLine("Please enter the name of the ini file");
                ini = Console.ReadLine();
            }
            else
                ini = args[0];
            Console.WriteLine(ini);
            var twit = new Twitter(ini);
            //twit.testStream();
            var testCount = 100;
            twit.populateData(testCount);

            while (twit.Data.Count() < testCount - 1) {
                Console.WriteLine(twit.Data.Count());
                System.Threading.Thread.Sleep(5000);
            }
            twit.writeDateToFile(@"C:\Users\Kevin\Documents\TestJson\data.txt");
            //twit.testStream("Disney");

            Tweets data = new Tweets();
            JsonSerializer serializer = new JsonSerializer();
            serializer.NullValueHandling = NullValueHandling.Ignore;
            using (StreamReader sr = new StreamReader(@"C:\Users\Kevin\Documents\TestJson\data.txt"))
            using (JsonTextReader jr = new JsonTextReader(sr)) {
                if(!jr.Read() || jr.TokenType != JsonToken.StartArray) {
                    throw new Exception("Expected start of array");
                }
                while (jr.Read()) {
                    if (jr.TokenType == JsonToken.EndArray) break;
                    var item = serializer.Deserialize<TweetData>(jr);
                    data.add(item);
                }
            }
            Console.WriteLine("done");
            foreach (var tweet in data) {
                Console.WriteLine(tweet.text);
            }

            //twit.getData();
            //while (twit.Data.Length <= 1) ;
            //Console.WriteLine(twit.Data+"\n");

            //Twitter.testStream(ini);
            var news = new News();
            news.getGoogleNews("Disney");
            foreach (var article in news.Data) {
                Console.WriteLine(article.Title+" "+article.publishData.ToString() );
            }
            Console.WriteLine("Done with everything");
            Console.ReadLine();
        }
        /// <summary>
        /// This method reads the file line at a time and extract the people the user is following
        /// </summary>
        /// <param name="UserFileReader"></param>
        /// <returns></returns>
        private static Tweets GetFollowing(StreamReader UserFileReader)
        {
            List<string> following = new List<string>();
            Tweets tweet = new Tweets();
            tweet.Following = new List<string>();
            tweet.UserHandle = new List<string>();

            using (UserFileReader)
            {
                string rawline, @handler, follwers;

                string[] Splittedfollowing;

                try
                {
                    //Read the file one line at a time.
                    while ((rawline = UserFileReader.ReadLine()) != null)
                    {
                        @handler = rawline.Substring(0, (rawline.IndexOf("follows") - 1));
                        follwers = rawline.Substring((rawline.IndexOf("follows"))).Replace(",", "").Replace("follows", "");
                        Splittedfollowing = follwers.Split(' ');

                        tweet.UserHandle.Add(@handler);
                        //Console.WriteLine(@handler);
                        foreach (string follow in Splittedfollowing)
                        {
                            if (!String.IsNullOrEmpty(follow))
                            {
                                tweet.Following.Add(follow);
                                //Console.WriteLine("\t {0}", follow);
                            }
                        }
                    }
                }
                catch (Exception exc)
                {
                    Console.WriteLine("GetFollowing: Unexpected file layout! Correct the file and try again.");
                    Console.ReadKey();
                }
            }
            return tweet;
        }
        /// <summary>
        ///  This method reads the tweets.txt file and extract the tweets line by line
        /// </summary>
        /// <param name="tweetFileReader"></param>
        /// <param name="listOfTwetterHandles"></param>
        /// <param name="tweetObj"></param>
        private static void GetTweets(StreamReader tweetFileReader, List<string> listOfTwetterHandles, Tweets tweetObj)
        {
            List<string> tweetlineList = new List<string>();

            try
            {
                using (tweetFileReader)
                {
                    string tweetLine;

                    //Read the file one line at a time.
                    while ((tweetLine = tweetFileReader.ReadLine()) != null)
                    {
                        //Append the @ sign and replace > with : in the tweet
                        tweetLine = "@" + tweetLine.Replace(">", ":");
                        //Add all tweets messages to a list
                        tweetlineList.Add(tweetLine);
                    }
                }
                /*
                  Enumerate the the list of twitter handles (users) and out handle and their tweets
                  and tweets of those they follow or following them.
                */
                foreach (string tweetHandle in listOfTwetterHandles)
                {
                    Console.WriteLine("{0} \n", tweetHandle);
                    foreach (string tweets in tweetlineList)
                    {
                        if (tweets.Contains("@" + tweetHandle + ":"))
                        {
                            Console.WriteLine("\t {0}", tweets);             
                        }
                        else
                        {
                            foreach (var f in tweetObj.UserHandle)
                            {
                                if ((tweetHandle != f) && (!tweetObj.Following.Contains(tweetHandle)))
                                {
                                    if (tweets.Contains("@" + f + ":"))
                                    {
                                        Console.WriteLine("\t {0}", tweets);
                                    }
                                }
                            }
                        }               
                    }
                }
            }
            catch (Exception e)
            {
                //Handle exception in a user friendly manner
                Console.WriteLine("GetTweets: Unexpected file layout! Correct the file and try again.");

                //Console.WriteLine(e.Message); // General error logging will go here for troubleshooting purposes.
                Console.ReadKey();
            }
        }
        //Search Twitter for youtube videos to determine how many times they've been shared.
        public int getTWYTVideoShares(string video_id)
        {
            Tweets tweetsChoreo = new Tweets(session);

            // Set inputs
            tweetsChoreo.setAccessToken(accessToken);
            tweetsChoreo.setQuery("https://www.youtube.com/watch?v="+video_id);
            tweetsChoreo.setAccessTokenSecret(accessTokenSecret);
            tweetsChoreo.setConsumerSecret(consumer_secret);
            tweetsChoreo.setConsumerKey(consumer_key);

            // Execute Choreo
            TweetsResultSet tweetsResults = tweetsChoreo.execute();
            JObject jo = JObject.Parse(tweetsResults.Response);
            try
            {
                JArray ja = (JArray)jo["statuses"];
                return ja.Count;
            }
            catch (Exception e)
            {
                return 0;
            }
        }
        public void getTwitterHashtagData(string hashTag, DateTime since)
        {
            Tweets tweetsChoreo = new Tweets(session);

            // hastag search
            tweetsChoreo.setAccessToken(accessToken);
            tweetsChoreo.setQuery(hashTag);
            tweetsChoreo.setAccessTokenSecret(accessTokenSecret);
            tweetsChoreo.setConsumerSecret(consumer_secret);
            tweetsChoreo.setConsumerKey(consumer_key);
            tweetsChoreo.setCount("200");
            tweetsChoreo.setUntil(since.ToString("yyyy-MM-dd"));

            // Execute Choreo
            TweetsResultSet tweetsResults = tweetsChoreo.execute();
            //Create JSON objects
            string s_tweets = tweetsResults.Response;
            processTweeting(s_tweets, hashTag);

            JObject json_tweets = JObject.Parse(s_tweets);
            string tweet_id = (string)json_tweets["statuses"][0]["id"];

            tweetsChoreo = new Tweets(session);
            tweetsChoreo.setAccessToken(accessToken);
            tweetsChoreo.setQuery(hashTag);
            tweetsChoreo.setAccessTokenSecret(accessTokenSecret);
            tweetsChoreo.setConsumerSecret(consumer_secret);
            tweetsChoreo.setConsumerKey(consumer_key);
            tweetsChoreo.setCount("200");
            tweetsChoreo.setSinceId(tweet_id);

            tweetsResults = tweetsChoreo.execute();
            s_tweets = tweetsResults.Response;
            processTweeting(s_tweets, hashTag);
        }
        public void getTwitterHashtagData(string hashTag)
        {
            Tweets tweetsChoreo = new Tweets(session);

            // hastag search
            tweetsChoreo.setAccessToken(accessToken);
            tweetsChoreo.setQuery(hashTag);
            tweetsChoreo.setAccessTokenSecret(accessTokenSecret);
            tweetsChoreo.setConsumerSecret(consumer_secret);
            tweetsChoreo.setConsumerKey(consumer_key);
            tweetsChoreo.setCount("200");
            string tomorrow = DateTime.Now.AddDays(1).ToString("yyyy-MM-dd");
            tweetsChoreo.setUntil(tomorrow);

            // Execute Choreo
            TweetsResultSet tweetsResults = tweetsChoreo.execute();

            // Print results
            //Console.WriteLine(tweetsResults.Response);
            Console.WriteLine(DateTime.Now.ToString());
            //Console.WriteLine(tweetsResults.Limit);
            //Console.WriteLine(tweetsResults.Remaining);
            //Console.WriteLine(tweetsResults.Reset);
            //Create JSON objects
            string s_tweets = tweetsResults.Response;
            processTweeting(s_tweets, hashTag);
        }
Exemple #11
0
        public void testBuffering()
        {
            var table = ents.GetTable<Tweets>();

            var q2 = (from e in table where CqlToken.Create(e.idx) <= 0 select e).Take(10).OrderBy((e) => e.idx).ThenByDescending((e) => e.isok);

            var qxx = q2.ToString();
            int RowsNb = 10;
            for (int i = 0; i < RowsNb; i++)
            {
                var ent = new Tweets() { tweet_id = Guid.NewGuid(), author = "author" + i.ToString(), isok = i % 2 == 0, body = "blablabla", idx = i };
                table.AddNew(ent, EntityTrackingMode.KeepAttachedAfterSave);
            }
            var ent2 = new Tweets() { tweet_id = Guid.NewGuid(), author = "author" + RowsNb + 1, isok = false, body = "blablabla", idx = RowsNb + 1 };
            table.AddNew(ent2, EntityTrackingMode.KeepAttachedAfterSave);
            ents.SaveChanges(SaveChangesMode.OneByOne);

            table.Attach(ent2, EntityUpdateMode.ModifiedOnly);
            ent2.author = "Koko";
            ents.SaveChanges(SaveChangesMode.OneByOne);

            var iq = table.Count();
            var c = iq.Execute();

            foreach (var r in (from e in table where e.isok == true && e.idx == 0 select e).Execute())
            {
                var x = r;
            }

            //https://issues.apache.org/jira/browse/CASSANDRA-5303?page=com.atlassian.streams.streams-jira-plugin:activity-stream-issue-tab
            //foreach (var r in (from e in table where e.isok == true && new int[] { 0, 1, 2 }.Contains(e.idx) select new { x = e.idx, y = e.tweet_id }).Execute())
            //{
            //    var x = r;
            //}

            foreach (var r in (from e in table where e.isok == false && e.idx == 0 select new { Key = e.idx }).Execute())
            {
                var x = r;
            }

            foreach (var r in (from e in table where e.isok == true && e.idx == 0 select new { Key = e.idx, e.isok }).Execute())
            {
                var x = r;
            }

            foreach (var r in (from e in table where e.isok == true && e.idx == 0 select new X() { x = e.author, y = e.idx }).Execute())
            {
                var x = r;
            }

            foreach (var r in (from e in table where e.isok == false && e.idx == 0 select e.author).Execute())
            {
                var x = r;
            }
        }
Exemple #12
0
        /// <summary>
        /// ロードしたツイートを追加する
        /// </summary>
        /// <param name="newTweets"></param>
        public void AddTweets(Tweets newTweets)
        {
            Debug.WriteLine("AddTweets");
            bool ageChanged = false;

            foreach (var tweet in this.tweets.Where(x => x.Age < 4))
            {
                tweet.Age++;
                ageChanged = true;
            }

            // 重複チェックして、新着だけ取り出す
            Tweets uniqueTweets = new Tweets();

            foreach (var tweet in newTweets.Where(x => tweets.FindId(x.Id) == null))
            {
                tweet.Age = 0;
                uniqueTweets.Add(tweet);
            }

            // 追加するツイートがある?
            if (uniqueTweets.Count > 0)
            {
                if (tweetsPanel.TopItemIndex > 0)
                {
                    AddNewTweets(uniqueTweets);
                }
                else
                {
                    if (uniqueTweets.Count < tweetsPanel.VisibleTweetCount)
                    {
                        AddNewTweets(uniqueTweets);
                    }
                    else
                    {
                        double stopSec = 1;
                        double divAdd = ((App.Settings.AutoReload - 2) / stopSec);
                        DispatcherTimer dt = new DispatcherTimer();
                        int addCountPerOne = (int)Math.Ceiling(uniqueTweets.Count / Math.Max(1, divAdd));
                        if (addCountPerOne < 1) addCountPerOne = 1;

                        dt.Interval = TimeSpan.FromSeconds(0);
                        dt.Tick += (s, e) =>
                        {
                            dt.Interval = TimeSpan.FromSeconds(stopSec);
                            int oneIdx = Math.Max(0, uniqueTweets.Count - addCountPerOne);
                            int oneCount = Math.Min(addCountPerOne, uniqueTweets.Count);
                            AddNewTweets(uniqueTweets.GetRange(oneIdx, oneCount));
                            uniqueTweets.RemoveRange(oneIdx, oneCount);
                            if (uniqueTweets.Count == 0)
                            {
                                dt.Stop();
                            }
                        };
                        dt.Start();
                    }
                }
            }
            else if (ageChanged)
            {
                // 追加はないけど、Ageが変更された
                tweetsPanel.LayoutTweets(TweetsPanelLayoutMode.Relayout);
            }
            Debug.WriteLine("/AddTweets");
        }
        public void testBuffering()
        {
            var table = ents.GetTable <Tweets>();

            var q2 = (from e in table where CqlToken.Create(e.idx) <= 0 select e).Take(10).OrderBy((e) => e.idx).ThenByDescending((e) => e.isok);

            var qxx    = q2.ToString();
            int RowsNb = 10;

            for (int i = 0; i < RowsNb; i++)
            {
                var ent = new Tweets()
                {
                    tweet_id = Guid.NewGuid(), author = "author" + i.ToString(), isok = i % 2 == 0, body = "blablabla", idx = i
                };
                table.AddNew(ent, EntityTrackingMode.KeepAttachedAfterSave);
            }
            var ent2 = new Tweets()
            {
                tweet_id = Guid.NewGuid(), author = "author" + RowsNb + 1, isok = false, body = "blablabla", idx = RowsNb + 1
            };

            table.AddNew(ent2, EntityTrackingMode.KeepAttachedAfterSave);
            ents.SaveChanges(SaveChangesMode.OneByOne);

            table.Attach(ent2, EntityUpdateMode.ModifiedOnly);
            ent2.author = "Koko";
            ents.SaveChanges(SaveChangesMode.OneByOne);


            var iq = table.Count();
            var c  = iq.Execute();


            foreach (var r in (from e in table where e.isok == true && e.idx == 0 select e).Execute())
            {
                var x = r;
            }

            //https://issues.apache.org/jira/browse/CASSANDRA-5303?page=com.atlassian.streams.streams-jira-plugin:activity-stream-issue-tab
            //foreach (var r in (from e in table where e.isok == true && new int[] { 0, 1, 2 }.Contains(e.idx) select new { x = e.idx, y = e.tweet_id }).Execute())
            //{
            //    var x = r;
            //}

            foreach (var r in (from e in table where e.isok == false && e.idx == 0 select new { Key = e.idx }).Execute())
            {
                var x = r;
            }

            foreach (var r in (from e in table where e.isok == true && e.idx == 0 select new { Key = e.idx, e.isok }).Execute())
            {
                var x = r;
            }

            foreach (var r in (from e in table where e.isok == true && e.idx == 0 select new X()
            {
                x = e.author, y = e.idx
            }).Execute())
            {
                var x = r;
            }

            foreach (var r in (from e in table where e.isok == false && e.idx == 0 select e.author).Execute())
            {
                var x = r;
            }
        }
Exemple #14
0
        public async Task ExecuteLoadTweetsCommand()
        {
            if (IsBusy)
            {
                return;
            }

            IsBusy = true;
            LoadTweetsCommand.ChangeCanExecute();
            try
            {
                Tweets.Clear();
                var auth = new ApplicationOnlyAuthorizer()
                {
                    CredentialStore = new InMemoryCredentialStore
                    {
                        ConsumerKey    = "ZTmEODUCChOhLXO4lnUCEbH2I",
                        ConsumerSecret = "Y8z2Wouc5ckFb1a0wjUDT9KAI6DUat5tFNdmIkPLl8T4Nyaa2J",
                    },
                };
                await auth.AuthorizeAsync();

                var twitterContext = new TwitterContext(auth);

                if (Device.OS != TargetPlatform.WinPhone)
                {
                    IQueryable <LinqToTwitter.Status> queryResponse =
                        (from tweet in twitterContext.Status
                         where tweet.Type == StatusType.User &&
                         tweet.ScreenName == "shanselman" &&
                         tweet.Count == 100 &&
                         tweet.IncludeRetweets == true &&
                         tweet.ExcludeReplies == true
                         select tweet);

                    var queryTweets = queryResponse.ToList();
                    var tweets      =
                        (from tweet in queryTweets
                         select new Tweet
                    {
                        StatusID = tweet.StatusID,
                        ScreenName = tweet.User.ScreenNameResponse,
                        Text = tweet.Text,
                        CurrentUserRetweet = tweet.CurrentUserRetweet,
                        CreatedAt = tweet.CreatedAt,
                        Image = tweet.RetweetedStatus != null && tweet.RetweetedStatus.User != null ?
                                tweet.RetweetedStatus.User.ProfileImageUrl : (tweet.User.ScreenNameResponse == "shanselman" ? "scott159.png" : tweet.User.ProfileImageUrl)
                    }).ToList();
                    foreach (var tweet in tweets)
                    {
                        Tweets.Add(tweet);
                    }

                    if (Device.OS == TargetPlatform.iOS)
                    {
                        // only does anything on iOS, for the Watch
                        DependencyService.Get <ITweetStore>().Save(tweets);
                    }
                }
                else
                {
                    var tweets =
                        await(from tweet in twitterContext.Status
                              where tweet.Type == StatusType.User &&
                              tweet.ScreenName == "shanselman" &&
                              tweet.Count == 100 &&
                              tweet.IncludeRetweets == true &&
                              tweet.ExcludeReplies == true
                              select new Tweet
                    {
                        StatusID           = tweet.StatusID,
                        ScreenName         = tweet.User.ScreenNameResponse,
                        Text               = tweet.Text,
                        CurrentUserRetweet = tweet.CurrentUserRetweet,
                        CreatedAt          = tweet.CreatedAt,
                        Image              = tweet.RetweetedStatus != null && tweet.RetweetedStatus.User != null ?
                                             tweet.RetweetedStatus.User.ProfileImageUrl : (tweet.User.ScreenNameResponse == "shanselman" ? "scott159.png" : tweet.User.ProfileImageUrl)
                    }).ToListAsync();
                    foreach (var tweet in tweets)
                    {
                        Tweets.Add(tweet);
                    }
                }
            }
            catch (Exception ex)
            {
                var page = new ContentPage();
                page.DisplayAlert("Error", "Unable to load tweets.", "OK");
            }

            IsBusy = false;
            LoadTweetsCommand.ChangeCanExecute();
        }