using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Net.Http; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Xml; using WechatBakTool.Export; using WechatBakTool.Model; using WechatBakTool.ViewModel; namespace WechatBakTool.Pages { /// /// Manager.xaml 的交互逻辑 /// public partial class Manager : Page { private WorkspaceViewModel workspaceViewModel = new WorkspaceViewModel(); public WXUserReader? UserReader; public Manager() { DataContext = workspaceViewModel; InitializeComponent(); UserBakConfig? config = Main2.CurrentUserBakConfig; if (config != null) { UserReader = new WXUserReader(config); if (!config.Decrypt) { MessageBox.Show("请先解密数据库", "错误"); return; } } } private void btn_export_all_Click(object sender, RoutedEventArgs e) { Task.Run(() => { bool group = false, user = false; Dispatcher.Invoke(() => { if (cb_group.IsChecked == null || cb_user.IsChecked == null) return; group = (bool)cb_group.IsChecked; user = (bool)cb_user.IsChecked; }); if (UserReader != null) { List? contacts = UserReader.GetWXContacts().ToList(); foreach (var contact in contacts) { if (group && contact.UserName.Contains("@chatroom")) { workspaceViewModel.WXContact = contact; ExportMsg(contact); } if (user) { workspaceViewModel.WXContact = contact; ExportMsg(contact); } } MessageBox.Show("批量导出完成", "提示"); } }); } private void ExportMsg(WXContact contact) { workspaceViewModel.ExportCount = ""; string path = Path.Combine(Main2.CurrentUserBakConfig!.UserWorkspacePath, contact.UserName + ".html"); IExport export = new HtmlExport(); export.InitTemplate(contact, path); export.SetMsg(UserReader!, contact, workspaceViewModel); export.SetEnd(); export.Save(path); } private void btn_emoji_download_Click(object sender, RoutedEventArgs e) { if (UserReader != null) { Task.Run(() => { UserReader.PreDownloadEmoji(); MessageBox.Show("所有表情预下载完毕"); }); } } private void btn_analyse_Click(object sender, RoutedEventArgs e) { if (UserReader == null || Main2.CurrentUserBakConfig == null) { MessageBox.Show("请先读取数据"); return; } Analyse analyse = new Analyse(Main2.CurrentUserBakConfig, UserReader); analyse.Show(); } } }