chiark / gitweb /
986338ad659dcd1c4669589149e9ec1ce1b0a771
[ypp-sc-tools.db-test.git] / pctb / README
1 Overview
2 --------
3
4 This tool can:
5   - screenscrape the commodities trading screen
6   - produce the results as a tab separated values file
7   - **TODO** upload the results to PCTB
8
9 To run it, change to this directory, type `make', and then:
10   ./ypp-commodities --tsv >commods.tsv
11
12 While it is capturing the screenshots, do not move the mouse or use
13 the keyboard.  Keyboard focus must stay in the YPP client window.
14
15
16 Command-line options
17 --------------------
18
19 Setting the operation mode:
20   --find-window-only       Just check that we can find the YPP client window.
21   --screenshot-only        Page through and take screenshots, do not OCR
22   --analyse-only | --same  Process previously taken screenshots
23   --everything (default)   Take screenshots and process them
24
25 Options to vary the processing:
26   --single-page         One screenful, no paging - results will be incomplete
27   --quiet               Suppress progress messages
28   --screenshot-file F   Store or read screenshots in F rather than #pages#.pnm
29   --window-id ID        Specified X window is the YPP client - do not search
30   --edit-charset        Enable character set editing.  See README.dictionary.
31
32 Controlling what happens to the results:
33   --upload (default) Upload to the PCTB server
34   --tsv              Print data as clean tab-separated-values file
35   --raw-tsv          Dump the raw (not deduped, unsorted) OCR'd data
36   --best-prices      Print best buy and sell price for each commodity
37   --arbitrage        Print arbitrage opportunities
38
39 Privacy options, which control conversations with the dictionary server:
40   --dict-local-only  *  Do not talk to the server even to fetch new dictionary.
41   --dict-read-only   *  Only fetch new dictionary, do not submit new entries.
42   --dict-anon           Don't quote pirate name if submitting entries.
43   --dict-submit         Submit entries quoting my pirate name.  (default)
44 Please do not use options marked * with --upload.  See README.privacy.
45
46 Options to override which servers we talk to:
47   --pctb-url HOST|URL    Talk to the PCTB server at HOST or URL.
48   --dict-submit-url URL  Submit dictionary entries with HTTP POST under URL.
49   --dict-update-url URL  Fetch updated master dictionary with rsync from URL.
50
51
52 Files we use and update
53 -----------------------
54
55 The program reads and writes the following files:
56
57  * #pages#.pnm
58
59    Contains one or more images (as raw ppms, end-to-end) which are the
60    screenshots taken in the last run.  This is (over)written whenever
61    we take screenshots from the YPP client.  You can reprocess an
62    existing set of screenshots with the --same (aka --analyse-only)
63    option; in that case we just read the screenshots file.
64
65    You can specify a different file with --screenshot-file.
66
67    If you want to display the contents of this file, `display' can do
68    it.  Don't try `display vid:#pages#.pnm' as this will consume
69    truly stupendous quantities of RAM - it wedged my laptop.
70
71  * charset-15.txt
72
73    Character set dictionary.  For the semantics of the contents of this
74    file see README.charset.  There is not currently any accurate
75    documentation of this dictionary format.
76
77    If you delete this file you'll have to re-enter a lot of glyph data
78    (and probably get it wrong and make the program misrecognise
79    things).  If you want to undo any mistakes you may have made
80    answering OCR questions you can safely revert this to the version
81    I've supplied.
82
83  * #commodmap#.tsv
84
85    Map from commodity names to the numbers required by the PCTB
86    server.  This is fetched and updated automatically as necessary.
87    It can safely be deleted as it will then be refetched.
88
89  * <file>.new
90
91    When any of these tools overwrite one of the persistent dictionary
92    files, they temporarily write to <file>.new.
93
94 These files are all in the current working directory.  There is not
95 yet any feature to have them be somewhere else.  The helper programs
96   yppsc-ocr-resolver
97   yppsc-commod-processor
98 must (currently) also be in the current directory.
99
100 Future versions may have more helpers and more data files.
101
102
103 Installation requirements
104 -------------------------
105
106 This program has quite a few dependencies:
107                                                         Package (Debian etch)
108
109  - For building, C compiler and build environment       build-essential
110  - pnm library, including dev files for building        libnetpbm10-dev
111  - pnm command line utilities for image manipulation    netpbm
112  - X11 libraries, including dev files for building      libx11-dev
113  - XTEST library, including dev files for building      libxtst-dev
114  - Tk interpreter /usr/bin/wish                         tk8.4
115  - Perl module XML::Parser                              libxml-parser-perl
116  - Perl module JSON::Parser                             libjson-perl
117  - XTEST extension in the X server                      (part of X package)
118  - Perl interpreter and basic modules                   perl (usu.installed)
119
120 On other Linux distros the packages may have different names, but
121 these should be roughly right for Debian and its derivatives.
122
123
124 Reporting problems
125 ------------------
126
127 If you need to report a bug, for example an inability to recognise,
128 please be sure to remember the exact error message and circumstances.
129 Also, for recognition problems there will probably be a very useful
130 screenshot file called `#pages#.pnm'.  This is likely to be very large
131 so don't just email it to me, but if you can put it up on a webpage
132 for me to download that will help.  At least keep a copy of it.
133
134 If the problem is a failure to cope with some particular YPP client
135 display and is reproducible, try running:
136    ./ypp-commodities --raw-tsv --single-page
137 If this reproduces the problem, please email me the screenshot file
138 #pages#.pnm, which will consist only of the single screen, plus the
139 error messasge.  I'll then be able to understand what's wrong,
140 hopefully.
141
142
143 Privacy
144 -------
145
146 The main purpose of this program is to connect to the PCTB server and
147 upload data.  It will do that if you run it with --upload.
148
149 This program will also, by default, talk to the dictionary server I
150 have set up: to download updated image dictionaries, and to upload new
151 dictionary entries which you create with the PCTB client dictionary
152 GUI.  This feature is mentioned in and controllable in the GUI itself,
153 so it won't happen without you knowing about it.
154
155 The uploads will by default mention your ocean and pirate name; if you
156 don't want that, pass the --dict-anon option, or untick the box in the
157 GUI.
158
159 See README.privacy for full details.
160
161
162
163  - Ian Jackson
164    ijackson@chiark.greenend.org.uk
165    Aristarchus on the Midnight ocean