Download
jcs
/wikipedia
/wikipedia.h
(View History)
jcs wikipedia: Use XML API for searching too, get rid of pdjson | Latest amendment: 33 on 2022-09-07 |
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 __WIKIPEDIA_H__ |
18 | #define __WIKIPEDIA_H__ |
19 | |
20 | #include "browser.h" |
21 | #include "http.h" |
22 | |
23 | #define PROGRAM_NAME "Wikipedia" |
24 | |
25 | #define MBAR_ID 128 |
26 | |
27 | #define APPLE_MENU_ID 128 |
28 | #define APPLE_MENU_ABOUT_ID 1 |
29 | |
30 | #define FILE_MENU_ID 129 |
31 | #define FILE_MENU_QUIT_ID 1 |
32 | |
33 | #define EDIT_MENU_ID 130 |
34 | #define EDIT_MENU_CUT_ID 1 |
35 | #define EDIT_MENU_COPY_ID 2 |
36 | #define EDIT_MENU_PASTE_ID 3 |
37 | #define EDIT_MENU_SELECT_ALL_ID 4 |
38 | |
39 | #define VIEW_MENU_ID 131 |
40 | #define VIEW_MENU_DEBUG_ID 1 |
41 | |
42 | extern MenuHandle file_menu, edit_menu, view_menu; |
43 | |
44 | void menu_defaults(void); |
45 | |
46 | enum { |
47 | WP_STATE_XML_INIT, |
48 | WP_STATE_XML_PARSE, |
49 | WP_STATE_WIKITEXT_INIT, |
50 | WP_STATE_WIKITEXT_PARSE, |
51 | WP_STATE_HAVE_REDIRECT, |
52 | WP_STATE_DONE |
53 | }; |
54 | |
55 | struct wikipedia_request { |
56 | short state; |
57 | struct browser *browser; |
58 | struct http_request *http_request; |
59 | char *normalized_title; |
60 | size_t article_len; |
61 | |
62 | char *buf; |
63 | size_t buf_size; |
64 | size_t buf_len; |
65 | short refs, curlys, brackets; |
66 | unsigned long style, last_style; |
67 | bool trim_whitespace, redirect; |
68 | }; |
69 | |
70 | struct wikipedia_request * wikipedia_fetch_article(struct browser *, |
71 | char *); |
72 | size_t wikipedia_fetch_search_results(struct browser *browser, char *query, |
73 | char ***results); |
74 | struct wikipedia_request * wikipedia_read_cached_article(struct browser *browser, |
75 | char *name); |
76 | void wikipedia_request_present(struct wikipedia_request *wpr); |
77 | void wikipedia_request_process(struct wikipedia_request *wpr); |
78 | void wikipedia_request_abort(struct wikipedia_request *wpr); |
79 | |
80 | #endif |