diff --git a/internal/domain/config.go b/internal/domain/config.go index 926d13c..b0a8283 100644 --- a/internal/domain/config.go +++ b/internal/domain/config.go @@ -18,5 +18,6 @@ type ( Kofi string `env:"KOFI"` DonationAlerts string `env:"DONATION_ALERTS"` BuyMeACoffee string `env:"BUY_ME_A_COFFEE"` + Tribute string `env:"TRIBUTE"` } ) diff --git a/web/static/styles.css b/web/static/styles.css index 8cb09a3..80d580b 100644 --- a/web/static/styles.css +++ b/web/static/styles.css @@ -117,6 +117,12 @@ button[href*='buymeacoffee.com'] { --color: hsl(243, 49%, 9%); } +.button[href*='t.me'], +button[href*='t.me'] { + --background: hsl(204, 78%, 50%); + --color: hsl(0, 0%, 100%); +} + .with-icon .icon, .button .icon, .button svg, diff --git a/web/template/template.qtpl b/web/template/template.qtpl index 22124a8..8ca81fb 100644 --- a/web/template/template.qtpl +++ b/web/template/template.qtpl @@ -186,6 +186,19 @@ func NewContext(processors domain.ConfigProcessors, lang language.Tag, amount ui {% endif %} + {% if ctx.processors.Tribute != "" %} +
  • + + + {%= icon("telegram") %} + Telegram + +
  • + {% endif %} {% endfunc %} @@ -322,6 +335,18 @@ func NewContext(processors domain.ConfigProcessors, lang language.Tag, amount ui + {% case "telegram" %} + {% endswitch %} {% endfunc %} {% endstripspace %} diff --git a/web/template/template.qtpl.go b/web/template/template.qtpl.go index ba5d7a8..95098a8 100644 --- a/web/template/template.qtpl.go +++ b/web/template/template.qtpl.go @@ -526,440 +526,502 @@ func (ctx Context) streambody(qw422016 *qt422016.Writer) { qw422016.N().S(`Buy me a coffee`) //line web/template/template.qtpl:188 } -//line web/template/template.qtpl:188 - qw422016.N().S(``) -//line web/template/template.qtpl:190 -} - -//line web/template/template.qtpl:190 -func (ctx Context) writebody(qq422016 qtio422016.Writer) { -//line web/template/template.qtpl:190 - qw422016 := qt422016.AcquireWriter(qq422016) -//line web/template/template.qtpl:190 - ctx.streambody(qw422016) -//line web/template/template.qtpl:190 - qt422016.ReleaseWriter(qw422016) -//line web/template/template.qtpl:190 -} - -//line web/template/template.qtpl:190 -func (ctx Context) body() string { -//line web/template/template.qtpl:190 - qb422016 := qt422016.AcquireByteBuffer() -//line web/template/template.qtpl:190 - ctx.writebody(qb422016) -//line web/template/template.qtpl:190 - qs422016 := string(qb422016.B) -//line web/template/template.qtpl:190 - qt422016.ReleaseByteBuffer(qb422016) -//line web/template/template.qtpl:190 - return qs422016 -//line web/template/template.qtpl:190 -} - +//line web/template/template.qtpl:189 + if ctx.processors.Tribute != "" { +//line web/template/template.qtpl:189 + qw422016.N().S(`
  • `) +//line web/template/template.qtpl:197 + streamicon(qw422016, "telegram") +//line web/template/template.qtpl:197 + qw422016.N().S(`Telegram
  • `) //line web/template/template.qtpl:201 -func (ctx Context) streamlang(qw422016 *qt422016.Writer) { -//line web/template/template.qtpl:202 - base, _ := ctx.language.Base() + } +//line web/template/template.qtpl:201 + qw422016.N().S(``) +//line web/template/template.qtpl:203 +} //line web/template/template.qtpl:203 - qw422016.E().S(base.String()) -//line web/template/template.qtpl:204 -} - -//line web/template/template.qtpl:204 -func (ctx Context) writelang(qq422016 qtio422016.Writer) { -//line web/template/template.qtpl:204 +func (ctx Context) writebody(qq422016 qtio422016.Writer) { +//line web/template/template.qtpl:203 qw422016 := qt422016.AcquireWriter(qq422016) -//line web/template/template.qtpl:204 - ctx.streamlang(qw422016) -//line web/template/template.qtpl:204 +//line web/template/template.qtpl:203 + ctx.streambody(qw422016) +//line web/template/template.qtpl:203 qt422016.ReleaseWriter(qw422016) -//line web/template/template.qtpl:204 +//line web/template/template.qtpl:203 } -//line web/template/template.qtpl:204 -func (ctx Context) lang() string { -//line web/template/template.qtpl:204 +//line web/template/template.qtpl:203 +func (ctx Context) body() string { +//line web/template/template.qtpl:203 qb422016 := qt422016.AcquireByteBuffer() -//line web/template/template.qtpl:204 - ctx.writelang(qb422016) -//line web/template/template.qtpl:204 +//line web/template/template.qtpl:203 + ctx.writebody(qb422016) +//line web/template/template.qtpl:203 qs422016 := string(qb422016.B) -//line web/template/template.qtpl:204 +//line web/template/template.qtpl:203 qt422016.ReleaseByteBuffer(qb422016) -//line web/template/template.qtpl:204 +//line web/template/template.qtpl:203 return qs422016 -//line web/template/template.qtpl:204 +//line web/template/template.qtpl:203 } +//line web/template/template.qtpl:205 +func (ctx Context) streamdir(qw422016 *qt422016.Writer) { //line web/template/template.qtpl:206 -func (ctx Context) streamt(qw422016 *qt422016.Writer, format message.Reference, v ...any) { + switch ctx.language { //line web/template/template.qtpl:207 - qw422016.E().S(ctx.printer.Sprintf(format, v...)) -//line web/template/template.qtpl:208 -} - -//line web/template/template.qtpl:208 -func (ctx Context) writet(qq422016 qtio422016.Writer, format message.Reference, v ...any) { -//line web/template/template.qtpl:208 - qw422016 := qt422016.AcquireWriter(qq422016) -//line web/template/template.qtpl:208 - ctx.streamt(qw422016, format, v...) -//line web/template/template.qtpl:208 - qt422016.ReleaseWriter(qw422016) -//line web/template/template.qtpl:208 -} - -//line web/template/template.qtpl:208 -func (ctx Context) t(format message.Reference, v ...any) string { -//line web/template/template.qtpl:208 - qb422016 := qt422016.AcquireByteBuffer() -//line web/template/template.qtpl:208 - ctx.writet(qb422016, format, v...) -//line web/template/template.qtpl:208 - qs422016 := string(qb422016.B) -//line web/template/template.qtpl:208 - qt422016.ReleaseByteBuffer(qb422016) -//line web/template/template.qtpl:208 - return qs422016 -//line web/template/template.qtpl:208 -} - -//line web/template/template.qtpl:210 -func (ctx Context) streamtitle(qw422016 *qt422016.Writer) { -//line web/template/template.qtpl:210 - qw422016.N().S(`NotDotPay`) -//line web/template/template.qtpl:212 -} - -//line web/template/template.qtpl:212 -func (ctx Context) writetitle(qq422016 qtio422016.Writer) { -//line web/template/template.qtpl:212 - qw422016 := qt422016.AcquireWriter(qq422016) -//line web/template/template.qtpl:212 - ctx.streamtitle(qw422016) -//line web/template/template.qtpl:212 - qt422016.ReleaseWriter(qw422016) -//line web/template/template.qtpl:212 -} - -//line web/template/template.qtpl:212 -func (ctx Context) title() string { -//line web/template/template.qtpl:212 - qb422016 := qt422016.AcquireByteBuffer() -//line web/template/template.qtpl:212 - ctx.writetitle(qb422016) -//line web/template/template.qtpl:212 - qs422016 := string(qb422016.B) -//line web/template/template.qtpl:212 - qt422016.ReleaseByteBuffer(qb422016) -//line web/template/template.qtpl:212 - return qs422016 -//line web/template/template.qtpl:212 -} - -//line web/template/template.qtpl:214 -func StreamTemplate(qw422016 *qt422016.Writer, p Page) { -//line web/template/template.qtpl:214 - qw422016.N().S(`NotDotPay`) -//line web/template/template.qtpl:224 - p.streamhead(qw422016) -//line web/template/template.qtpl:224 - qw422016.N().S(``) -//line web/template/template.qtpl:228 - p.streambody(qw422016) -//line web/template/template.qtpl:228 - qw422016.N().S(``) -//line web/template/template.qtpl:236 -} - -//line web/template/template.qtpl:236 -func WriteTemplate(qq422016 qtio422016.Writer, p Page) { -//line web/template/template.qtpl:236 - qw422016 := qt422016.AcquireWriter(qq422016) -//line web/template/template.qtpl:236 - StreamTemplate(qw422016, p) -//line web/template/template.qtpl:236 - qt422016.ReleaseWriter(qw422016) -//line web/template/template.qtpl:236 -} - -//line web/template/template.qtpl:236 -func Template(p Page) string { -//line web/template/template.qtpl:236 - qb422016 := qt422016.AcquireByteBuffer() -//line web/template/template.qtpl:236 - WriteTemplate(qb422016, p) -//line web/template/template.qtpl:236 - qs422016 := string(qb422016.B) -//line web/template/template.qtpl:236 - qt422016.ReleaseByteBuffer(qb422016) -//line web/template/template.qtpl:236 - return qs422016 -//line web/template/template.qtpl:236 -} - -//line web/template/template.qtpl:238 -func streamicon(qw422016 *qt422016.Writer, id string) { -//line web/template/template.qtpl:239 - switch id { -//line web/template/template.qtpl:240 - case "liberapay": -//line web/template/template.qtpl:240 - qw422016.N().S(``) -//line web/template/template.qtpl:251 - case "paypal": -//line web/template/template.qtpl:251 - qw422016.N().S(``) -//line web/template/template.qtpl:260 - qw422016.N().S(``) -//line web/template/template.qtpl:262 - qw422016.N().S(``) -//line web/template/template.qtpl:264 - qw422016.N().S(``) -//line web/template/template.qtpl:267 - case "yoomoney": -//line web/template/template.qtpl:267 - qw422016.N().S(``) -//line web/template/template.qtpl:279 - case "kofi": -//line web/template/template.qtpl:279 - qw422016.N().S(``) -//line web/template/template.qtpl:300 - case "da": -//line web/template/template.qtpl:300 - qw422016.N().S(``) -//line web/template/template.qtpl:311 - case "bmc": -//line web/template/template.qtpl:311 - qw422016.N().S(``) -//line web/template/template.qtpl:325 + default: +//line web/template/template.qtpl:207 + qw422016.N().S(`ltr`) +//line web/template/template.qtpl:209 + case language.Arabic, language.Persian, language.Hebrew, language.Urdu: +//line web/template/template.qtpl:209 + qw422016.N().S(`rtl`) +//line web/template/template.qtpl:211 } -//line web/template/template.qtpl:326 +//line web/template/template.qtpl:212 } -//line web/template/template.qtpl:326 -func writeicon(qq422016 qtio422016.Writer, id string) { -//line web/template/template.qtpl:326 +//line web/template/template.qtpl:212 +func (ctx Context) writedir(qq422016 qtio422016.Writer) { +//line web/template/template.qtpl:212 qw422016 := qt422016.AcquireWriter(qq422016) -//line web/template/template.qtpl:326 - streamicon(qw422016, id) -//line web/template/template.qtpl:326 +//line web/template/template.qtpl:212 + ctx.streamdir(qw422016) +//line web/template/template.qtpl:212 qt422016.ReleaseWriter(qw422016) -//line web/template/template.qtpl:326 +//line web/template/template.qtpl:212 } -//line web/template/template.qtpl:326 -func icon(id string) string { -//line web/template/template.qtpl:326 +//line web/template/template.qtpl:212 +func (ctx Context) dir() string { +//line web/template/template.qtpl:212 qb422016 := qt422016.AcquireByteBuffer() -//line web/template/template.qtpl:326 - writeicon(qb422016, id) -//line web/template/template.qtpl:326 +//line web/template/template.qtpl:212 + ctx.writedir(qb422016) +//line web/template/template.qtpl:212 qs422016 := string(qb422016.B) -//line web/template/template.qtpl:326 +//line web/template/template.qtpl:212 qt422016.ReleaseByteBuffer(qb422016) -//line web/template/template.qtpl:326 +//line web/template/template.qtpl:212 return qs422016 -//line web/template/template.qtpl:326 +//line web/template/template.qtpl:212 +} + +//line web/template/template.qtpl:214 +func (ctx Context) streamlang(qw422016 *qt422016.Writer) { +//line web/template/template.qtpl:215 + base, _ := ctx.language.Base() + +//line web/template/template.qtpl:216 + qw422016.E().S(base.String()) +//line web/template/template.qtpl:217 +} + +//line web/template/template.qtpl:217 +func (ctx Context) writelang(qq422016 qtio422016.Writer) { +//line web/template/template.qtpl:217 + qw422016 := qt422016.AcquireWriter(qq422016) +//line web/template/template.qtpl:217 + ctx.streamlang(qw422016) +//line web/template/template.qtpl:217 + qt422016.ReleaseWriter(qw422016) +//line web/template/template.qtpl:217 +} + +//line web/template/template.qtpl:217 +func (ctx Context) lang() string { +//line web/template/template.qtpl:217 + qb422016 := qt422016.AcquireByteBuffer() +//line web/template/template.qtpl:217 + ctx.writelang(qb422016) +//line web/template/template.qtpl:217 + qs422016 := string(qb422016.B) +//line web/template/template.qtpl:217 + qt422016.ReleaseByteBuffer(qb422016) +//line web/template/template.qtpl:217 + return qs422016 +//line web/template/template.qtpl:217 +} + +//line web/template/template.qtpl:219 +func (ctx Context) streamt(qw422016 *qt422016.Writer, format message.Reference, v ...any) { +//line web/template/template.qtpl:220 + qw422016.E().S(ctx.printer.Sprintf(format, v...)) +//line web/template/template.qtpl:221 +} + +//line web/template/template.qtpl:221 +func (ctx Context) writet(qq422016 qtio422016.Writer, format message.Reference, v ...any) { +//line web/template/template.qtpl:221 + qw422016 := qt422016.AcquireWriter(qq422016) +//line web/template/template.qtpl:221 + ctx.streamt(qw422016, format, v...) +//line web/template/template.qtpl:221 + qt422016.ReleaseWriter(qw422016) +//line web/template/template.qtpl:221 +} + +//line web/template/template.qtpl:221 +func (ctx Context) t(format message.Reference, v ...any) string { +//line web/template/template.qtpl:221 + qb422016 := qt422016.AcquireByteBuffer() +//line web/template/template.qtpl:221 + ctx.writet(qb422016, format, v...) +//line web/template/template.qtpl:221 + qs422016 := string(qb422016.B) +//line web/template/template.qtpl:221 + qt422016.ReleaseByteBuffer(qb422016) +//line web/template/template.qtpl:221 + return qs422016 +//line web/template/template.qtpl:221 +} + +//line web/template/template.qtpl:223 +func (ctx Context) streamtitle(qw422016 *qt422016.Writer) { +//line web/template/template.qtpl:223 + qw422016.N().S(`NotDotPay`) +//line web/template/template.qtpl:225 +} + +//line web/template/template.qtpl:225 +func (ctx Context) writetitle(qq422016 qtio422016.Writer) { +//line web/template/template.qtpl:225 + qw422016 := qt422016.AcquireWriter(qq422016) +//line web/template/template.qtpl:225 + ctx.streamtitle(qw422016) +//line web/template/template.qtpl:225 + qt422016.ReleaseWriter(qw422016) +//line web/template/template.qtpl:225 +} + +//line web/template/template.qtpl:225 +func (ctx Context) title() string { +//line web/template/template.qtpl:225 + qb422016 := qt422016.AcquireByteBuffer() +//line web/template/template.qtpl:225 + ctx.writetitle(qb422016) +//line web/template/template.qtpl:225 + qs422016 := string(qb422016.B) +//line web/template/template.qtpl:225 + qt422016.ReleaseByteBuffer(qb422016) +//line web/template/template.qtpl:225 + return qs422016 +//line web/template/template.qtpl:225 +} + +//line web/template/template.qtpl:227 +func StreamTemplate(qw422016 *qt422016.Writer, p Page) { +//line web/template/template.qtpl:227 + qw422016.N().S(`NotDotPay`) +//line web/template/template.qtpl:237 + p.streamhead(qw422016) +//line web/template/template.qtpl:237 + qw422016.N().S(``) +//line web/template/template.qtpl:241 + p.streambody(qw422016) +//line web/template/template.qtpl:241 + qw422016.N().S(``) +//line web/template/template.qtpl:249 +} + +//line web/template/template.qtpl:249 +func WriteTemplate(qq422016 qtio422016.Writer, p Page) { +//line web/template/template.qtpl:249 + qw422016 := qt422016.AcquireWriter(qq422016) +//line web/template/template.qtpl:249 + StreamTemplate(qw422016, p) +//line web/template/template.qtpl:249 + qt422016.ReleaseWriter(qw422016) +//line web/template/template.qtpl:249 +} + +//line web/template/template.qtpl:249 +func Template(p Page) string { +//line web/template/template.qtpl:249 + qb422016 := qt422016.AcquireByteBuffer() +//line web/template/template.qtpl:249 + WriteTemplate(qb422016, p) +//line web/template/template.qtpl:249 + qs422016 := string(qb422016.B) +//line web/template/template.qtpl:249 + qt422016.ReleaseByteBuffer(qb422016) +//line web/template/template.qtpl:249 + return qs422016 +//line web/template/template.qtpl:249 +} + +//line web/template/template.qtpl:251 +func streamicon(qw422016 *qt422016.Writer, id string) { +//line web/template/template.qtpl:252 + switch id { +//line web/template/template.qtpl:253 + case "liberapay": +//line web/template/template.qtpl:253 + qw422016.N().S(``) +//line web/template/template.qtpl:264 + case "paypal": +//line web/template/template.qtpl:264 + qw422016.N().S(``) +//line web/template/template.qtpl:273 + qw422016.N().S(``) +//line web/template/template.qtpl:275 + qw422016.N().S(``) +//line web/template/template.qtpl:277 + qw422016.N().S(``) +//line web/template/template.qtpl:280 + case "yoomoney": +//line web/template/template.qtpl:280 + qw422016.N().S(``) +//line web/template/template.qtpl:292 + case "kofi": +//line web/template/template.qtpl:292 + qw422016.N().S(``) +//line web/template/template.qtpl:313 + case "da": +//line web/template/template.qtpl:313 + qw422016.N().S(``) +//line web/template/template.qtpl:324 + case "bmc": +//line web/template/template.qtpl:324 + qw422016.N().S(``) +//line web/template/template.qtpl:338 + case "telegram": +//line web/template/template.qtpl:338 + qw422016.N().S(``) +//line web/template/template.qtpl:350 + } +//line web/template/template.qtpl:351 +} + +//line web/template/template.qtpl:351 +func writeicon(qq422016 qtio422016.Writer, id string) { +//line web/template/template.qtpl:351 + qw422016 := qt422016.AcquireWriter(qq422016) +//line web/template/template.qtpl:351 + streamicon(qw422016, id) +//line web/template/template.qtpl:351 + qt422016.ReleaseWriter(qw422016) +//line web/template/template.qtpl:351 +} + +//line web/template/template.qtpl:351 +func icon(id string) string { +//line web/template/template.qtpl:351 + qb422016 := qt422016.AcquireByteBuffer() +//line web/template/template.qtpl:351 + writeicon(qb422016, id) +//line web/template/template.qtpl:351 + qs422016 := string(qb422016.B) +//line web/template/template.qtpl:351 + qt422016.ReleaseByteBuffer(qb422016) +//line web/template/template.qtpl:351 + return qs422016 +//line web/template/template.qtpl:351 }