Mercurial Hosting > linkmystyle
view src/lib/main_html.luan @ 0:8f4df159f06b
start public repo
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Fri, 11 Jul 2025 20:57:49 -0600 |
parents | |
children |
line wrap: on
line source
local Luan = require "luan:Luan.luan" local error = Luan.error local ipairs = Luan.ipairs or error() local String = require "luan:String.luan" local contains = String.contains or error() local Parsers = require "luan:Parsers.luan" local json_string = Parsers.json_string or error() local Html = require "luan:Html.luan" local html_encode = Html.encode or error() local Thread = require "luan:Thread.luan" local thread_run = Thread.run or error() local Io = require "luan:Io.luan" local Http = require "luan:http/Http.luan" local Shared = require "site:/lib/Shared.luan" local pub_head = Shared.pub_head or error() local show_saved = Shared.show_saved or error() local call_mixpanel = Shared.call_mixpanel or error() local get_hashtags_list = Shared.get_hashtags_list or error() local has_facebook = not not Shared.has_facebook local User = require "site:/lib/User.luan" local Link = require "site:/lib/Link.luan" local get_owner_links = Link.get_owner_links or error() local Pic = require "site:/lib/Pic.luan" local get_user_pics = Pic.get_user_pics or error() local Icon = require "site:/lib/Icon.luan" local get_user_icons = Icon.get_user_icons or error() local Facebook = require "site:/lib/Facebook.luan" local fb_track_visit = Facebook.track_visit or error() local Reporting = require "site:/lib/Reporting.luan" local maybe_track_visit = Reporting.maybe_track_visit or error() local should_track_visit = Reporting.should_track_visit or error() local Logging = require "luan:logging/Logging.luan" local logger = Logging.logger "main_html" local function ad_tracking(user) local referrer = Http.request.headers.referer if referrer ~= nil and not contains(referrer,"linkmy.style") and maybe_track_visit(user) then thread_run( function() if should_track_visit(user) then call_mixpanel{ event = "Visit" properties = { distinct_id = user.email } } if has_facebook then fb_track_visit(user) end end end ) end end return function(user) ad_tracking(user) local user_id = user.id local links = get_owner_links(user_id) local pics = get_user_pics(user_id) local icons = get_user_icons(user_id) local title = user.html_title() local pic_url = user.get_pic_url() local bio = user.bio local is_saved = Http.request.parameters.saved ~= nil local saved = is_saved and "&saved" or "" local hashtags_list, hashtags_set = get_hashtags_list(pics) Http.response.headers["Content-Type"] = "text/html; charset=utf-8" Io.stdout = Http.response.text_writer() %> <!doctype html> <html main> <head> <title>Link My Style | <%=title%></title> <style hashtag></style> <script> 'use strict'; window.Path = 'main'; window.Page = 'Home'; let hashtags = <%=json_string(hashtags_set)%>; </script> <% pub_head(user) %> <script> fbTrack('trackCustom', 'View', {owner:'<%=user.name%>'}); </script> </head> <body colored onload="mainInit()"> <% if is_saved then show_saved("/"..user.name) end %> <div pub_background_img></div> <div pub_content> <div home><a href="/?source=organic"> <span lms>LinkMyStyle</span> <br><span small>Increase Affiliate Sales</span> </a></div> <% if pic_url ~= nil then %> <img user src="<%=pic_url%>"> <% end %> <h1><%=title%></h1> <% if bio ~= nil then %> <div bio><%=html_encode(bio)%></div> <% end if #icons > 0 then %> <div icons> <% for _, icon in ipairs(icons) do %> <a <%=icon.title_attr()%> href="<%=html_encode(icon.url)%>"><img src="/images/icons/<%=icon.name%>.svg"></a> <% end %> </div> <% end %> <div links> <% for _, link in ipairs(links) do %> <a link href="<%=html_encode(link.url)%>"><%=html_encode(link.title)%></a> <% end %> </div> <% if #hashtags_list > 0 then %> <div hashtags> <span select> <select onchange="mainSelectHashtag(value)"> <option value="">All Photos</option> <% for _, hashtag in ipairs(hashtags_list) do %> <option value="<%=hashtag%>">#<%=hashtag%></option> <% end %> </select> </span> </div> <% end %> <div pics> <% for _, pic in ipairs(pics) do if pic.is_hidden then continue end local pic_id = pic.id %> <span id="p-<%=pic_id%>" <%= pic.class or "" %> > <a <%=pic.title_attr()%> href="/pic.html?pic=<%=pic_id%><%=saved%>"><img loading=lazy src="<%=pic.get_thumb_url()%>"></a> </span> <% end %> </div> </div> </body> </html> <% end