Example #1
0
        private void contextMarkUnReadAllInView_Click(object sender, RoutedEventArgs e)
        {
            MenuItem menuItem = sender as MenuItem;

            if (menuItem != null)
            {
                TwitterItem item = menuItem.CommandParameter as TwitterItem;

                ThreadSaveObservableCollection <TwitterItem> AllTwitterItemsInView = new ThreadSaveObservableCollection <TwitterItem>();
                foreach (IItem iitem in AppController.Current.mainWindow.ListOfItems.listView_Tweets.Items)
                {
                    if (iitem.GetType() == typeof(TwitterItem))
                    {
                        AllTwitterItemsInView.Add(iitem as TwitterItem);
                    }
                }
                foreach (TwitterItem twitterItem in AllTwitterItemsInView)
                {
                    if (twitterItem != null)
                    {
                        twitterItem.markUnread();
                        GeneralFunctions.ReadStates.RemoveTweetAsBeingRead(twitterItem.Id);
                    }
                }
            }
        }
Example #2
0
        // ------------------------------

        public static TwitterItem retweetItem(AccountTwitter account, TwitterItem item)
        {
            try
            {
                RetweetOptions options = new TweetSharp.RetweetOptions();
                if (item.RetweetedItem != null)
                {
                    options.Id = Convert.ToInt64(item.RetweetedItem.Id);
                }
                else
                {
                    options.Id = Convert.ToInt64(item.Id);
                }


                TwitterStatus retweet = account.twitterService.Retweet(options);

                if (retweet != null)
                {
                    item.isRetweetedByMe = true;
                }
                else
                {
                    System.Windows.MessageBox.Show("Retweet failed", "Unknown error");
                }
                return(item);
            }
            catch (Exception exp)
            {
                System.Windows.MessageBox.Show("Retweet failed", exp.Message);
                return(null);
            }
        }
Example #3
0
        void Twitter_DownloadStringCompleted(object senders, DownloadStringCompletedEventArgs e)
        {
            try
            {
                List <TwitterItem> contentList = new List <TwitterItem>();
                JArray             Twit        = JArray.Parse(e.Result);
                int count = 0;

                while (count < Twit.Count)
                {
                    TwitterItem tweet = new TwitterItem();
                    tweet.ImageSource = Twit[count]["user"]["profile_image_url"].ToString();
                    tweet.UserName    = Twit[count]["user"]["screen_name"].ToString();
                    tweet.Message     = Twit[count]["text"].ToString();
                    tweet.TweetID     = Twit[count]["id_str"].ToString();
                    contentList.Add(tweet);
                    count++;
                }
                tweets.ItemsSource = contentList.ToList();
            }
            catch (Exception error)
            {
                MessageBox.Show("A network error has occured");
                Console.WriteLine("An error occured: " + error);
            }
        }
Example #4
0
        private void ButtonGeoLocation_Click(object sender, RoutedEventArgs e)
        {
            Button button = sender as Button;

            if (button != null)
            {
                TwitterItem item = button.CommandParameter as TwitterItem;
                if (item != null)
                {
                    try
                    {
                        if (Properties.Settings.Default.LocationMapService == "OpenStreetMap")
                        {
                            System.Diagnostics.Process.Start("http://open.mapquestapi.com/nominatim/v1/search.php?q=" + System.Web.HttpUtility.UrlEncode(item.Place.FullLocation));
                        }
                        else
                        {
                            System.Diagnostics.Process.Start("http://maps.google.de/maps?q=" + System.Web.HttpUtility.UrlEncode(item.Place.FullLocation));
                        }
                    }
                    catch (Exception exp)
                    {
                        AppController.Current.sendNotification("Error", "Opening link failed", "While tryping to open the link Windows failed with following message: " + exp.Message, null, null);
                        AppController.Current.Logger.writeToLogfile(exp);
                    }
                }
            }
        }
Example #5
0
        public static bool setFavoritState(AccountTwitter account, TwitterItem item, bool newState)
        {
            try
            {
                TwitterStatus status;
                if (newState)
                {
                    FavoriteTweetOptions options = new FavoriteTweetOptions();
                    options.Id = Convert.ToInt64(item.Id);
                    status     = account.twitterService.FavoriteTweet(options);
                }
                else
                {
                    UnfavoriteTweetOptions options = new TweetSharp.UnfavoriteTweetOptions();
                    options.Id = Convert.ToInt64(item.Id);
                    status     = account.twitterService.UnfavoriteTweet(options);
                }

                if (status != null)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception exp)
            {
                System.Windows.MessageBox.Show(exp.Message, "Sending of dm failed");
                return(false);
            }
        }
Example #6
0
        private void MenuItemBlockUser_Click(object sender, RoutedEventArgs e)
        {
            MenuItem menuItem = sender as MenuItem;

            if (menuItem != null)
            {
                TwitterItem item = menuItem.CommandParameter as TwitterItem;
                if (item != null)
                {
                    if (item.Author != null)
                    {
                        Filter filter = new Filter();
                        filter.Name            = "@" + item.Author.Username;
                        filter.IsExcludeFilter = true;
                        filter.FilterAuthor    = true;
                        filter.FilterText      = false;
                        filter.FilterString    = item.Author.Username;
                        AppController.Current.AllFilters.Add(filter);
                        View view = AppController.Current.mainWindow.comboBoxViews.SelectedItem as View;
                        if (view != null)
                        {
                            view.subscribeToFilter(filter);
                        }
                    }
                }
            }
        }
Example #7
0
        void backgroundWorkerBuildConversation_ProgressChanged(object sender, System.ComponentModel.ProgressChangedEventArgs e)
        {
            TwitterItem item = (TwitterItem)e.UserState;

            item.accountId = startItem.accountId;
            conversationItems.Add(item);
        }
Example #8
0
        private void buttonRetweet_Click(object sender, RoutedEventArgs e)
        {
            Button button = sender as Button;

            if (button != null)
            {
                TwitterItem item = button.CommandParameter as TwitterItem;
                if (item != null)
                {
                    if (AppController.Current.AllTwitterAccounts.Count == 1)
                    {
                        AppController.Current.retweet(AppController.Current.AllTwitterAccounts[0] as AccountTwitter, item);
                    }
                    else
                    {
                        AccountTwitter account = AppController.Current.getAccountForId(item.accountId);
                        if (account == null)
                        {
                            AppController.Current.retweet(AppController.Current.AllTwitterAccounts[0] as AccountTwitter, item);
                        }
                        AppController.Current.retweet(account, item);
                    }
                }
            }
        }
Example #9
0
        public ShowConversationWindow(TwitterItem item)
        {
            InitializeComponent();
            if (item == null)
            {
                return;
            }
            conversationItems = new ObservableCollection <TwitterItem>();
            conversationItems.Add(item);
            startItem = item;
            listBoxItems.listView_Tweets.ItemsSource = conversationItems;
            listBoxItems.listView_Tweets.Items.SortDescriptions.Add(new SortDescription("CreatedAt", ListSortDirection.Descending));

            backgroundWorkerBuildConversation = new System.ComponentModel.BackgroundWorker();
            backgroundWorkerBuildConversation.WorkerSupportsCancellation = true;
            backgroundWorkerBuildConversation.WorkerReportsProgress      = true;
            backgroundWorkerBuildConversation.ProgressChanged           += new ProgressChangedEventHandler(backgroundWorkerBuildConversation_ProgressChanged);
            backgroundWorkerBuildConversation.DoWork             += new System.ComponentModel.DoWorkEventHandler(backgroundWorkerBuildConversation_DoWork);
            backgroundWorkerBuildConversation.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(backgroundWorkerBuildConversation_RunWorkerCompleted);
            backgroundWorkerBuildConversation.RunWorkerAsync();
            if (AppController.Current.mainWindow != null)
            {
                this.Top = AppController.Current.mainWindow.Top;
                if (AppController.Current.mainWindow.Left > this.Width + 5)
                {
                    this.Left = AppController.Current.mainWindow.Left - this.Width - 5;
                }
                else
                {
                    this.Left = AppController.Current.mainWindow.Left + AppController.Current.mainWindow.Width + 5;
                }
            }

            Show();
        }
Example #10
0
        private void contextMarkReadAllOlderInAccount_Click(object sender, RoutedEventArgs e)
        {
            MenuItem menuItem = sender as MenuItem;

            if (menuItem != null)
            {
                TwitterItem item = menuItem.CommandParameter as TwitterItem;
                if (item != null)
                {
                    AccountTwitter account = AppController.Current.getAccountForId(item.accountId);
                    if (account != null)
                    {
                        foreach (TwitterItem twitterItem in account.AllItems)
                        {
                            if (twitterItem != null)
                            {
                                if (twitterItem.Id <= item.Id)
                                {
                                    twitterItem.markRead();
                                    GeneralFunctions.ReadStates.AddTweetAsBeingRead(twitterItem.Id);
                                }
                            }
                        }
                    }
                }
            }
        }
        public static TwitterItem getItemFromTwitterSearchResult(TwitterStatus result, AccountTwitter account)
        {
            AppController.Current.Logger.writeToLogfile("getItemFromTwitterSearchResult started");
            TwitterItem item = getItemFromStatus(result, account);

            item.isSearchResult = true;
            AppController.Current.Logger.writeToLogfile("getItemFromTwitterSearchResult finihsed");
            return(item);
        }
        void menuItemCopyTweet_Click(object sender, RoutedEventArgs e)
        {
            TwitterItem item = this.DataContext as TwitterItem;

            if (item != null)
            {
                Clipboard.SetText(item.Text);
            }
        }
Example #13
0
 public void setToBeEditedItem(TwitterItem item)
 {
     toBeEditedItem = item;
     if (item != null)
     {
         textBoxTweet.textBoxContent.Text = item.Text;
         labelInReplyTo.Content           = "Editing tweet - old version will be deleted";
         labelInReplyTo.Visibility        = Visibility.Visible;
         comboBoxAccount.comboBoxAccounts.SelectedItem = item.OwnAccountHavingWrittenThisTweet;
     }
 }
        private void buttonDM_Click(object sender, RoutedEventArgs e)
        {
            Button button = sender as Button;

            if (button != null)
            {
                TwitterItem item = button.CommandParameter as TwitterItem;
                if (item != null)
                {
                    AppController.Current.openComposeNewTweet(null, item.Author.Username);
                }
            }
        }
        private void buttonFavorit_Click(object sender, RoutedEventArgs e)
        {
            Button button = sender as Button;

            if (button != null)
            {
                TwitterItem item = button.CommandParameter as TwitterItem;
                if (item != null)
                {
                    AppController.Current.favoriteItem(item);
                }
            }
        }
Example #16
0
        private void buttonHumanReadableAgo_Click_1(object sender, RoutedEventArgs e)
        {
            TwitterItem item = this.DataContext as TwitterItem;

            if (item != null)
            {
                try
                {
                    System.Diagnostics.Process.Start(item.itemPermaLink);
                }
                catch { }
            }
        }
Example #17
0
        private void ButtonConversation_Click(object sender, RoutedEventArgs e)
        {
            Button button = sender as Button;

            if (button != null)
            {
                TwitterItem item = button.CommandParameter as TwitterItem;
                if (item != null)
                {
                    UserInterface.Twitter.ShowConversationWindow window = new UserInterface.Twitter.ShowConversationWindow(item);
                }
            }
        }
Example #18
0
        public void isReplyToItem(TwitterItem item)
        {
            if (item == null)
            {
                return;
            }
            if (item.RetweetedItem != null)
            {
                item = item.RetweetedItem;
            }
            textBoxTweet.Text       = "@" + item.Author.Username + " ";
            inReplyToId             = item.Id;
            labelInReplyTo.Content  = "In reply to @" + item.Author.Username;
            labelInReplyTo.ToolTip  = item.Text;
            buttonSendTweet.Content = "Send reply";

            labelInReplyTo.Visibility = Visibility.Visible;
            List <string> alreadyShownUser  = new List <string>();
            int           positionOfCursor  = textBoxTweet.Text.Length;
            int           lengthOfSelection = 0;

            if (item.accountId != 0)
            {
                try
                {
                    alreadyShownUser.Add("@" + AppController.Current.getAccountForId(item.accountId).Login.Username.ToLower());
                }
                catch { }
            }
            alreadyShownUser.Add("@" + item.Author.Username.ToLower());
            if (item.ElementsInText != null)
            {
                foreach (TextSubTypes.ISubType element in item.ElementsInText)
                {
                    if (element.GetType() == typeof(TextSubTypes.User))
                    {
                        TextSubTypes.User userEnt = element as TextSubTypes.User;

                        if (!alreadyShownUser.Contains(userEnt.userName.ToLower()))
                        {
                            alreadyShownUser.Add(userEnt.userName.ToLower());
                            textBoxTweet.Text += userEnt.userName.TrimEnd(AppController.Current.TrimCharacters.ToArray()) + " ";
                            lengthOfSelection += userEnt.userName.Length + 2;
                        }
                    }
                }
            }
            textBoxTweet.textBoxContent.Select(positionOfCursor, lengthOfSelection);
            textBoxTweet.textBoxContent.Focus();
        }
Example #19
0
        void menuItemRetweet_Click(object sender, RoutedEventArgs e)
        {
            TwitterItem item     = this.DataContext as TwitterItem;
            MenuItem    menuItem = sender as MenuItem;

            if (menuItem != null)
            {
                AccountTwitter account = menuItem.CommandParameter as AccountTwitter;
                if (account != null)
                {
                    AppController.Current.retweet(account, item);
                }
            }
        }
        private void ButtonUsernameAuthorRetweet_Click(object sender, RoutedEventArgs e)
        {
            Button button = sender as Button;

            if (button != null)
            {
                TwitterItem item = button.CommandParameter as TwitterItem;
                if (item != null)
                {
                    ShowUser userInfo = new ShowUser();
                    userInfo.setPerson(item.RetweetedItem.Author, item.RetweetedItem.RetrievingAccount);
                    userInfo.Show();
                }
            }
        }
Example #21
0
        private void ButtonEditTweet_Click(object sender, RoutedEventArgs e)
        {
            Button button = sender as Button;

            if (button != null)
            {
                TwitterItem item = button.CommandParameter as TwitterItem;
                if (item != null)
                {
                    UserInterface.ComposeNewTweet editTweetWindow = new ComposeNewTweet();
                    editTweetWindow.setToBeEditedItem(item);
                    editTweetWindow.Show();
                }
            }
        }
        void menuItemOpenInSearch_Click(object sender, RoutedEventArgs e)
        {
            MenuItem menuItem = sender as MenuItem;

            if (menuItem != null)
            {
                TwitterItem item = this.DataContext as TwitterItem;
                if (item != null)
                {
                    AppController.Current.openSearchWindow(menuItem.CommandParameter.ToString(), item.RetrievingAccount);
                }

                AppController.Current.openSearchWindow(menuItem.CommandParameter.ToString(), AppController.Current.AllTwitterAccounts[0]);
            }
        }
Example #23
0
        private void ButtonDeleteTweet_Click(object sender, RoutedEventArgs e)
        {
            Button button = sender as Button;

            if (button != null)
            {
                TwitterItem item = button.CommandParameter as TwitterItem;
                if (item != null)
                {
                    if (item.IsOwnTweet)
                    {
                        item.DeleteThisTweet();
                    }
                }
            }
        }
Example #24
0
        private void MenuItemReportUser_Click(object sender, RoutedEventArgs e)
        {
            MenuItem menuItem = sender as MenuItem;

            if (menuItem != null)
            {
                TwitterItem item = menuItem.CommandParameter as TwitterItem;
                if (item != null)
                {
                    AccountTwitter account = AppController.Current.getAccountForId(item.accountId);
                    if (item.Author != null && account != null)
                    {
                        AppController.Current.ReportUser(account, item.Author);
                    }
                }
            }
        }
Example #25
0
    private void AddTweet(TwitterItem item)
    {
        var newTweet = Instantiate(originalTweet);

        var tweetName = newTweet.transform.Find("TweetHolder/HandleHolder/ActualName");

        tweetName.GetComponent <TMP_Text>().text = item.Name;

        var handle = newTweet.transform.Find("TweetHolder/HandleHolder/Handle");

        handle.GetComponent <TMP_Text>().text = "@" + item.Username;

        var contents = newTweet.transform.Find("TweetHolder/TweetContents");

        contents.GetComponent <TMP_Text>().text = item.Tweet;

        newTweet.transform.SetParent(feed.transform, false);
        newTweet.transform.SetAsFirstSibling();
    }
        static void hashtag_Click(object sender, RoutedEventArgs e)
        {
            Hyperlink link  = sender as Hyperlink;
            IItem     iitem = link.DataContext as IItem;

            if (iitem.GetType() == typeof(TwitterItem))
            {
                TwitterItem item = iitem as TwitterItem;
                if (item != null)
                {
                    AppController.Current.openSearchWindow("#" + link.TargetName, item.RetrievingAccount);
                }

                AppController.Current.openSearchWindow("#" + link.TargetName, AppController.Current.AllTwitterAccounts[0]);
            }
            else if (iitem.GetType() == typeof(ApnItem))
            {
                System.Diagnostics.Process.Start("https://alpha.app.net/hashtags/" + link.TargetName);
            }
        }
Example #27
0
        private void buttonToggleReadState_Click(object sender, RoutedEventArgs e)
        {
            Button button = sender as Button;

            if (button != null)
            {
                TwitterItem item = button.CommandParameter as TwitterItem;
                if (item != null)
                {
                    if (item.IsRead)
                    {
                        item.markUnread();
                    }
                    else
                    {
                        item.markRead();
                    }
                }
            }
        }
Example #28
0
        void menuItemTraditionalRetweet_Click(object sender, RoutedEventArgs e)
        {
            MenuItem menuItem = sender as MenuItem;

            if (menuItem != null)
            {
                TwitterItem item = this.DataContext as TwitterItem;
                if (item != null)
                {
                    UserInterface.ComposeNewTweet composeWindow = new UserInterface.ComposeNewTweet();
                    composeWindow.textBoxTweet.Text = "RT @" + item.Author.Username + " " + item.Text;
                    AccountTwitter account = AppController.Current.getAccountForId(item.accountId);
                    if (account != null)
                    {
                        composeWindow.selectAccount(account);
                    }
                    composeWindow.Show();
                }
            }
        }
Example #29
0
        private void buttonReply_Click(object sender, RoutedEventArgs e)
        {
            Button button = sender as Button;

            if (button != null)
            {
                TwitterItem item = button.CommandParameter as TwitterItem;
                if (item != null)
                {
                    AccountTwitter account = AppController.Current.getAccountForId(item.accountId);
                    if (!item.isDirectMessage)
                    {
                        AppController.Current.openComposeNewTweet(account, item);
                    }
                    else
                    {
                        AppController.Current.openComposeNewTweet(account, item.Author.Username);
                    }
                }
            }
        }
Example #30
0
        void twitter_DownloadStringCompleted(object senders, DownloadStringCompletedEventArgs e)
        {
            int count = 0;
            try
            {
                List<TwitterItem> contentList = new List<TwitterItem>();
                JArray ja = new JArray();

                try
                {
                    ja = JArray.Parse("[ " + e.Result + " ]");
                }
                catch
                {
                    MessageBox.Show("Error getting data from twitter, The data was invalid", "Error", MessageBoxButton.OK);
                }
                //
                for (count = 0; count < ja.Count; count++)
                {
                    for (int i = 0; i < ja[count]["results"].Count(); i++)
                    {
                        TwitterItem content = new TwitterItem();

                        content.ImageSource = ja[count]["results"][i]["profile_image_url"].ToString();
                        content.UserName = ja[count]["results"][i]["from_user"].ToString();
                        content.Message = ja[count]["results"][i]["text"].ToString();

                        contentList.Add(content);
                    }
                }

                tweetList.ItemsSource = contentList.ToList(); 
            }
            catch
            {
                MessageBox.Show("A network error has occured, please try again!");
            }
        }
        private void OnTwitterServiceCompleted(object sender, OpenReadCompletedEventArgs e)
        {
            if (e.Error != null)
            {
                return;
            }
            var res = e.Result;

            var       reader    = new StreamReader(res);
            var       result    = reader.ReadToEnd();
            XmlReader XMLReader = XmlReader.Create(new MemoryStream(System.Text.UTF8Encoding.UTF8.GetBytes(result)));

            XDocument  xmlTweets = XDocument.Load(XMLReader);
            XNamespace ns        = "http://www.w3.org/2005/Atom";
            var        xTweets   = xmlTweets.Root.Descendants(ns + "entry");

            this.lstTwitter.Items.Clear();
            var cnt = 0;

            foreach (var xTweet in xTweets)
            {
                if (cnt < 4)
                {
                    var link    = xTweet.Elements(ns + "link").Where(x => x.Attribute("rel").Value == "image").SingleOrDefault();
                    var message = Regex.Replace(xTweet.Element(ns + "content").Value, "<.*?>", string.Empty);
                    var tweet   = new TwitterItem
                    {
                        ImageSource = link.Attribute("href").Value,
                        Message     = message,
                        UserName    = xTweet.Element(ns + "author").Element(ns + "name").Value
                    };
                    this.lstTwitter.Items.Add(tweet);
                }
                cnt++;
            }
            twitterTimer.Start();
        }