Example #1
0
 private void ScrollViewer_PreviewMouseWheel(object sender, MouseWheelEventArgs e)
 {
     GlobalHelper.HandleScroll(sender, e);
 }
Example #2
0
        public MainWindow()
        {
            InitializeComponent();
            TSW_DarkMode.IsChecked = Properties.Settings.Default.DarkMode;
            TSW_DarkMode_Click(null, null);

            Dispatcher.InvokeAsync(async() =>
            {
                if (Environment.OSVersion.Version.Major != 10)
                {
                    bool isLatest = await GlobalHelper.CheckUpdate();
                    if (!isLatest)
                    {
                        if (MessageBox.Show("새로운 업데이트를 확인했습니다.\n 업데이트를 받으시겠습니까?", "안내", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes)
                        {
                            System.Diagnostics.Process.Start("https://kagamine-rin.com/?p=186");
                        }
                    }
                }
            });

            CB_AutoLogin.IsChecked = Properties.Settings.Default.AutoLogin;

            Environment.CurrentDirectory = Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath);
            TrayNotifyIcon = new NotifyIcon
            {
                Icon    = new Icon("icon.ico"),
                Visible = true
            };
            TrayNotifyIcon.MouseDoubleClick += (s, e) =>
            {
                if (Properties.Settings.Default.DefaultMinimize)
                {
                    WindowState = WindowState.Normal;
                }
                else
                {
                    Show();
                }

                Activate();
            };
            TrayNotifyIcon.BalloonTipClicked += (s, e) =>
            {
                if (TrayNotifyIcon.Tag != null)
                {
                    KSPNotificationActivator.ActivateHandler((string)TrayNotifyIcon.Tag, null);
                    TrayNotifyIcon.Tag = null;
                }
                else
                {
                    Show();
                    //Activate();
                }
            };

            ContextMenu menu     = new ContextMenu();
            MenuItem    timeline = new MenuItem
            {
                Index = 0,
                Text  = "타임라인"
            };

            timeline.Click += (s, a) =>
            {
                BT_TimeLine_Click(null, null);
            };
            menu.MenuItems.Add(timeline);

            MenuItem write = new MenuItem
            {
                Index = 0,
                Text  = "게시글 작성"
            };

            write.Click += (s, a) =>
            {
                BT_Write_Click(null, null);
            };
            menu.MenuItems.Add(write);

            MenuItem notification = new MenuItem
            {
                Index = 0,
                Text  = "알림 확인"
            };

            notification.Click += (s, a) =>
            {
                BT_Notifiations_Click(null, null);
            };
            menu.MenuItems.Add(notification);

            MenuItem profile = new MenuItem
            {
                Index = 0,
                Text  = "내 프로필"
            };

            profile.Click += (s, a) =>
            {
                BT_MyProfile_Click(null, null);
            };
            menu.MenuItems.Add(profile);

            MenuItem settings = new MenuItem
            {
                Index = 0,
                Text  = "설정"
            };

            settings.Click += (s, a) =>
            {
                BT_Settings_Click(null, null);
            };
            menu.MenuItems.Add(settings);

            MenuItem exit = new MenuItem
            {
                Index = 0,
                Text  = "종료"
            };

            exit.Click += (s, a) =>
            {
                Hide();
                IsClose = true;
                Environment.Exit(0);
            };
            menu.MenuItems.Add(exit);

            TrayNotifyIcon.ContextMenu = menu;

            if (Properties.Settings.Default.AutoLogin)
            {
                TBX_Email.Text        = Properties.Settings.Default.AutoEmail;
                TBX_Password.Password = Properties.Settings.Default.AutoPassword;
                Task.Run(() =>
                {
                    Dispatcher.InvokeAsync(() =>
                    {
                        TryLogin();
                    });
                });
            }

            SetClickObject(GD_Friends);
            SetClickObject(GD_Write);
            SetClickObject(GD_Timeline);
            SetClickObject(GD_Notifications);
            SetClickObject(GD_Mail);
            SetClickObject(GD_Settings);
            SetClickObject(GD_Friends);
            SetClickObject(GD_ProfileSettings);
            SetClickObject(BT_Login);
            SetClickObject(EL_Profile);
            SetClickObject(TB_MyProfile);
            SetClickObject(TB_Tray);
            SetClickObject(IMG_Power);

            Dispatcher.InvokeAsync(async() =>
            {
                await KakaoRequestClass.RequestNotification(false);
            });
        }
        public ProfileWindow()
        {
            InitializeComponent();
            //if (!Properties.Settings.Default.HideScrollBar)
            //SV_Main.VerticalScrollBarVisibility = ScrollBarVisibility.Auto;
            RC_Mask.Visibility = Visibility.Visible;
            PR_Mask.Visibility = Visibility.Visible;
            Dispatcher.InvokeAsync(async() =>
            {
                await MainWindow.UpdateProfile();
                RC_Mask.Visibility = Visibility.Collapsed;
                PR_Mask.Visibility = Visibility.Collapsed;

                TB_Name.Text  = MainWindow.UserProfile.display_name;
                TBX_Name.Text = MainWindow.UserProfile.display_name;
                TB_Desc.Text  = MainWindow.UserProfile.status_objects?[0]?.message ?? "한줄 소개 없음";
                TBX_Desc.Text = MainWindow.UserProfile.status_objects?[0]?.message ?? "";
                if (MainWindow.UserProfile.status_objects?[0]?.message == null)
                {
                    isDescExists           = false;
                    IC_DescEdit.Foreground = ButtonUnActivatedBrush;
                    IC_DescDelete.Kind     = MaterialDesignThemes.Wpf.PackIconKind.Add;
                }
                else
                {
                    isDescExists           = true;
                    IC_DescEdit.Foreground = ButtonActivatedBrush;
                    IC_DescDelete.Kind     = MaterialDesignThemes.Wpf.PackIconKind.Delete;
                    MainWindow.SetClickObject(IC_DescEdit);
                }

                string uri = MainWindow.UserProfile.profile_video_url_square_small ?? MainWindow.UserProfile.profile_thumbnail_url;
                GlobalHelper.AssignImage(IMG_Profile, uri);
                GlobalHelper.AssignImage(IMG_ProfileBG, MainWindow.UserProfile.bg_image_url);

                MainWindow.SetClickObject(EL_ProfileEdit);
                MainWindow.SetClickObject(IC_BGEdit);
                MainWindow.SetClickObject(IC_NameEdit);
                MainWindow.SetClickObject(IC_DescDelete);
                MainWindow.SetClickObject(IC_BirthdayDelete);
                MainWindow.SetClickObject(IC_SexDelete);

                if (MainWindow.UserProfile.birth_type == null)
                {
                    isBirthdayExists       = false;
                    IC_BirthdayDelete.Kind = MaterialDesignThemes.Wpf.PackIconKind.Add;
                    CB_SunDate.IsEnabled   = false;
                    DP_Birthday.IsEnabled  = false;
                }
                else
                {
                    isBirthdayExists         = true;
                    IC_BirthdayDelete.Kind   = MaterialDesignThemes.Wpf.PackIconKind.Delete;
                    CB_SunDate.IsChecked     = MainWindow.UserProfile.birth_type.Equals("+");
                    CB_LeapType.IsChecked    = MainWindow.UserProfile.birth_leap_type;
                    DP_Birthday.SelectedDate = DateTime.ParseExact(MainWindow.UserProfile.birth, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture);
                }

                if (MainWindow.UserProfile.gender_permission.Length > 0)
                {
                    isGenderExists = true;

                    CB_PublicSex.IsChecked = MainWindow.UserProfile.gender_permission.Equals("A");

                    if (MainWindow.UserProfile.gender.Equals("M"))
                    {
                        RB_Male.IsChecked = true;
                    }
                    else if (MainWindow.UserProfile.gender.Equals("F"))
                    {
                        RB_Female.IsChecked = true;
                    }
                    else
                    {
                        RB_Alien.IsChecked = true;
                    }

                    IC_SexDelete.Kind = MaterialDesignThemes.Wpf.PackIconKind.Delete;
                }
                else
                {
                    isGenderExists         = false;
                    RB_Male.IsEnabled      = false;
                    RB_Female.IsEnabled    = false;
                    RB_Alien.IsEnabled     = false;
                    CB_PublicSex.IsEnabled = false;
                    IC_SexDelete.Kind      = MaterialDesignThemes.Wpf.PackIconKind.Add;
                }
                DP_Birthday.SelectedDateChanged += DP_Birthday_SelectedDateChanged;
            });
        }
        private void RefreshTimeLineFeed(TimeLinePageControl tlp, CommentData.PostData feed)
        {
            tlp.SP_Comments?.Children?.Clear();
            tlp.SP_Content?.Children?.Clear();
            string imgUri = feed.actor.profile_image_url2 ?? feed.actor.profile_thumbnail_url;

            if (Properties.Settings.Default.GIFProfile && feed.actor.profile_video_url_square_small != null)
            {
                imgUri = feed.actor.profile_video_url_square_small;
            }
            GlobalHelper.AssignImage(tlp.IMG_Profile, imgUri);

            MainWindow.SetClickObject(tlp.IMG_Profile);
            tlp.IMG_Profile.Tag = feed.actor.id;
            tlp.IMG_Profile.MouseLeftButtonDown += GlobalHelper.SubContentMouseEvent;

            tlp.TB_Name.Text = feed.actor.display_name;
            tlp.TB_Date.Text = PostWindow.GetTimeString(feed.created_at);
            GlobalHelper.RefreshContent(feed.content_decorators, feed.content, tlp.TB_Content);
            if (feed.media_type != null && feed.media != null)
            {
                RefreshImageContent(feed.media, tlp.SP_Content);
            }

            bool willDisplayInfo = false;

            if (feed.comment_count > 0)
            {
                willDisplayInfo = true;

                tlp.TB_CommentCount.Visibility = Visibility.Visible;
                var txt = new Bold(new Run($" {feed.comment_count.ToString()}  "))
                {
                    FontSize = 12
                };
                tlp.TB_CommentCount.Inlines.Add(txt);
            }
            else
            {
                tlp.TB_CommentCount.Visibility = Visibility.Collapsed;
                tlp.SP_Comments.Margin         = new Thickness(0, 0, 0, 0);
            }

            if (feed.like_count > 0)
            {
                willDisplayInfo             = true;
                tlp.TB_LikeCount.Visibility = Visibility.Visible;
                var txt = new Bold(new Run($" {feed.like_count.ToString()}  "));
                txt.FontSize = 12;
                tlp.TB_LikeCount.Inlines.Add(txt);
            }
            else
            {
                tlp.TB_LikeCount.Visibility = Visibility.Collapsed;
            }

            int shares = feed.share_count - feed.sympathy_count;

            if (shares > 0)
            {
                willDisplayInfo = true;
                tlp.TB_ShareCount.Visibility = Visibility.Visible;
                var txt = new Bold(new Run($" {shares.ToString()}  "));
                txt.FontSize = 12;
                tlp.TB_ShareCount.Inlines.Add(txt);
            }
            else
            {
                tlp.TB_ShareCount.Visibility = Visibility.Collapsed;
            }

            if (feed.sympathy_count > 0)
            {
                willDisplayInfo           = true;
                tlp.TB_UpCount.Visibility = Visibility.Visible;
                var txt = new Bold(new Run($" {feed.sympathy_count.ToString()}  "));
                txt.FontSize = 12;
                tlp.TB_UpCount.Inlines.Add(txt);
            }
            else
            {
                tlp.TB_UpCount.Visibility = Visibility.Collapsed;
            }

            if (!willDisplayInfo)
            {
                tlp.RD_CommentInfos.Height = new GridLength(0);
            }

            if (feed.closest_with_tags != null && feed.closest_with_tags.Count > 0)
            {
                Separator sep = new Separator();
                tlp.SP_Main.Children.Add(sep);
                sep.Margin = new Thickness(0, 5, 0, 5);
                var TB_Closest_With = GlobalHelper.GetWithFriendTB(feed);
                tlp.SP_Main.Children.Add(TB_Closest_With);
            }
        }
        public async Task RefreshTimeline(string from, bool isClear)
        {
            if (from == null)
            {
                lastOffset = -1;
            }
            BT_Refresh.IsEnabled = false;
            PR_Loading.IsActive  = true;
            TB_RefreshBT.Text    = "갱신중...";
            IC_Refresh.Kind      = MaterialDesignThemes.Wpf.PackIconKind.ProgressClock;

            List <CommentData.PostData> feeds;

            if (!isProfile)
            {
                TimeLineData.TimeLine feedData = await KakaoRequestClass.GetFeed(from);

                nextRequest = feedData.next_since;
                feeds       = feedData.feeds;
            }
            else
            {
                string from2 = from;
                if (showBookmarked)
                {
                    from2 = null;
                }
                var profile = await KakaoRequestClass.GetProfileFeed(profileID, from2);

                relationship = await KakaoRequestClass.GetProfileRelationship(profileID);

                if (profile.profile.bg_image_url != null)
                {
                    string imgUri = profile.profile.profile_video_url_square_small ?? profile.profile.profile_image_url2;
                    if (Properties.Settings.Default.GIFProfile && profile.profile.profile_video_url_square_small != null)
                    {
                        imgUri = profile.profile.profile_video_url_square_small;
                    }
                    GlobalHelper.AssignImage(IMG_Profile, imgUri);
                    GlobalHelper.AssignImage(IMG_ProfileBG, profile.profile.bg_image_url);
                    IMG_Profile.MouseLeftButtonDown   += GlobalHelper.SaveImageHandler;
                    IMG_ProfileBG.MouseLeftButtonDown += GlobalHelper.SaveImageHandler;

                    TB_Name.Text = profile.profile.display_name;

                    if (profile.profile.status_objects?.Count > 0)
                    {
                        TB_Desc.Text = profile.profile.status_objects?[0]?.message ?? "한줄 소개 없음";
                    }
                    else
                    {
                        TB_Desc.Text = "한줄 소개 없음";
                    }

                    TB_Desc2.Text  = profile.mutual_friend?.message ?? "함께 아는 친구 없음";
                    TB_Desc2.Text += "/ " + profile.profile.activity_count.ToString() + "개의 스토리";
                }
                GD_Favorite.Visibility = Visibility.Collapsed;
                if (relationship.relationship.Equals("F"))
                {
                    IC_Friend.Kind         = MaterialDesignThemes.Wpf.PackIconKind.AccountMinus;
                    IC_Friend.ToolTip      = "친구 삭제";
                    GD_Favorite.Visibility = Visibility.Visible;
                    if (profile.profile.is_favorite)
                    {
                        IC_Favorite.Fill = Brushes.OrangeRed;
                    }
                    else
                    {
                        IC_Favorite.Fill = Brushes.Gray;
                    }
                    MainWindow.SetClickObject(IC_Favorite);
                    ICP_Favorite.MouseEnter += (s, e) =>
                    {
                        Mouse.OverrideCursor = Cursors.Hand;
                        e.Handled            = true;
                    };
                    async void onMouseDown(object s, MouseButtonEventArgs e)
                    {
                        await KakaoRequestClass.FavoriteRequest(profile.profile.id, profile.profile.is_favorite);

                        await RefreshTimeline(null, true);

                        e.Handled = true;
                    }

                    IC_Favorite.MouseLeftButtonDown  += onMouseDown;
                    ICP_Favorite.MouseLeftButtonDown += onMouseDown;
                }
                else if (relationship.relationship.Equals("R"))
                {
                    IC_Friend.Kind    = MaterialDesignThemes.Wpf.PackIconKind.AccountRemove;
                    IC_Friend.ToolTip = "친구 신청 취소";
                }
                else if (relationship.relationship.Equals("C"))
                {
                    IC_Friend.Kind    = MaterialDesignThemes.Wpf.PackIconKind.AccountQuestionMark;
                    IC_Friend.ToolTip = "친구 신청 처리";
                }
                else if (relationship.relationship.Equals("N"))
                {
                    IC_Friend.Kind    = MaterialDesignThemes.Wpf.PackIconKind.AccountPlus;
                    IC_Friend.ToolTip = "친구 추가";
                }
                else
                {
                    IC_Friend.Visibility = Visibility.Collapsed;
                }

                BT_Write.Visibility = Visibility.Collapsed;
                if (profile.activities.Count > 15)
                {
                    nextRequest = profile.activities.Last().id;
                }

                if (MainWindow.UserProfile.id.Equals(profileID) && showBookmarked != true)
                {
                    Title         = "내 프로필";
                    TB_Desc2.Text = profile.profile.activity_count.ToString() + "개의 스토리";
                }
                else
                {
                    Title = profile.profile.display_name + "님의 프로필";
                }
                if (showBookmarked)
                {
                    Title = "관심글 조회";
                    var bookmarks = await KakaoRequestClass.GetBookmark(profileID, from);

                    var feedsNow = new List <CommentData.PostData>();
                    foreach (var bookmark in bookmarks.bookmarks)
                    {
                        if (bookmark.status == 0)
                        {
                            feedsNow.Add(bookmark.activity);
                        }
                    }
                    feeds       = feedsNow;
                    nextRequest = bookmarks.bookmarks.Last().id;
                }
                else
                {
                    feeds = profile.activities;
                }
            }

            if (isProfile && feeds.Count != 18)
            {
                scrollEnd = true;
            }

            if (isClear)
            {
                SP_Content.Children.Clear();
                SV_Content.ScrollToVerticalOffset(0);
            }
            foreach (var feed in feeds)
            {
                if (feed.verb.Equals("post") || feed.verb.Equals("share"))
                {
                    TimeLinePageControl tlp = GenerateTimeLinePageControl(feed);
                    SP_Content.Children.Add(tlp);
                    SP_Content.Children.Add(new Rectangle()
                    {
                        Height = 10,
                        Fill   = Brushes.Transparent
                    });
                }
                else if (feed.verb.Equals("bundled_feed"))
                {
                    try
                    {
                        if (feed.bundled_feed != null && feed.bundled_feed.type.Equals("share"))
                        {
                            CommentData.PostData feedNow = feed.bundled_feed.activities?[0];
                            if (feedNow != null)
                            {
                                feedNow.@object = feed.bundled_feed.original_activity;
                                TimeLinePageControl tlp = GenerateTimeLinePageControl(feedNow);
                                GlobalHelper.SetShareFriendsTB(tlp.TB_Title, feed.bundled_feed.title_decorators);
                                tlp.TB_Title.Visibility    = Visibility.Visible;
                                tlp.TB_TitleSep.Visibility = Visibility.Visible;
                                SP_Content.Children.Add(tlp);
                                SP_Content.Children.Add(new Rectangle()
                                {
                                    Height = 10,
                                    Fill   = Brushes.Transparent
                                });
                            }
                        }
                        else if (feed.bundled_feed != null && feed.bundled_feed.type.Equals("up"))
                        {
                            CommentData.PostData feedNow = feed.bundled_feed.original_activity;
                            if (feedNow != null)
                            {
                                TimeLinePageControl tlp = GenerateTimeLinePageControl(feedNow);
                                GlobalHelper.SetShareFriendsTB(tlp.TB_Title, feed.bundled_feed.title_decorators);
                                tlp.TB_Title.Visibility    = Visibility.Visible;
                                tlp.TB_TitleSep.Visibility = Visibility.Visible;
                                SP_Content.Children.Add(tlp);
                                SP_Content.Children.Add(new Rectangle()
                                {
                                    Height = 10,
                                    Fill   = Brushes.Transparent
                                });
                            }
                        }
                    }
                    catch (Exception) { }
                }
            }
            BT_Refresh.IsEnabled = true;
            TB_RefreshBT.Text    = "새로고침";
            IC_Refresh.Kind      = MaterialDesignThemes.Wpf.PackIconKind.Refresh;

            PR_Loading.IsActive = false;
            return;
        }
        public TimeLinePageControl GenerateTimeLinePageControl(CommentData.PostData feed)
        {
            TimeLinePageControl tlp = new TimeLinePageControl();

            if (Properties.Settings.Default.ScrollTimeline)
            {
                tlp.SV_Content.MaxHeight = 300;
            }
            try
            {
                try
                {
                    RefreshTimeLineFeed(tlp, feed);
                }
                catch (Exception)
                {
                    tlp.TB_Content.Text = "";
                    tlp.TB_Content.Inlines.Clear();
                    tlp.TB_Content.Inlines.Add(new Bold(new Run("(오류 : 삭제 등의 원인으로 인해 글 원본을 가져올 수 없습니다)")));
                    tlp.GD_Share.Visibility = Visibility.Collapsed;
                }

                if (feed.scrap != null)
                {
                    GlobalHelper.RefreshScrap(feed.scrap, tlp.Scrap_Main);
                }

                MainWindow.SetClickObject(tlp.Card);

                tlp.Card.Tag       = feed.id;
                tlp.TB_Content.Tag = feed.id;
                tlp.SP_Content.Tag = feed.id;

                tlp.Card.MouseLeftButtonDown        += MainContentMouseEvent;
                tlp.TB_Content.MouseRightButtonDown += (s, e) =>
                {
                    Clipboard.SetDataObject(feed.content);
                    MessageBox.Show("클립보드에 글 내용이 복사됐습니다.");
                    e.Handled = true;
                };

                if (feed.verb.Equals("share"))
                {
                    if (feed.@object?.share_count == null || feed.@object?.id == null || feed.@object?.actor?.profile_thumbnail_url == null)
                    {
                        tlp.TB_Content.Inlines.Add(new Bold(new Run("\n(오류 : 삭제 등의 원인으로 인해 공유글 원본을 가져올 수 없습니다)")));
                        tlp.GD_Share.Visibility = Visibility.Collapsed;
                    }
                    else
                    {
                        tlp.GD_ShareCount.Visibility      = Visibility.Visible;
                        tlp.TB_GD_ShareCount.Text         = [email protected]_count.ToString();
                        tlp.GD_Share.Tag                  = [email protected];
                        tlp.GD_Share.MouseLeftButtonDown += ShareContentMouseEvent;

                        string imgUri = [email protected]_image_url2 ?? [email protected]_thumbnail_url;
                        if (Properties.Settings.Default.GIFProfile && [email protected]_video_url_square_small != null)
                        {
                            imgUri = [email protected]_video_url_square_small;
                        }
                        GlobalHelper.AssignImage(tlp.IMG_ProfileShare, imgUri);
                        MainWindow.SetClickObject(tlp.IMG_ProfileShare);

                        tlp.IMG_ProfileShare.Tag = [email protected];
                        tlp.IMG_ProfileShare.MouseLeftButtonDown += GlobalHelper.SubContentMouseEvent;

                        tlp.TB_NameShare.Text = [email protected]_name;
                        tlp.TB_DateShare.Text = PostWindow.GetTimeString([email protected]_at);
                        GlobalHelper.RefreshContent([email protected]_decorators, [email protected], tlp.TB_ShareContent);

                        tlp.TB_ShareContent.MouseRightButtonDown += (s, e) =>
                        {
                            Clipboard.SetDataObject([email protected]);
                            MessageBox.Show("클립보드에 공유한 글 내용이 복사됐습니다.");
                            e.Handled = true;
                        };

                        if ([email protected]_type != null && [email protected] != null)
                        {
                            RefreshImageContent([email protected], tlp.SP_ShareContent);
                        }

                        if ([email protected] != null)
                        {
                            GlobalHelper.RefreshScrap([email protected], tlp.Scrap_Share);
                        }
                        if ([email protected]_with_tags != null && [email protected]_with_tags.Count > 0)
                        {
                            Separator sep = new Separator();
                            tlp.SP_ShareContent.Children.Add(sep);
                            sep.Margin = new Thickness(0, 5, 0, 5);
                            var TB_Closest_With = GlobalHelper.GetWithFriendTB(feed.@object);
                            tlp.SP_ShareContent.Children.Add(TB_Closest_With);
                            tlp.SP_ShareContent.Visibility = Visibility.Visible;
                        }
                    }
                }
                else
                {
                    tlp.GD_Share.Visibility = Visibility.Collapsed;
                }
            }
            catch (Exception e)
            {
                tlp.SP_Content.Background = Brushes.DarkRed;
                tlp.TB_Name.Text          = "오류!";
                tlp.TB_Content.Text       = e.StackTrace;
            }
            return(tlp);
        }
 private void BT_Clipboard_Click(object sender, RoutedEventArgs e)
 {
     GlobalHelper.CopyImageHandler(IMG_Main, null);
 }
Example #8
0
        private async Task <bool> WriteText(string text, string permission, bool isCommentable, bool isSharable)
        {
            text = text.Replace("\"", "\\\"");
            text = text.Replace("\r\n", "\\n");
            text = text.Replace("\n", "\\n");
            text = text.Replace("\r", "\\n");
            string           commentable = isCommentable ? "true" : "false";
            string           sharable    = isSharable ? "true" : "false";
            List <QuoteData> rawContent  = GlobalHelper.GetQuoteDataFromString(text);
            string           textContent = Uri.EscapeDataString(JsonConvert.SerializeObject(rawContent, Formatting.None, new JsonSerializerSettings
            {
                NullValueHandling = NullValueHandling.Ignore
            }));
            StringBuilder postDataBuilder = new StringBuilder();

            postDataBuilder.Append("permission=" + permission + "&comment_all_writable=" + commentable + "&is_must_read=false&enable_share=" + sharable);
            postDataBuilder.Append("&content=" + textContent);

            if (with_ids.Count > 0)
            {
                postDataBuilder.Append("&with_tags=" + Uri.EscapeDataString(JsonConvert.SerializeObject(with_ids)));
            }
            if (trust_ids.Count > 0)
            {
                postDataBuilder.Append("&allowed_profile_ids=" + Uri.EscapeDataString(JsonConvert.SerializeObject(trust_ids)));
            }

            if (mediaText != null)
            {
                postDataBuilder.Append("&" + Uri.EscapeDataString("media") + "=" + Uri.EscapeDataString(mediaText));
            }
            foreach (string mediaPath in editOldMediaPath)
            {
                postDataBuilder.Append("&" + Uri.EscapeDataString("old_media_path[]") + "=" + Uri.EscapeDataString(mediaPath));
            }

            if (linkData != null)
            {
                postDataBuilder.Append("&scrap_content=" + Uri.EscapeDataString(linkData));
            }

            assets.Clear();

            string postData = postDataBuilder.ToString();

            byte[] byteArray = Encoding.UTF8.GetBytes(postData);

            string requestURI = "https://story.kakao.com/a/activities";

            if (isEdit)
            {
                requestURI = "https://story.kakao.com/a/activities/" + editFeedID + "/content";
            }

            HttpWebRequest request = WebRequest.CreateHttp(requestURI);

            request.Method = "POST";
            if (isEdit)
            {
                request.Method = "PUT";
            }
            request.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";

            request.CookieContainer = WebViewWindow.GetUriCookieContainer(new Uri("https://story.kakao.com"));
            request.Headers["X-Kakao-DeviceInfo"] = "web:d;-;-";
            request.Headers["X-Kakao-ApiLevel"]   = "46";
            request.Headers["X-Requested-With"]   = "XMLHttpRequest";
            request.Headers["X-Kakao-VC"]         = "185412afe1da9580e67f";
            request.Headers["Cache-Control"]      = "max-age=0";

            request.Headers["Accept-Encoding"] = "gzip, deflate, br";
            request.Headers["Accept-Language"] = "ko";

            request.Headers["DNT"] = "1";

            request.Headers["authority"] = "story.kakao.com";
            request.Referer               = "https://story.kakao.com";
            request.KeepAlive             = true;
            request.UseDefaultCredentials = true;
            request.Host      = "story.kakao.com";
            request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36";
            request.Accept    = "application/json";

            Stream writeStream = await request.GetRequestStreamAsync();

            writeStream.Write(byteArray, 0, byteArray.Length);

            var readStream = await request.GetResponseAsync();

            var respReader = readStream.GetResponseStream();

            await(new StreamReader(respReader, Encoding.UTF8)).ReadToEndAsync();
            respReader.Close();

            return(true);
        }