private async void MainContentMouseEvent(object s, MouseButtonEventArgs e) { string id = (string)((FrameworkElement)s).Tag; try { CommentData.PostData data = await KakaoRequestClass.GetPost(id); PostWindow.ShowPostWindow(data, id); } catch (Exception) { } e.Handled = true; }
private void AddShares(List <ShareData.Share> shares) { foreach (var share in shares) { FriendSelectControl fsc = new FriendSelectControl(); AssignProfile(fsc, share.actor, this); fsc.Grid.MouseLeftButtonDown += async(s, e) => { try { PostData pd = await KakaoRequestClass.GetPost(share.activity_id); PostWindow.ShowPostWindow(pd, share.activity_id); } catch (Exception) {} e.Handled = true; }; SP_Shares.Children.Add(fsc); } }
public async Task Refresh() { PR_Loading.IsActive = true; BT_Refresh.IsEnabled = false; TB_RefreshBT.Text = "갱신중.."; IC_Refresh.Kind = MaterialDesignThemes.Wpf.PackIconKind.ProgressClock; List <CSNotification> notifications = await KakaoRequestClass.RequestNotification(true); SP_Content.Children.Clear(); foreach (var notification in notifications) { string thumbnailURL = notification.actor?.profile_thumbnail_url ?? ""; if (Properties.Settings.Default.GIFProfile && notification.actor?.profile_video_url_square_small != null) { thumbnailURL = notification.actor?.profile_video_url_square_small; } string message = notification.message; string timestamp = PostWindow.GetTimeString(notification.created_at); NotificationControl content = new NotificationControl(); MainWindow.SetClickObject(content); content.TB_Content.Text = message; content.TB_Content.ToolTip = content.TB_Content.Text; string contentMessage = notification.content ?? "내용 없음"; if (contentMessage.Contains("\n")) { contentMessage = contentMessage.Split(new string[] { "\n" }, StringSplitOptions.None)[0]; } content.TB_Message.Text = contentMessage; content.TB_Message.ToolTip = content.TB_Message.Text; if (!notification.is_new) { content.RA_Notify.Fill = Brushes.Transparent; } if (content.TB_Message.Text.Trim().Length == 0) { content.TB_Message.Text = "내용 없음"; } content.TB_Date.Text = timestamp; string uri = "https://story.kakao.com/"; GlobalHelper.AssignImage(content.IMG_Thumbnail, thumbnailURL); MainWindow.SetClickObject(content.IMG_Thumbnail); content.IMG_Thumbnail.MouseLeftButtonDown += (s, e) => { try { TimeLineWindow tlw = new TimeLineWindow(notification.actor.id); tlw.Show(); tlw.Activate(); } catch (Exception) { MessageBox.Show("접근이 불가능한 스토리입니다."); } e.Handled = true; }; if (notification.scheme.Contains("?profile_id=")) { var ObjStr = notification.scheme.Split(new string[] { "?profile_id=" }, StringSplitOptions.None); var Profile = ObjStr[1]; var Identity = ObjStr[0].Split('.')[1]; uri += Profile + "/" + Identity + "!" + ObjStr[0]; var feedID = ObjStr[0].Split(new string[] { "activities/" }, StringSplitOptions.None)[1]; content.MouseLeftButtonDown += async(s, e) => { string target = uri.Split(new string[] { "!" }, StringSplitOptions.None)[0]; try { var post = await KakaoRequestClass.GetPost(feedID); PostWindow.ShowPostWindow(post, feedID); } catch (Exception) { } content.RA_Notify.Fill = Brushes.Transparent; e.Handled = true; }; } else if (notification.scheme.Contains("kakaostory://profiles/")) { content.MouseLeftButtonDown += (s, e) => { try { string id = notification.scheme.Replace("kakaostory://profiles/", ""); TimeLineWindow tlw = new TimeLineWindow(id); tlw.Show(); tlw.Activate(); } catch (Exception) { MessageBox.Show("접근할 수 없는 스토리입니다."); } e.Handled = true; }; } SP_Content.Children.Add(content); } BT_Refresh.IsEnabled = true; TB_RefreshBT.Text = "새로고침"; IC_Refresh.Kind = MaterialDesignThemes.Wpf.PackIconKind.Refresh; SV_Content.ScrollToTop(); RA_Loading.Visibility = Visibility.Collapsed; PR_Loading.IsActive = false; }
public static void ActivateHandler(string invokedArgs, NotificationUserInput userInput) { Application.Current.Dispatcher.Invoke(async delegate { if (!invokedArgs.Contains("default null string")) { try { if (invokedArgs.Contains("LIKE!@#$%")) { string text = invokedArgs.Substring(0, invokedArgs.IndexOf("LIKE!@#$%")); string activityID = text.Split(new string[] { "activities/" }, StringSplitOptions.None)[1]; string commentID = invokedArgs.Split(new string[] { "LIKE!@#$%" }, StringSplitOptions.None)[1]; await KakaoRequestClass.LikeComment(activityID, commentID, false); } else if (invokedArgs.Contains("REPLY!@#$%")) { string text = invokedArgs.Substring(0, invokedArgs.IndexOf("REPLY!@#$%")); string[] datas = invokedArgs.Split(new string[] { "R!@=!!" }, StringSplitOptions.None); string id = datas[1]; string name = datas[2]; string writer = datas[3]; string identity = datas[4]; string msg = userInput["tbReply"]; string activityID = text.Split(new string[] { "activities/" }, StringSplitOptions.None)[1]; await KakaoRequestClass.ReplyToFeed(activityID, msg, id, name); } else { //MessageBox.Show(invokedArgs); string text = invokedArgs.Split(new string[] { "!" }, StringSplitOptions.None)[1]; string activityID = text.Split(new string[] { "activities/" }, StringSplitOptions.None)[1]; string url = invokedArgs.Split(new string[] { "!" }, StringSplitOptions.None)[0]; try { PostData data = await KakaoRequestClass.GetPost(activityID); if (data != null && activityID != null) { PostWindow.ShowPostWindow(data, activityID); } } catch (Exception) { } } } catch (Exception) { try { string id = invokedArgs.Replace("https://story.kakao.com/", ""); if (id.Length > 0) { TimeLineWindow tlw = new TimeLineWindow(id); tlw.Show(); tlw.Activate(); } else { throw new InvalidDataException(); } } catch (Exception) { System.Diagnostics.Process.Start(invokedArgs.Split(new string[] { "!" }, StringSplitOptions.None)[0]); } } } }); }