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 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); }); }