Ejemplo n.º 1
0
        /// <summary>
        ///     Gets my comments.
        /// </summary>
        /// <returns>List&lt;MyComments&gt;.</returns>
        public List <MyComments> GetMyComments()
        {
            string plainJson;

            using (var client = new MyWebClient())
            {
                client.Encoding = Encoding.UTF8;
                plainJson       = client.DownloadString(Constants.LinkGetMyComments.ToLink());
            }

            JsonMyComments.RootObject myComments = JsonConvert.DeserializeObject <JsonMyComments.RootObject>(plainJson);
            return(myComments.posts.Select(item => new MyComments
            {
                PostId = item.post_id,
                Message = item.message,
                HexColor = item.color,
                VoteCount = item.vote_count,
                IsOwn = item.post_own.Equals("own"),
                Latitude = item.location.loc_coordinates.lat.ToString(),
                Longitude = item.location.loc_coordinates.lng.ToString(),
                LocationName = item.location.name
            }).ToList());
        }
Ejemplo n.º 2
0
        /// <summary>
        ///     Refreshes the access token.
        /// </summary>
        /// <param name="accessToken">The access token.</param>
        /// <param name="refreshToken">The refresh token.</param>
        /// <returns>Tokens.</returns>
        public Tokens RefreshAccessToken(string accessToken, string refreshToken)
        {
            string       plainJson;
            const string payload = @"{""refresh_token"": ""{RT}""}";

            using (var client = new MyWebClient())
            {
                client.Encoding = Encoding.UTF8;
                client.Headers.Add("Content-Type", "application/json");
                plainJson = client.UploadString(Constants.LinkRefreshToken.Replace("{AT}", accessToken),
                                                payload.Replace("{RT}", refreshToken));
            }

            JsonRefreshTokens.RootObject objRefToken =
                JsonConvert.DeserializeObject <JsonRefreshTokens.RootObject>(plainJson);

            return(new Tokens
            {
                AccessToken = objRefToken.access_token,
                ExpireTimestamp = objRefToken.expiration_date,
                RefreshToken = refreshToken
            });
        }
Ejemplo n.º 3
0
            /// <summary>
            ///     Get's all Jodels from this channel.
            /// </summary>
            /// <param name="channel">The channel.</param>
            /// <returns>List&lt;ChannelJodel&gt;.</returns>
            public async Task <List <ChannelJodel> > GetJodelsAsync(string channel)
            {
                string plainJson;

                using (var client = new MyWebClient())
                {
                    client.Encoding = Encoding.UTF8;
                    var taskResult = await Task.FromResult(
                        client.DownloadStringTaskAsync(new Uri(Constants.LinkGetJodelsFromChannel.ToLink(channel))));

                    plainJson = taskResult.Result;
                }

                JsonGetJodelsFromChannel.RootObject myJodelsFromChannel =
                    JsonConvert.DeserializeObject <JsonGetJodelsFromChannel.RootObject>(plainJson);
                return(myJodelsFromChannel.recent.Select(item => new ChannelJodel
                {
                    PostId = item.post_id,
                    Message = item.message,
                    VoteCount = item.vote_count,
                    PinCount = item.pin_count,
                    IsOwn = item.post_own.Equals("own")
                }).ToList());
            }
Ejemplo n.º 4
0
        /// <summary>
        ///     Gets the second amount of Jodels Async (internal usage)
        /// </summary>
        /// <returns>List&lt;Jodels&gt;.</returns>
        public async Task <List <Jodels> > GetNextJodelsAsync()
        {
            List <Jodels> temp = new List <Jodels>();

            for (int e = 0; e < 3; e++)
            {
                string plainJson, lockedUrl;
                lock (_lastPostId)
                {
                    lockedUrl = Constants.LinkSecondJodels.ToLink(_lastPostId);
                }
                using (var client = new MyWebClient())
                {
                    client.Encoding = Encoding.UTF8;
                    plainJson       = await client.DownloadStringTaskAsync(new Uri(lockedUrl));
                }
                JsonJodelsLastRound.RootObject jlr =
                    JsonConvert.DeserializeObject <JsonJodelsLastRound.RootObject>(plainJson);
                foreach (var item in jlr.posts)
                {
                    string image_url = "";
                    bool   isUrl     = false;

                    if (item.image_url != null)
                    {
                        image_url = "http:" + item.image_url;
                        isUrl     = true;
                    }

                    Jodels objJodels = new Jodels
                    {
                        PostId                = item.post_id,
                        Message               = item.message,
                        HexColor              = item.color,
                        IsImage               = isUrl,
                        ImageUrl              = image_url,
                        VoteCount             = item.vote_count,
                        LocationName          = item.location.name,
                        CommentsCount         = item.child_count ?? 0,
                        ChildCount            = item.child_count ?? 0,
                        CreatedAt             = DateTime.ParseExact(item.created_at.Replace("Z", "").Replace("T", " "), "yyyy-MM-dd HH:mm:ss.fff", null),
                        UpdatedAt             = DateTime.ParseExact(item.updated_at.Replace("Z", "").Replace("T", " "), "yyyy-MM-dd HH:mm:ss.fff", null),
                        Distance              = item.distance,
                        IsNotificationEnabled = item.notifications_enabled,
                        PinCount              = item.pin_count,
                        PostOwn               = item.post_own,
                        UserHandle            = item.user_handle
                    };

                    temp.Add(objJodels);
                }
                if (temp.Count == 0)
                {
                    return(temp); // not enough Jodels anymore.
                }
                lock (_lastPostId)
                {
                    _lastPostId = temp.Last().PostId; // Set the last post_id for next jodels
                }
            }
            return(temp);
        }