public async System.Threading.Tasks.Task <string> UploadPictureAsync(string pathf, Stream f, int petid, string hashtag)
        {
            if (petid == -1)
            {
                return(English.ChooseAnimal());
            }
            if (!String.IsNullOrEmpty(pathf))
            {
                string uniqueBlobName = await DependencyService.Get <IBlobStorage.IBlobStorage>().UploadFileAsync(pathf, f);

                uniqueBlobName = GlobalVariables.blobstorageurl + uniqueBlobName;

                Petpictures petpictures = new Petpictures()
                {
                    PetID      = petid,
                    PictureURL = uniqueBlobName,
                    UploadDate = DateTime.UtcNow.ToString("")
                };

                int success = DependencyService.Get <IDBAccess.IBlobStorage>().InsertPetpictures(petpictures);

                if (success == -1)
                {
                    return(English.SomethingWentWrong());
                }
                else
                {
                    if (!String.IsNullOrEmpty(hashtag))
                    {
                        var hashtags = hashtag.Trim().Split('#');

                        bool uploadedHashtag = true;

                        foreach (var item in hashtags)
                        {
                            if (!string.IsNullOrEmpty(item))
                            {
                                Hashtags ahashtag = new Hashtags();

                                ahashtag.hashtag       = item.Replace(" ", string.Empty);
                                ahashtag.petpicturesid = success;

                                uploadedHashtag = DependencyService.Get <IDBAccess.IBlobStorage>().InsertHashtags(ahashtag);

                                if (!uploadedHashtag)
                                {
                                    return(English.SomethingWentWrong());
                                }
                            }
                        }
                    }

                    return(English.Empty());
                }
            }
            else
            {
                return(English.ChooseAPicture());
            }
        }
示例#2
0
        /// <summary>
        /// Update statistics with a new tweet that has been received from the Twitter api
        /// </summary>
        /// <param name="jsonString"></param>
        public void ProcessTweet(string jsonString)
        {
            var tweet = JsonConvert.DeserializeObject <Tweet>(jsonString);

            // not sure why this is happening, but receiving empty tweets from the API occasionally - throw them away
            if (tweet == null)
            {
                return;
            }

            // this is compute intensive, perform outside of the lock
            var foundEmojis = _emojiHelper.FindEmojis(tweet.data.text);

            // update statistics with information about this tweet - lock to be threadsafe
            lock (padlock)
            {
                Averages.Recompute();

                Emojis.AddProperties(foundEmojis);

                Hashtags.AddProperties(tweet.data.entities?.hashtags?.Select(x => x.tag));

                Urls.AddProperties(tweet.data.entities?.urls);
            }
        }
        public void ShouldReturnAnInstanceOfHashtags()
        {
            setRequireVariables();
            Hashtags hashtags = client.Hashtags(text: text);

            Assert.IsInstanceOfType(hashtags, typeof(Hashtags));
        }
示例#4
0
 internal void RemoveHashTag(string hashTag)
 {
     if (Hashtags == null)
     {
         return;
     }
     Hashtags.Remove(hashTag);
 }
示例#5
0
 /// <summary>
 /// Add the tag to the list of hashtags
 /// </summary>
 /// <param name="newTag"></param>
 public void AddHashTag(string newTag)
 {
     if (Hashtags == null)
     {
         Hashtags = new HashSet <string>();
     }
     Hashtags.Add(newTag);
 }
示例#6
0
 private void InitialiseHashtagLikes()
 {
     HashtagLikes = new List <int>();
     for (int i = 0; i < Hashtags.Count(); i++)
     {
         HashtagLikes.Add(0);
     }
 }
        public void Hashtagss()
        {
            hashtags = new ObservableCollection <string>();

            foreach (InstaSearchData hash in this.lista)
            {
                Hashtags.Add(hash.Hastag);
            }
        }
        public string UploadPictureAsync(bool addedPhoto, Stream f, int petid, string hashtag)
        {
            if (petid == -1)
            {
                return(English.ChooseAnimal());
            }
            if (addedPhoto)
            {
                Petpictures petpictures = new Petpictures()
                {
                    PetID      = petid,
                    PictureURL = new Segédfüggvények().ReadFully(f),
                    UploadDate = DateTime.UtcNow.ToString("")
                };

                int success = GlobalVariables.databaseConnection.UploadPhoto(petpictures);

                if (success == -1)
                {
                    return(English.SomethingWentWrong());
                }
                else
                {
                    if (!string.IsNullOrEmpty(hashtag))
                    {
                        var hashtags = hashtag.Trim().Split('#');

                        bool uploadedHashtag = true;

                        foreach (var item in hashtags)
                        {
                            if (!string.IsNullOrEmpty(item))
                            {
                                Hashtags ahashtag = new Hashtags();

                                ahashtag.hashtag       = item.Replace(" ", string.Empty);
                                ahashtag.petpicturesid = success;

                                uploadedHashtag = GlobalVariables.databaseConnection.InsertHashtags(ahashtag);

                                if (!uploadedHashtag)
                                {
                                    return(English.SomethingWentWrong());
                                }
                            }
                        }
                    }

                    return(English.Empty());
                }
            }
            else
            {
                return(English.ChooseAPicture());
            }
        }
        public IHttpActionResult Hashtags(HashtagsRequest hashtagsRequest)
        {
            if (this.Request.Method == HttpMethod.Options)
            {
                return(new OptionsOkResult());
            }

            Hashtags result = this.textAnalize.Hashtags(hashtagsRequest.Url, hashtagsRequest.Text, hashtagsRequest.Language);

            return(Ok(result));
        }
示例#10
0
        /// <summary>
        /// returns all hashtags
        /// from the hashtag list
        /// as well as the number of times
        /// they appear in the list
        /// </summary>
        /// <returns>strout</returns>
        public string getAllHashtags()
        {
            string strout = "";
            var    q      = Hashtags.GroupBy(x => x)
                            .Select(g => new { Value = g.Key, Count = g.Count() })
                            .OrderByDescending(x => x.Count);

            foreach (var h in q)
            {
                strout = strout + ("Hashtag: " + h.Value + " Mentions: " + h.Count + "\n");
            }
            return(strout);
        }
        public bool InsertHashtags(Hashtags hashtags)
        {
            var message = Segédfüggvények.PostPut(HttpMethod.Post, hashtags, "Hashtags/Inserthashtag");

            if (message.StatusCode == System.Net.HttpStatusCode.OK)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
示例#12
0
        public void ShouldAddHashtag()
        {
            //arrange
            var hashtag = new Hashtags
            {
                Name = Guid.NewGuid().ToString().Substring(10)
            };
            var dataLayer = new DataLayer.SQL.DataLayer(ConnectionString);

            //act
            hashtag = dataLayer.AddHashtag(hashtag);
            //asserts
            var resultHashtag = dataLayer.GetHashtag(hashtag.Id);

            Assert.AreEqual(hashtag.Name, resultHashtag.Name);
        }
示例#13
0
        //получение id хэштега
        public Guid GetHashtagId(string name)
        {
            int  count;
            Guid id;

            using (var connection = new SqlConnection(_connectionString))
            {
                connection.Open();
                using (var command = connection.CreateCommand())
                {
                    command.CommandText = "select count (id) from Hashtags where name = @name";
                    command.Parameters.AddWithValue("@name", name);
                    command.ExecuteNonQuery();

                    using (var reader = command.ExecuteReader())
                    {
                        reader.Read();
                        count = reader.GetInt32(0);
                    }
                }
                if (count == 0) //create new #
                {
                    Hashtags hashtag = new Hashtags
                    {
                        Id   = Guid.NewGuid(),
                        Name = name
                    };
                    AddHashtag(hashtag);
                    id = hashtag.Id;
                }
                else
                {
                    using (var command2 = connection.CreateCommand())
                    {
                        command2.CommandText = "select id from Hashtags where name = @name";
                        command2.Parameters.AddWithValue("@name", name);
                        command2.ExecuteNonQuery();
                        using (var reader = command2.ExecuteReader())
                        {
                            reader.Read();
                            id = reader.GetGuid(0);
                        }
                    }
                }
            }
            return(id);
        }
示例#14
0
        //заполнение таблицы Hashtag
        public Hashtags AddHashtag(Hashtags hashtag)
        {
            using (var connection = new SqlConnection(_connectionString))
            {
                connection.Open();
                using (var command = connection.CreateCommand())
                {
                    //hashtag.Id = Guid.NewGuid();
                    command.CommandText = "insert into Hashtags (ID, Name) values (@ID, @Name)";
                    command.Parameters.AddWithValue("@ID", hashtag.Id);
                    command.Parameters.AddWithValue("@Name", hashtag.Name);
                    command.ExecuteNonQuery();
                    logger.Info("Хештег {0} добавлен", hashtag.Name);

                    return(hashtag);
                }
            }
        }
示例#15
0
        private void CheckTrending(string tweetBody)
        {
            Regex regex   = new Regex(@"(?<=\s|^)#(\w*[A-Za-z_]+\w*)");
            var   matches = regex.Matches(tweetBody);

            foreach (Match item in matches)
            {
                Hashtags tag = Instance.Hashtags.FirstOrDefault(x => item.Value == x.Hashtag);
                if (tag != null)
                {
                    var index = Instance.Hashtags.IndexOf(tag);
                    tag.Count += 1;
                    Instance.Hashtags[index] = tag;
                }
                else
                {
                    Instance.Hashtags.Add(new Hashtags(item.Value, 1));
                }
            }
        }
示例#16
0
        private void InitializeEntities(TweetMode tweetMode)
        {
            // NOTE: The STREAMING API and REST API does not provide the same JSON structure based on the TweetMode used.
            //
            // * STREAMING API : Adds a new ExtendedTweet regardless of the TweetMode. To have some consistency with the REST API,
            //   we decided that in COMPAT mode, the Entities will be restricted to what is available in the REST API.
            // * REST API : Adds FullText and additional properties if the TweetMode is extended.

            var isTweetComingFromStreamingAPI           = _tweetDTO?.ExtendedTweet != null;
            var useStreamingApiExtendedTweetForEntities = tweetMode == TweetMode.Extended && isTweetComingFromStreamingAPI;

            // Get the entities and extended_entities for whichever Tweet DTO we're using
            var entities         = useStreamingApiExtendedTweetForEntities ? _tweetDTO.ExtendedTweet.LegacyEntities : _tweetDTO?.LegacyEntities;
            var extendedEntities = useStreamingApiExtendedTweetForEntities ? _tweetDTO.ExtendedTweet.ExtendedEntities : _tweetDTO?.Entities;

            // Populate for each type of entity.

            Urls         = entities?.Urls;
            UserMentions = entities?.UserMentions;
            Hashtags     = entities?.Hashtags;
            Symbols      = entities?.Symbols;

            // Media can also be in the extended_entities field. https://dev.twitter.com/overview/api/entities-in-twitter-objects#extended_entities
            // If that's populated, we must use it instead or risk missing media
            Medias = extendedEntities?.Medias ?? entities?.Medias ?? new List <IMediaEntity>();

            // If this is a retweet, it's also now possible for an entity to get cut off of the end of the tweet entirely.
            // If the same Tweet is fetched over the REST API, these entities get excluded, so lets do the same.
            if (_tweetDTO?.RetweetedTweetDTO != null)
            {
                Urls         = Urls?.Where(e => e.Indices[0] != e.Indices[1]).ToList();
                UserMentions = UserMentions?.Where(e => e.Indices[0] != e.Indices[1]).ToList();
                Hashtags     = Hashtags?.Where(e => e.Indices[0] != e.Indices[1]).ToList();
                Symbols      = Symbols?.Where(e => e.Indices[0] != e.Indices[1]).ToList();
                Medias       = Medias?.Where(e => e.Indices[0] != e.Indices[1]).ToList();
            }
        }
 public bool InsertHashtags(Hashtags hashtags)
 {
     return(databaseConnections.InsertHashtags(hashtags));
 }
示例#18
0
 /// <summary>
 /// adds a hashtag to the hashtag list
 /// </summary>
 /// <param name="url"></param>
 public void addHashtags(string tag)
 {
     Hashtags.Add(tag);
 }
示例#19
0
        private void MainWindow_Loaded(object sender, RoutedEventArgs e)
        {
            var sb = new SQLiteConnectionStringBuilder
            {
                DataSource = "cache.db3"
            };

            using (var connection = new SQLiteConnection(sb.ToString()))
            {
                connection.Open();

                using (var cmd = connection.CreateCommand())
                {
                    cmd.CommandText = "SELECT Id, Tag, Expires FROM Hashtags;";
                    using (var reader = cmd.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            var tag = new HashtagEntry();

                            //var tmp = reader.GetValue( 0 );
                            //tag.Id = (ulong)reader.GetInt32( 0 );
                            tag.Hashtag = reader.GetString(1);
                            tag.Expires = Date(reader.GetInt64(2));

                            Hashtags.Add(tag);
                        }
                    }
                }

                using (var cmd = connection.CreateCommand())
                {
                    cmd.CommandText = "SELECT Id, UserName, UserData, Expires FROM Users;";
                    using (var reader = cmd.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            var usr = new UserEntry();
                            usr.Id   = (ulong)reader.GetInt64(0);
                            usr.Name = reader.GetString(1);
                            usr.Json = !reader.IsDBNull(2)
                                                                ? reader.GetString(2)
                                                                : "";
                            usr.Expires = Date(reader.GetInt64(3));

                            Users.Add(usr);
                        }
                    }
                }

                using (var cmd = connection.CreateCommand())
                {
                    cmd.CommandText = "SELECT Id, UserId, StatusData, Expires FROM Statuses;";
                    using (var reader = cmd.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            var status = new StatusEntry();
                            status.Id      = (ulong)reader.GetInt64(0);
                            status.User    = (ulong)reader.GetInt64(1);
                            status.Json    = reader.GetString(2);
                            status.Expires = Date(reader.GetInt64(3));

                            Statuses.Add(status);
                        }
                    }
                }
            }
        }
示例#20
0
 internal bool AlreadyHasHashTag(string newTag)
 {
     return(Hashtags != null && Hashtags.Contains(newTag));
 }
        private void textBox1_TextChanged(object sender, TextChangedEventArgs e)
        {
            if (ReplacingNow)
            {
                return;
            }

            if (!WordStart)
            {
                foreach (TextChange change in e.Changes)
                {
                    if (change.AddedLength > 0)
                    {
                        switch (textBoxContent.Text.Substring(change.Offset, 1))
                        {
                        case " ":
                        case ",":
                        case ".":
                        case ":":
                        case ";":
                        case "(":
                        case ")":
                        case "!":
                        case "?":
                        case "\"":
                            WordStart       = true;
                            UsernameStarted = false;
                            HashtagStarted  = false;
                            break;

                        default:
                            WordStart = false;
                            break;
                        }
                        if (WordStart)
                        {
                            break;
                        }
                    }
                }
            }
            if (UsernameStarted || HashtagStarted)
            {
                foreach (TextChange change in e.Changes)
                {
                    if (change.AddedLength > 0)
                    {
                        switch (textBoxContent.Text.Substring(change.Offset, 1))
                        {
                        case " ":
                        case ",":
                        case ".":
                        case ":":
                        case ";":
                        case "(":
                        case ")":
                        case "!":
                        case "?":
                        case "\"":
                            WordStart       = true;
                            UsernameStarted = false;
                            HashtagStarted  = false;
                            break;

                        default:
                            WordStart = false;
                            break;
                        }
                        if (WordStart)
                        {
                            break;
                        }
                    }
                }
            }



            if (WordStart && (!UsernameStarted && !HashtagStarted))
            {
                foreach (TextChange change in e.Changes)
                {
                    if (change.AddedLength > 0)
                    {
                        if (textBoxContent.Text.Substring(change.Offset, 1) == " ")
                        {
                            WordStart = true;
                            continue;
                        }
                        else
                        {
                            WordStart = false;
                        }
                        if (textBoxContent.Text.Substring(change.Offset, 1) == "@")
                        {
                            UsernameStarted = true;
                            StartPosition   = change.Offset;
                            CurrentText     = "";
                        }
                        else if (textBoxContent.Text.Substring(change.Offset, 1) == "#")
                        {
                            HashtagStarted = true;
                            StartPosition  = change.Offset;
                            CurrentText    = "";
                        }
                    }
                }
            }

            if (UsernameStarted)
            {
                foreach (TextChange change in e.Changes)
                {
                    if (change.AddedLength > 0)
                    {
                        CurrentText += textBoxContent.Text.Substring(change.Offset, change.AddedLength);
                    }
                    else if (change.RemovedLength > 0)
                    {
                        if (change.RemovedLength >= CurrentText.Length)
                        {
                            UsernameStarted = false;
                            CurrentText     = "";
                            MatchingTexts.Clear();
                            popupMatchingUsernames.IsOpen = false;
                            return;
                        }
                        else if (change.RemovedLength == CurrentText.Length)
                        {
                            WordStart   = true;
                            CurrentText = "";
                            popupMatchingUsernames.IsOpen = false;
                            MatchingTexts.Clear();
                        }
                        else
                        {
                            CurrentText = CurrentText.Substring(0, CurrentText.Length - change.RemovedLength);
                        }
                    }
                }
                if (Usernames.Where(name => name.ToLower().StartsWith(CurrentText.ToLower())).Count() > 0)
                {
                    MatchingTexts.Clear();
                    foreach (string username in Usernames.Where(name => name.ToLower().StartsWith(CurrentText.ToLower())))
                    {
                        MatchingTexts.Add(username);
                        if (MatchingTexts.Count >= Properties.Settings.Default.MaxNumberOfEntriesInAutocomplete)
                        {
                            break;
                        }
                    }
                    popupMatchingUsernames.PlacementRectangle = textBoxContent.GetRectFromCharacterIndex(textBoxContent.CaretIndex, true);
                    popupMatchingUsernames.IsOpen             = true;
                }
                else
                {
                    MatchingTexts.Clear();
                    popupMatchingUsernames.IsOpen = false;
                }
            }
            else if (HashtagStarted)
            {
                foreach (TextChange change in e.Changes)
                {
                    if (change.AddedLength > 0)
                    {
                        CurrentText += textBoxContent.Text.Substring(change.Offset, change.AddedLength);
                    }
                    else if (change.RemovedLength > 0)
                    {
                        if (change.RemovedLength >= CurrentText.Length)
                        {
                            HashtagStarted = false;
                            CurrentText    = "";
                            MatchingTexts.Clear();
                            popupMatchingUsernames.IsOpen = false;
                            return;
                        }
                        else if (change.RemovedLength == CurrentText.Length)
                        {
                            WordStart   = true;
                            CurrentText = "";
                            popupMatchingUsernames.IsOpen = false;
                            MatchingTexts.Clear();
                        }
                        else
                        {
                            CurrentText = CurrentText.Substring(0, CurrentText.Length - change.RemovedLength);
                        }
                    }
                }
                if (Hashtags.Where(tag => tag.ToLower().StartsWith(CurrentText.ToLower())).Count() > 0)
                {
                    MatchingTexts.Clear();
                    foreach (string hashtag in Hashtags.Where(tag => tag.ToLower().StartsWith(CurrentText.ToLower())))
                    {
                        MatchingTexts.Add(hashtag);
                        if (MatchingTexts.Count >= Properties.Settings.Default.MaxNumberOfEntriesInAutocomplete)
                        {
                            break;
                        }
                    }
                    popupMatchingUsernames.PlacementRectangle = textBoxContent.GetRectFromCharacterIndex(textBoxContent.CaretIndex, true);
                    popupMatchingUsernames.IsOpen             = true;
                }
                else
                {
                    MatchingTexts.Clear();
                    popupMatchingUsernames.IsOpen = false;
                }
            }
        }