diff options
| author | lost+skunk <[email protected]> | 2024-07-05 11:08:32 +0300 |
|---|---|---|
| committer | lost+skunk <[email protected]> | 2024-07-05 11:08:32 +0300 |
| commit | 8b839f94063704782872cc11251975cfeae4584c (patch) | |
| tree | 327044de56afbeaf6356132e2594f5ca4100edf5 /app/util.go | |
| parent | 68248094e89b6af134147668a9add429b9a6fa77 (diff) | |
| download | skunky-art-8b839f94063704782872cc11251975cfeae4584c.tar.gz skunky-art-8b839f94063704782872cc11251975cfeae4584c.tar.bz2 skunky-art-8b839f94063704782872cc11251975cfeae4584c.zip | |
временная реализация RSS
Diffstat (limited to 'app/util.go')
| -rw-r--r-- | app/util.go | 102 |
1 files changed, 75 insertions, 27 deletions
diff --git a/app/util.go b/app/util.go index cda0ffc..0d36fd8 100644 --- a/app/util.go +++ b/app/util.go @@ -200,39 +200,87 @@ func (s skunkyart) NavBase(c dlist) string { func (s skunkyart) DeviationList(devs []devianter.Deviation, content ...dlist) string { var list strings.Builder - list.WriteString(`<div class="content">`) + if !s.atom { + list.WriteString(`<div class="content">`) + } else { + list.WriteString(`<?xml version="1.0" encoding="UTF-8"?><feed xmlns:media="http://search.yahoo.com/mrss" xmlns="http://www.w3.org/2005/Atom">`) + list.WriteString(`<title>SkunkyArt</title>`) + // list.WriteString(`<link rel="alternate" href="HOMEPAGE_URL"/><link href="FEED_URL" rel="self"/>`) + } for _, data := range devs { url := devianter.UrlFromMedia(data.Media) + if s.atom { + id := strconv.Itoa(data.ID) + list.WriteString(`<entry><author><name>`) + list.WriteString(data.Author.Username) + list.WriteString(`</name></author><title>`) + list.WriteString(data.Title) + list.WriteString(`</title><link rel="alternate" type="text/html" href="`) + list.WriteString(CFG.Base_uri) + list.WriteString("/post/") + list.WriteString(data.Author.Username) + list.WriteString("/atom-") + list.WriteString(id) + list.WriteString(`"/><id>`) + list.WriteString(id) + list.WriteString(`</id><published>`) + list.WriteString(data.PublishedTime.UTC().Format("Mon, 02 Jan 2006 15:04:05 -0700")) + list.WriteString(`</published>`) + list.WriteString(`<media:group><media:title>`) + list.WriteString(data.Title) + list.WriteString(`</media:title><media:thumbinal url="`) + list.WriteString(url) + list.WriteString(`"/></media:group><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><a href="`) + list.WriteString(data.Url) + list.WriteString(`"><img src="`) + list.WriteString(url) + list.WriteString(`"/></a><p>`) + list.WriteString(ParseDescription(data.TextContent)) + list.WriteString(`</p></div></content></entry>`) + } else { + list.WriteString(`<div class="block">`) + if url != "" { + list.WriteString(`<a title="open/download" href="`) + list.WriteString(url) + list.WriteString(`"><img src="`) + list.WriteString(url) + list.WriteString(`" width="15%"></a>`) + } else { + list.WriteString(`<h1>[ TEXT ]</h1>`) + } + list.WriteString(`<br><a href="`) + list.WriteString("/post/") + list.WriteString(data.Author.Username) + list.WriteString("/") + list.WriteString(data.Url[27:][strings.Index(data.Url[27:], "/art/")+5:]) + list.WriteString(`">`) + list.WriteString(data.Author.Username) + list.WriteString(" - ") + list.WriteString(data.Title) - list.WriteString(`<a title="open/download" href="`) - list.WriteString(url) - list.WriteString(`"><div class="block"><img src="`) - list.WriteString(url) - list.WriteString(`" width="15%"></a><br><a href="`) - list.WriteString("/post/") - list.WriteString(data.Author.Username) - list.WriteString("/") - list.WriteString(data.Url[27:][strings.Index(data.Url[27:], "/art/")+5:]) - list.WriteString(`">`) - list.WriteString(data.Author.Username) - list.WriteString(" - ") - list.WriteString(data.Title) - - // шильдики нсфв, аи и ежедневного поста - if data.NSFW { - list.WriteString(` [<span class="nsfw">NSFW</span>]`) - } - if data.AI { - list.WriteString(" [🤖]") - } - if data.DD { - list.WriteString(` [<span class="dd">DD</span>]`) + // шильдики нсфв, аи и ежедневного поста + if data.NSFW { + list.WriteString(` [<span class="nsfw">NSFW</span>]`) + } + if data.AI { + list.WriteString(" [🤖]") + } + if data.DD { + list.WriteString(` [<span class="dd">DD</span>]`) + } + + list.WriteString("</a></div>") } + } - list.WriteString("</a></div>") + if s.atom { + list.WriteString("</feed>") + s.Writer.Write([]byte(list.String())) + return "" + } else { + list.WriteString("</div>") + list.WriteString(s.NavBase(content[0])) } - list.WriteString("</div>") - list.WriteString(s.NavBase(content[0])) return list.String() } |
