defmodule Mse25Web.FeedView do
use Mse25Web, :html
def rss(items, _host) do
~s"""
madr.se
The online home of Anders Englöf Ytterström, a metalhead and musician living and working in Borlänge, Sweden.
sv
https://madr.se/
yttan@fastmail.se (Anders Englöf Ytterström)
yttan@fastmail.se (Anders Englöf Ytterström)
#{Enum.map(items, &rss_item/1)}
"""
end
def calendar(upcoming) do
~s"""
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//https://madr.se//kommande-evenemang.ics//SE
CALSCALE:GREGORIAN
X-ORIGINAL-URL:https://madr.se
X-WR-CALDESC: Kommande evenemang, madr.se
METHOD:PUBLISH
REFRESH-INTERVAL;VALUE=DURATION:PT1H
X-Robots-Tag:noindex
X-PUBLISHED-TTL:PT1H
BEGIN:VTIMEZONE
TZID:CEST
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0200
TZNAME:CEST
DTSTART:20000630T000000
END:STANDARD
END:VTIMEZONE
#{upcoming |> Enum.map(fn %{id: id, title: title, created_at: created_at, starts_at: starts_at, ends_at: ends_at, longitude: longitude, latitude: latitude, lead: lead, venue: venue, region: region} -> ~s"""
BEGIN:VEVENT
UID:#{starts_at}.#{id}@madr.se
DTSTAMP:#{created_at}
CREATED:#{created_at}
LAST-MODIFIED:#{created_at}
DTSTART;TZID=CEST:#{starts_at}T060606
DTEND;TZID=CEST:#{ends_at}T060606
SUMMARY:#{title}
DESCRIPTION:#{lead}
LOCATION:#{venue}\, #{region}
GEO:#{latitude};#{longitude}
END:VEVENT
""" end) |> Enum.join("")}END:VCALENDAR
"""
end
def event_map(markers) do
~s"""
(function(g, document) {
"use strict";
const mapData = [
#{markers |> Enum.map(fn %{date: date, latitude: latitude, longitude: longitude, title: title, region: region, venue: venue} -> ~s"""
{
location: [#{longitude}, #{latitude}],
title: "#{title}",
date: "#{date}",
region: "#{region}",
venue: "#{venue}"
}
""" end) |> Enum.join(",")}
]
// insert Leaflet styles () to
and