68a6910c53
The privacy story is incomplete without a way to actually hand the data over. New Export section in the Privacy tab streams matching messages to a Markdown, JSON or CSV file using Dalamud's file dialog and a background thread, so the settings UI stays responsive even when the export crawls a 150k-message archive. MessageStore.StreamForExport returns a MessageEnumerator over non-deleted rows filtered by ChatType list and date range, sorted ascending. MessageExporter.ExportToFile takes that enumerator, optionally narrows by SenderSource.TextValue substring (case- insensitive), and writes one of three formats: Markdown — human-readable, day headers, [HH:mm] ChatType Sender: prefix per line, trailing total. JSON — single object with metadata (filter snapshot, exported_at, plugin name) and a messages array carrying id, ISO-8601 date, numeric and named ChatType, source/target kinds, receiver, content_id, sender plaintext, content plaintext. CSV — header line plus quoted-when-needed rows for spreadsheet ingestion. Sender plaintext, channel filter, date range and format are exposed as form fields above the Export button. Empty channel selection means "all stored channels", a 0-day range means "no time limit". Result count and target path are reported via WrapperUtil notifications.
134 lines
9.1 KiB
C#
134 lines
9.1 KiB
C#
//------------------------------------------------------------------------------
|
|
// <auto-generated>
|
|
// Hand-maintained strongly-typed accessor for HellionStrings.resx.
|
|
// Mirrors the layout of Language.Designer.cs so the same Plugin.cs
|
|
// LanguageChanged handler can update Culture for both classes.
|
|
// </auto-generated>
|
|
//------------------------------------------------------------------------------
|
|
|
|
#nullable enable
|
|
|
|
namespace ChatTwo.Resources;
|
|
|
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
|
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute]
|
|
internal class HellionStrings
|
|
{
|
|
private static global::System.Resources.ResourceManager? resourceMan;
|
|
private static global::System.Globalization.CultureInfo? resourceCulture;
|
|
|
|
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
|
internal HellionStrings() { }
|
|
|
|
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
|
internal static global::System.Resources.ResourceManager ResourceManager
|
|
{
|
|
get
|
|
{
|
|
if (resourceMan is null)
|
|
resourceMan = new global::System.Resources.ResourceManager("ChatTwo.Resources.HellionStrings", typeof(HellionStrings).Assembly);
|
|
return resourceMan;
|
|
}
|
|
}
|
|
|
|
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
|
internal static global::System.Globalization.CultureInfo? Culture
|
|
{
|
|
get => resourceCulture;
|
|
set => resourceCulture = value;
|
|
}
|
|
|
|
private static string Get(string key)
|
|
=> ResourceManager.GetString(key, resourceCulture) ?? key;
|
|
|
|
internal static string Privacy_Tab_Title => Get(nameof(Privacy_Tab_Title));
|
|
internal static string Privacy_FilterEnabled_Name => Get(nameof(Privacy_FilterEnabled_Name));
|
|
internal static string Privacy_FilterEnabled_Description => Get(nameof(Privacy_FilterEnabled_Description));
|
|
internal static string Privacy_Whitelist_Help => Get(nameof(Privacy_Whitelist_Help));
|
|
internal static string Privacy_Preset_PrivacyFirst => Get(nameof(Privacy_Preset_PrivacyFirst));
|
|
internal static string Privacy_Preset_ClearAll => Get(nameof(Privacy_Preset_ClearAll));
|
|
internal static string Privacy_Preset_SelectAll => Get(nameof(Privacy_Preset_SelectAll));
|
|
internal static string Privacy_Group_DirectMessages => Get(nameof(Privacy_Group_DirectMessages));
|
|
internal static string Privacy_Group_PartyAlliance => Get(nameof(Privacy_Group_PartyAlliance));
|
|
internal static string Privacy_Group_FreeCompany => Get(nameof(Privacy_Group_FreeCompany));
|
|
internal static string Privacy_Group_Linkshells => Get(nameof(Privacy_Group_Linkshells));
|
|
internal static string Privacy_Group_CrossLinkshells => Get(nameof(Privacy_Group_CrossLinkshells));
|
|
internal static string Privacy_Group_ExtraChat => Get(nameof(Privacy_Group_ExtraChat));
|
|
internal static string Privacy_Group_PublicChat => Get(nameof(Privacy_Group_PublicChat));
|
|
internal static string Privacy_Group_SystemLogs => Get(nameof(Privacy_Group_SystemLogs));
|
|
internal static string Privacy_PersistUnknown_Name => Get(nameof(Privacy_PersistUnknown_Name));
|
|
internal static string Privacy_PersistUnknown_Description => Get(nameof(Privacy_PersistUnknown_Description));
|
|
|
|
internal static string Cleanup_Heading => Get(nameof(Cleanup_Heading));
|
|
internal static string Cleanup_Help_Intro => Get(nameof(Cleanup_Help_Intro));
|
|
internal static string Cleanup_Help_SavedNote => Get(nameof(Cleanup_Help_SavedNote));
|
|
internal static string Cleanup_RefreshPreview => Get(nameof(Cleanup_RefreshPreview));
|
|
internal static string Cleanup_NoPreview => Get(nameof(Cleanup_NoPreview));
|
|
internal static string Cleanup_TotalStored => Get(nameof(Cleanup_TotalStored));
|
|
internal static string Cleanup_WillKeep => Get(nameof(Cleanup_WillKeep));
|
|
internal static string Cleanup_WillDelete => Get(nameof(Cleanup_WillDelete));
|
|
internal static string Cleanup_Breakdown => Get(nameof(Cleanup_Breakdown));
|
|
internal static string Cleanup_Marker_Keep => Get(nameof(Cleanup_Marker_Keep));
|
|
internal static string Cleanup_Marker_Delete => Get(nameof(Cleanup_Marker_Delete));
|
|
internal static string Cleanup_Apply_Label => Get(nameof(Cleanup_Apply_Label));
|
|
internal static string Cleanup_Apply_Tooltip => Get(nameof(Cleanup_Apply_Tooltip));
|
|
internal static string Cleanup_Running => Get(nameof(Cleanup_Running));
|
|
internal static string Cleanup_PreviewError => Get(nameof(Cleanup_PreviewError));
|
|
internal static string Cleanup_Success => Get(nameof(Cleanup_Success));
|
|
internal static string Cleanup_Error => Get(nameof(Cleanup_Error));
|
|
|
|
internal static string Retention_Heading => Get(nameof(Retention_Heading));
|
|
internal static string Retention_Enabled_Name => Get(nameof(Retention_Enabled_Name));
|
|
internal static string Retention_Enabled_Description => Get(nameof(Retention_Enabled_Description));
|
|
internal static string Retention_Default_Label => Get(nameof(Retention_Default_Label));
|
|
internal static string Retention_Default_Help => Get(nameof(Retention_Default_Help));
|
|
internal static string Retention_Reset_Spec => Get(nameof(Retention_Reset_Spec));
|
|
internal static string Retention_Clear_Overrides => Get(nameof(Retention_Clear_Overrides));
|
|
internal static string Retention_Tree_Heading => Get(nameof(Retention_Tree_Heading));
|
|
internal static string Retention_Tag_Override => Get(nameof(Retention_Tag_Override));
|
|
internal static string Retention_Tag_Spec => Get(nameof(Retention_Tag_Spec));
|
|
internal static string Retention_Tag_Global => Get(nameof(Retention_Tag_Global));
|
|
internal static string Retention_Reset_Button => Get(nameof(Retention_Reset_Button));
|
|
internal static string Retention_Apply_Label => Get(nameof(Retention_Apply_Label));
|
|
internal static string Retention_Apply_Tooltip => Get(nameof(Retention_Apply_Tooltip));
|
|
internal static string Retention_Running => Get(nameof(Retention_Running));
|
|
internal static string Retention_LastRun_Never => Get(nameof(Retention_LastRun_Never));
|
|
internal static string Retention_LastRun_At => Get(nameof(Retention_LastRun_At));
|
|
internal static string Retention_Success => Get(nameof(Retention_Success));
|
|
internal static string Retention_Error => Get(nameof(Retention_Error));
|
|
|
|
internal static string Migration_Notification_Title => Get(nameof(Migration_Notification_Title));
|
|
internal static string Migration_Notification_Content => Get(nameof(Migration_Notification_Content));
|
|
|
|
internal static string Wizard_Title => Get(nameof(Wizard_Title));
|
|
internal static string Wizard_Intro => Get(nameof(Wizard_Intro));
|
|
internal static string Wizard_Profile_PrivacyFirst_Heading => Get(nameof(Wizard_Profile_PrivacyFirst_Heading));
|
|
internal static string Wizard_Profile_PrivacyFirst_Description => Get(nameof(Wizard_Profile_PrivacyFirst_Description));
|
|
internal static string Wizard_Profile_PrivacyFirst_Apply => Get(nameof(Wizard_Profile_PrivacyFirst_Apply));
|
|
internal static string Wizard_Profile_Casual_Heading => Get(nameof(Wizard_Profile_Casual_Heading));
|
|
internal static string Wizard_Profile_Casual_Description => Get(nameof(Wizard_Profile_Casual_Description));
|
|
internal static string Wizard_Profile_Casual_Apply => Get(nameof(Wizard_Profile_Casual_Apply));
|
|
internal static string Wizard_Profile_FullHistory_Heading => Get(nameof(Wizard_Profile_FullHistory_Heading));
|
|
internal static string Wizard_Profile_FullHistory_Description => Get(nameof(Wizard_Profile_FullHistory_Description));
|
|
internal static string Wizard_Profile_FullHistory_GdprWarning => Get(nameof(Wizard_Profile_FullHistory_GdprWarning));
|
|
internal static string Wizard_Profile_FullHistory_Apply => Get(nameof(Wizard_Profile_FullHistory_Apply));
|
|
internal static string Wizard_Reopen_Button => Get(nameof(Wizard_Reopen_Button));
|
|
|
|
internal static string Export_Heading => Get(nameof(Export_Heading));
|
|
internal static string Export_Help => Get(nameof(Export_Help));
|
|
internal static string Export_Range_Label => Get(nameof(Export_Range_Label));
|
|
internal static string Export_Sender_Label => Get(nameof(Export_Sender_Label));
|
|
internal static string Export_Channels_Heading => Get(nameof(Export_Channels_Heading));
|
|
internal static string Export_Channels_AllOff => Get(nameof(Export_Channels_AllOff));
|
|
internal static string Export_Format_Label => Get(nameof(Export_Format_Label));
|
|
internal static string Export_Format_Markdown => Get(nameof(Export_Format_Markdown));
|
|
internal static string Export_Format_Json => Get(nameof(Export_Format_Json));
|
|
internal static string Export_Format_Csv => Get(nameof(Export_Format_Csv));
|
|
internal static string Export_Button => Get(nameof(Export_Button));
|
|
internal static string Export_Dialog_Title => Get(nameof(Export_Dialog_Title));
|
|
internal static string Export_Running => Get(nameof(Export_Running));
|
|
internal static string Export_Success => Get(nameof(Export_Success));
|
|
internal static string Export_Empty => Get(nameof(Export_Empty));
|
|
internal static string Export_Error => Get(nameof(Export_Error));
|
|
}
|