AmendHub

Download

jcs

/

subtext

/

folder.h

 

(View History)

jcs   binkp: Import unseen messages into boards with matching fidonet_area Latest amendment: 323 on 2023-02-25

1 /*
2 * Copyright (c) 2022 joshua stein <jcs@jcs.org>
3 *
4 * Permission to use, copy, modify, and distribute this software for any
5 * purpose with or without fee is hereby granted, provided that the above
6 * copyright notice and this permission notice appear in all copies.
7 *
8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15 */
16
17 #ifndef __FOLDER_H__
18 #define __FOLDER_H__
19
20 #include <stddef.h>
21 #include <stdio.h>
22 #include "db.h"
23 #include "settings.h"
24 #include "sha1.h"
25
26 struct folder {
27 unsigned long id;
28 char name[32];
29 char description[100];
30 bool restricted_posting;
31 bool restricted_viewing;
32 unsigned long last_upload_at;
33 unsigned long file_count;
34 char path[FILENAME_MAX];
35
36 struct bile *bile;
37 };
38
39 extern const struct struct_field folder_fields[];
40 extern const size_t nfolder_fields;
41 extern const struct bile_object_field folder_object_fields[];
42 extern const size_t nfolder_object_fields;
43
44 struct folder_file {
45 unsigned long id;
46 time_t time;
47 unsigned long uploader_user_id;
48 #define FOLDER_FILE_FILENAME_LENGTH 31
49 char filename[FOLDER_FILE_FILENAME_LENGTH];
50 #define FOLDER_FILE_DESCR_LENGTH 50
51 char description[FOLDER_FILE_DESCR_LENGTH];
52 size_t size;
53 char sha1_checksum[SHA1_DIGEST_STRING_LENGTH + 1]; /* 42 */
54 size_t notes_size;
55 char *notes;
56 };
57 extern const struct bile_object_field folder_file_object_fields[];
58 extern const size_t nfolder_file_object_fields;
59
60 void folder_list(struct session *s);
61
62 #endif