Cleanup templates and change how model is referenced

pull/70/head
Alexey Golub 6 years ago
parent ed146bac22
commit 37ee0b8be3

@ -1,5 +1,5 @@
Author;Date;Content;Attachments;
{{~ for group in MessageGroups -}}
{{~ for group in Model.MessageGroups -}}
{{- for message in group.Messages -}}
{{- message.Author.FullName }};

Can't render this file because it contains an unexpected character in line 10 and column 41.

@ -2,7 +2,7 @@
<html lang="en">
<head>
<title>{{ Guild.Name | html.escape }} - {{ Channel.Name | html.escape }}</title>
<title>{{ Model.Guild.Name | html.escape }} - {{ Model.Channel.Name | html.escape }}</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<style>
@ -14,26 +14,26 @@
{{~ # Info ~}}
<div class="info">
<div class="info__guild-icon-container">
<img class="info__guild-icon" src="{{ Guild.IconUrl }}" />
<img class="info__guild-icon" src="{{ Model.Guild.IconUrl }}" />
</div>
<div class="info__metadata">
<div class="info__guild-name">{{ Guild.Name | html.escape }}</div>
<div class="info__channel-name">{{ Channel.Name | html.escape }}</div>
<div class="info__guild-name">{{ Model.Guild.Name | html.escape }}</div>
<div class="info__channel-name">{{ Model.Channel.Name | html.escape }}</div>
{{~ if Channel.Topic ~}}
<div class="info__channel-topic">{{ Channel.Topic | html.escape }}</div>
{{~ if Model.Channel.Topic ~}}
<div class="info__channel-topic">{{ Model.Channel.Topic | html.escape }}</div>
{{~ end ~}}
<div class="info__channel-message-count">{{ TotalMessageCount | Format "N0" }} messages</div>
<div class="info__channel-message-count">{{ Model.TotalMessageCount | Format "N0" }} messages</div>
{{~ if From || To ~}}
{{~ if Model.From || Model.To ~}}
<div class="info__channel-date-range">
{{~ if From && To ~}}
Between {{ From | FormatDate | html.escape }} and {{ To | FormatDate | html.escape }}
{{~ else if From ~}}
After {{ From | FormatDate | html.escape }}
{{~ else if To ~}}
Before {{ To | FormatDate | html.escape }}
{{~ if Model.From && Model.To ~}}
Between {{ Model.From | FormatDate | html.escape }} and {{ Model.To | FormatDate | html.escape }}
{{~ else if Model.From ~}}
After {{ Model.From | FormatDate | html.escape }}
{{~ else if Model.To ~}}
Before {{ Model.To | FormatDate | html.escape }}
{{~ end ~}}
</div>
{{~ end ~}}
@ -42,7 +42,7 @@
{{~ # Log ~}}
<div class="chatlog">
{{~ for group in MessageGroups ~}}
{{~ for group in Model.MessageGroups ~}}
<div class="chatlog__message-group">
{{~ # Avatar ~}}
<div class="chatlog__author-avatar-container">

@ -1,14 +1,14 @@
{{~ # Info ~}}
==============================================================
Guild: {{ Guild.Name }}
Channel: {{ Channel.Name }}
Topic: {{ Channel.Topic }}
Messages: {{ TotalMessageCount | Format "N0" }}
Range: {{ if From }}{{ From | FormatDate }} {{ end }}{{ if From || To }}->{{ end }}{{ if To }} {{ To | FormatDate }}{{ end }}
Guild: {{ Model.Guild.Name }}
Channel: {{ Model.Channel.Name }}
Topic: {{ Model.Channel.Topic }}
Messages: {{ Model.TotalMessageCount | Format "N0" }}
Range: {{ if Model.From }}{{ Model.From | FormatDate }} {{ end }}{{ if Model.From || Model.To }}->{{ end }}{{ if Model.To }} {{ Model.To | FormatDate }}{{ end }}
==============================================================
{{~ # Log ~}}
{{~ for group in MessageGroups ~}}
{{~ for group in Model.MessageGroups ~}}
{{~ # Author name and timestamp ~}}
{{~ }}[{{ group.Timestamp | FormatDate }}] {{ group.Author.FullName }}
{{~ # Messages ~}}

@ -307,7 +307,7 @@ namespace DiscordChatExporter.Core.Services
var scriptObject = new ScriptObject();
// Import chat log
scriptObject.Import(_log, TemplateMemberFilter, TemplateMemberRenamer);
scriptObject.SetValue("Model", _log, true);
// Import functions
scriptObject.Import(nameof(Format), new Func<IFormattable, string, string>(Format));

@ -7,9 +7,6 @@ namespace DiscordChatExporter.Core.Services
{
public partial class ExportService : IExportService
{
private static readonly MemberRenamerDelegate TemplateMemberRenamer = m => m.Name;
private static readonly MemberFilterDelegate TemplateMemberFilter = m => true;
private readonly ISettingsService _settingsService;
public ExportService(ISettingsService settingsService)
@ -30,8 +27,10 @@ namespace DiscordChatExporter.Core.Services
var context = new TemplateContext
{
TemplateLoader = loader,
MemberRenamer = TemplateMemberRenamer,
MemberFilter = TemplateMemberFilter
MemberRenamer = m => m.Name,
MemberFilter = m => true,
LoopLimit = int.MaxValue,
StrictVariables = true
};
// Create template model

Loading…
Cancel
Save