Mercurial Hosting > freedit
comparison src/lib/Post.luan @ 18:94e26bffd4fb
UI work
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Mon, 11 Jul 2022 12:14:05 -0600 |
parents | bff178656073 |
children | 0c1b820fff34 |
comparison
equal
deleted
inserted
replaced
17:a602a5735a37 | 18:94e26bffd4fb |
---|---|
8 local html_encode = Html.encode or error() | 8 local html_encode = Html.encode or error() |
9 local Db = require "site:/lib/Db.luan" | 9 local Db = require "site:/lib/Db.luan" |
10 | 10 |
11 | 11 |
12 local Post = {} | 12 local Post = {} |
13 | |
14 local times = { | |
15 { | |
16 time = 1000*60*60*24*365 | |
17 unit = "year" | |
18 } | |
19 { | |
20 time = 1000*60*60*24*7 | |
21 unit = "week" | |
22 } | |
23 { | |
24 time = 1000*60*60*24 | |
25 unit = "day" | |
26 } | |
27 { | |
28 time = 1000*60*60 | |
29 unit = "hour" | |
30 } | |
31 { | |
32 time = 1000*60 | |
33 unit = "minute" | |
34 } | |
35 } | |
13 | 36 |
14 local function from_doc(doc) | 37 local function from_doc(doc) |
15 doc.type == "post" or error "wrong type" | 38 doc.type == "post" or error "wrong type" |
16 return Post.new { | 39 return Post.new { |
17 id = doc.id | 40 id = doc.id |
89 local User = require "site:/lib/User.luan" | 112 local User = require "site:/lib/User.luan" |
90 local user = User.current() | 113 local user = User.current() |
91 return user ~= nil and user.name == post.author_name | 114 return user ~= nil and user.name == post.author_name |
92 end | 115 end |
93 | 116 |
117 function post.ago(now) | |
118 local diff = now - post.date | |
119 for _, t in ipairs(times) do | |
120 local n = diff // t.time | |
121 if n > 0 then | |
122 %><%=n%> <%=t.unit%><% | |
123 if n > 1 then | |
124 %>s<% | |
125 end | |
126 return | |
127 end | |
128 end | |
129 %>0 minutes<% | |
130 end | |
131 | |
94 set_metatable(post,metatable) | 132 set_metatable(post,metatable) |
95 return post | 133 return post |
96 end | 134 end |
97 | 135 |
98 function Post.get_by_id(id) | 136 function Post.get_by_id(id) |