1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include "err.h"
#include "db.h"
#include "query.h"
#include "site.h"
void
printdate(int timestamp)
{
char buf[20];
struct tm *t;
t = localtime((time_t *)×tamp);
strftime(buf, 20, "%Y-%m-%d %H:%M", t);
printf(buf);
}
void
showatt(id)
{
struct att *att;
if(!(att = getatt(byid("atts", id)))){
srverr("Could not retrieve att");
return;
}
printf("Content-Type: %s\n\n", att->mime);
printf("%.*s", att->bytes, att->data);
free(att);
}
void
showfront()
{
char *title;
struct post *post;
struct user *user;
sqlite3_stmt *stmt;
if(sqlite3_prepare(db,
"SELECT oid, * from posts ORDER BY created DESC",
-1, &stmt, 0) != SQLITE_OK){
srverr("Could not retrieve posts");
return;
}
title = site.name;
printf("Content-Type: text/html\n\n");
#include "t/front.tc"
}
void
showpost(int id)
{
char *title;
struct att *att;
struct post *post;
struct user *user;
sqlite3_stmt *stmt;
if(!(post = getpost(byid("posts", id)))){
srverr("Could not retrieve post");
return;
}
if(!(user = getuser(byid("users", post->user)))){
srverr("Could not retrieve post author");
return;
}
stmt = byid("atts", id);
title = site.name;
printf("Content-Type: text/html\n\n");
#include "t/post.tc"
free(user);
free(post);
}
void
showuser(int id)
{
char *title;
struct user *user;
if(!(user = getuser(byid("users", id)))){
srverr("Could not retrieve user");
return;
}
title = site.name;
printf("Content-Type: text/html\n\n");
#include "t/user.tc"
free(user);
}
|