@@ -122,7 +122,6 @@ func (m *Manager) AddMessenger(msg messenger.Messenger) error {
122
122
return fmt .Errorf ("messenger '%s' is already loaded" , id )
123
123
}
124
124
m .messengers [id ] = msg
125
-
126
125
return nil
127
126
}
128
127
@@ -132,7 +131,6 @@ func (m *Manager) GetMessengerNames() []string {
132
131
for n := range m .messengers {
133
132
names = append (names , n )
134
133
}
135
-
136
134
return names
137
135
}
138
136
@@ -196,9 +194,7 @@ func (m *Manager) Run(tick time.Duration) {
196
194
delete (m .msgErrorCounts , e .camp .ID )
197
195
198
196
// Notify admins.
199
- m .sendNotif (e .camp ,
200
- models .CampaignStatusPaused ,
201
- "Too many errors" )
197
+ m .sendNotif (e .camp , models .CampaignStatusPaused , "Too many errors" )
202
198
}
203
199
}
204
200
}
@@ -256,6 +252,34 @@ func (m *Manager) SpawnWorkers() {
256
252
}
257
253
}
258
254
255
+ // TemplateFuncs returns the template functions to be applied into
256
+ // compiled campaign templates.
257
+ func (m * Manager ) TemplateFuncs (c * models.Campaign ) template.FuncMap {
258
+ return template.FuncMap {
259
+ "TrackLink" : func (url string , msg * Message ) string {
260
+ return m .trackLink (url , msg .Campaign .UUID , msg .Subscriber .UUID )
261
+ },
262
+ "TrackView" : func (msg * Message ) template.HTML {
263
+ return template .HTML (fmt .Sprintf (`<img src="%s" alt="" />` ,
264
+ fmt .Sprintf (m .cfg .ViewTrackURL , msg .Campaign .UUID , msg .Subscriber .UUID )))
265
+ },
266
+ "UnsubscribeURL" : func (msg * Message ) string {
267
+ return msg .unsubURL
268
+ },
269
+ "OptinURL" : func (msg * Message ) string {
270
+ // Add list IDs.
271
+ // TODO: Show private lists list on optin e-mail
272
+ return fmt .Sprintf (m .cfg .OptinURL , msg .Subscriber .UUID , "" )
273
+ },
274
+ "Date" : func (layout string ) string {
275
+ if layout == "" {
276
+ layout = time .ANSIC
277
+ }
278
+ return time .Now ().Format (layout )
279
+ },
280
+ }
281
+ }
282
+
259
283
// addCampaign adds a campaign to the process queue.
260
284
func (m * Manager ) addCampaign (c * models.Campaign ) error {
261
285
// Validate messenger.
@@ -281,7 +305,6 @@ func (m *Manager) getPendingCampaignIDs() []int64 {
281
305
for _ , c := range m .camps {
282
306
ids = append (ids , int64 (c .ID ))
283
307
}
284
-
285
308
return ids
286
309
}
287
310
@@ -358,17 +381,6 @@ func (m *Manager) exhaustCampaign(c *models.Campaign, status string) (*models.Ca
358
381
return cm , nil
359
382
}
360
383
361
- // Render takes a Message, executes its pre-compiled Campaign.Tpl
362
- // and applies the resultant bytes to Message.body to be used in messages.
363
- func (m * Message ) Render () error {
364
- out := bytes.Buffer {}
365
- if err := m .Campaign .Tpl .ExecuteTemplate (& out , models .BaseTpl , m ); err != nil {
366
- return err
367
- }
368
- m .Body = out .Bytes ()
369
- return nil
370
- }
371
-
372
384
// trackLink register a URL and return its UUID to be used in message templates
373
385
// for tracking links.
374
386
func (m * Manager ) trackLink (url , campUUID , subUUID string ) string {
@@ -412,30 +424,13 @@ func (m *Manager) sendNotif(c *models.Campaign, status, reason string) error {
412
424
return m .notifCB (subject , data )
413
425
}
414
426
415
- // TemplateFuncs returns the template functions to be applied into
416
- // compiled campaign templates.
417
- func (m * Manager ) TemplateFuncs (c * models.Campaign ) template.FuncMap {
418
- return template.FuncMap {
419
- "TrackLink" : func (url string , msg * Message ) string {
420
- return m .trackLink (url , msg .Campaign .UUID , msg .Subscriber .UUID )
421
- },
422
- "TrackView" : func (msg * Message ) template.HTML {
423
- return template .HTML (fmt .Sprintf (`<img src="%s" alt="" />` ,
424
- fmt .Sprintf (m .cfg .ViewTrackURL , msg .Campaign .UUID , msg .Subscriber .UUID )))
425
- },
426
- "UnsubscribeURL" : func (msg * Message ) string {
427
- return msg .unsubURL
428
- },
429
- "OptinURL" : func (msg * Message ) string {
430
- // Add list IDs.
431
- // TODO: Show private lists list on optin e-mail
432
- return fmt .Sprintf (m .cfg .OptinURL , msg .Subscriber .UUID , "" )
433
- },
434
- "Date" : func (layout string ) string {
435
- if layout == "" {
436
- layout = time .ANSIC
437
- }
438
- return time .Now ().Format (layout )
439
- },
427
+ // Render takes a Message, executes its pre-compiled Campaign.Tpl
428
+ // and applies the resultant bytes to Message.body to be used in messages.
429
+ func (m * Message ) Render () error {
430
+ out := bytes.Buffer {}
431
+ if err := m .Campaign .Tpl .ExecuteTemplate (& out , models .BaseTpl , m ); err != nil {
432
+ return err
440
433
}
434
+ m .Body = out .Bytes ()
435
+ return nil
441
436
}
0 commit comments