123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Diagnostics;
- using System.IO;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows;
- using System.Windows.Controls;
- using System.Windows.Controls.Primitives;
- 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 WechatBakTool.Export;
- using WechatBakTool.Model;
- using WechatBakTool.ViewModel;
- namespace WechatBakTool.Pages
- {
- /// <summary>
- /// Workspace.xaml 的交互逻辑
- /// </summary>
- public partial class Workspace : Page
- {
- public WXUserReader? UserReader;
- private WorkspaceViewModel ViewModel = new WorkspaceViewModel();
- public Workspace()
- {
- ViewModel.ExportItems = new System.Collections.ObjectModel.ObservableCollection<ExportItem> {
- new ExportItem(){ Name="导出为HTML",Value=1 },
- new ExportItem(){ Name="导出为TXT",Value=2 },
- };
- ViewModel.SelectExportItem = ViewModel.ExportItems[0];
- InitializeComponent();
- list_users.Items.Clear();
- DataContext = ViewModel;
- UserBakConfig? config = Main2.CurrentUserBakConfig;
- if (config != null)
- {
- UserReader = new WXUserReader(config);
- if (config.Decrypt)
- {
- ViewModel.Contacts = UserReader.GetWXContacts();
- }
- }
- }
- private void btn_read_Click(object sender, RoutedEventArgs e)
- {
- if (Main2.CurrentUserBakConfig == null)
- {
- MessageBox.Show("工作区配置加载失败,请检查配置文件是否正常","错误");
- return;
- }
- }
- private void list_users_SelectionChanged(object sender, SelectionChangedEventArgs e)
- {
- ViewModel.ExportCount = "";
- ViewModel.WXContact = list_users.SelectedItem as WXContact;
- if(ViewModel.WXContact == null || UserReader == null)
- {
- return;
- }
- List<WXMsg>? msgs = UserReader.GetWXMsgs(ViewModel.WXContact.UserName);
- list_msg.ItemsSource = msgs;
- }
- private void txt_find_user_TextChanged(object sender, TextChangedEventArgs e)
- {
- if (UserReader == null)
- return;
- string findName = txt_find_user.Text;
- if (txt_find_user.Text == "搜索...")
- findName = "";
- ViewModel.Contacts = UserReader.GetWXContacts(findName);
- }
- private void txt_find_user_GotFocus(object sender, RoutedEventArgs e)
- {
- if (txt_find_user.Text == "搜索...")
- txt_find_user.Text = "";
- Debug.WriteLine(ViewModel.SearchString);
- }
- private void btn_export_Click(object sender, RoutedEventArgs e)
- {
- if(ViewModel.WXContact == null || UserReader == null)
- {
- MessageBox.Show("请选择联系人", "错误");
- return;
- }
- string path = Path.Combine(Main2.CurrentUserBakConfig!.UserWorkspacePath, ViewModel.WXContact.UserName + ".txt");
- IExport export = new TXTExport();
- export.InitTemplate(ViewModel.WXContact, path);
- export.SetMsg(UserReader, ViewModel.WXContact, ViewModel);
- export.SetEnd();
- export.Save(path);
- MessageBox.Show("导出完成");
- }
- private void btn_open_workspace_Click(object sender, RoutedEventArgs e)
- {
- Process.Start("explorer.exe ", Main2.CurrentUserBakConfig!.UserWorkspacePath);
- }
- 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();
- }
- private void Export_Click(object sender, RoutedEventArgs e)
- {
- Task.Run(() =>
- {
-
- if (ViewModel.WXContact == null || UserReader == null)
- {
- MessageBox.Show("请选择联系人", "错误");
- return;
- }
- if (ViewModel.SelectExportItem == null)
- {
- MessageBox.Show("请选择导出方式", "错误");
- return;
- }
- string path = Path.Combine(Main2.CurrentUserBakConfig!.UserWorkspacePath, ViewModel.WXContact.UserName);
- IExport export;
- #if DEBUG
- Stopwatch stopwatch = new Stopwatch();
- stopwatch.Start();
- #endif
- if (ViewModel.SelectExportItem.Value == 2)
- {
- path += ".txt";
- export = new TXTExport();
- }
- else
- {
- path += ".html";
- export = new HtmlExport();
- }
- export.InitTemplate(ViewModel.WXContact, path);
- export.SetMsg(UserReader, ViewModel.WXContact, ViewModel);
- export.SetEnd();
- export.Save(path);
- #if DEBUG
- stopwatch.Stop();
- MessageBox.Show(stopwatch.Elapsed.ToString());
- #endif
- MessageBox.Show("导出完成", "提示");
- });
-
- }
- }
- }
|