5 - screenscrape the commodities trading screen
6 - produce the results as a tab separated values file
7 - **TODO** upload the results to PCTB
9 To run it, change to this directory, type `make', and then:
10 ./ypp-commodities --tsv >commods.tsv
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.
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
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 --find-island Find and print the ocean and island. Suppresses OCR
32 and output unless used with result processing option.
33 --test-servers Set default servers to be the test servers, not
34 the real live ones (doesn't affect explicit settings).
36 Controlling what happens to the results - only one at a time:
37 --upload (default) Upload to the PCTB server
38 --tsv Print data as clean tab-separated-values file
39 --raw-tsv Dump the raw (not deduped, unsorted) OCR'd data
40 --best-prices Print best buy and sell price for each commodity
41 --arbitrage Print arbitrage opportunities
43 Privacy options, which control conversations with the dictionary server:
44 --dict-local-only * Do not talk to the server even to fetch new dictionary.
45 --dict-read-only * Only fetch new dictionary, do not submit new entries.
46 --dict-anon Don't quote pirate name if submitting entries.
47 --dict-submit Submit entries quoting my pirate name. (default)
48 Please do not use options marked * with --upload. See README.privacy.
50 Options to override which servers we talk to:
51 --pctb-server HOST|URL Talk to the PCTB server at HOST or URL.
52 --dict-submit-url URL Submit dictionary entries with HTTP POST under URL.
53 --dict-update-from SRC Fetch updated master dictionary with rsync from SRC.
54 Or set the environment variables YPPSC_PCTB{_PCTB, _DICT_UPDATE, _DICT_SUBMIT}
57 Files we use and update
58 -----------------------
60 The program reads and writes the following files:
64 Contains one or more images (as raw ppms, end-to-end) which are the
65 screenshots taken in the last run. This is (over)written whenever
66 we take screenshots from the YPP client. You can reprocess an
67 existing set of screenshots with the --same (aka --analyse-only)
68 option; in that case we just read the screenshots file.
70 You can specify a different file with --screenshot-file.
72 If you want to display the contents of this file, `display' can do
73 it. Don't try `display vid:#pages#.pnm' as this will consume
74 truly stupendous quantities of RAM - it wedged my laptop.
78 Character set dictionary. For the semantics of the contents of this
79 file see README.charset. There is not currently any accurate
80 documentation of this dictionary format.
82 If you delete this file you'll have to re-enter a lot of glyph data
83 (and probably get it wrong and make the program misrecognise
84 things). If you want to undo any mistakes you may have made
85 answering OCR questions you can safely revert this to the version
90 Map from commodity names to the numbers required by the PCTB
91 server. This is fetched and updated automatically as necessary.
92 It can safely be deleted as it will then be refetched.
96 When any of these tools overwrite one of the persistent dictionary
97 files, they temporarily write to <file>.new.
99 These files are all in the current working directory. There is not
100 yet any feature to have them be somewhere else. The helper programs
102 commod-results-processor
103 must (currently) also be in the current directory.
105 Future versions may have more helpers and more data files.
108 Installation requirements
109 -------------------------
111 This program has quite a few dependencies:
112 Package (Debian etch)
114 - For building, C compiler and build environment build-essential
115 - pnm library, including dev files for building libnetpbm10-dev
116 - pnm command line utilities for image manipulation netpbm
117 - X11 libraries, including dev files for building libx11-dev
118 - XTEST library, including dev files for building libxtst-dev
119 - Tk interpreter /usr/bin/wish tk8.4
120 - Perl module XML::Parser libxml-parser-perl
121 - Perl module JSON::Parser libjson-perl
122 - XTEST extension in the X server (part of X package)
123 - Perl interpreter and basic modules perl (usu.installed)
125 On other Linux distros the packages may have different names, but
126 these should be roughly right for Debian and its derivatives.
132 If you need to report a bug, for example an inability to recognise,
133 please be sure to remember the exact error message and circumstances.
134 Also, for recognition problems there will probably be a very useful
135 screenshot file called `#pages#.pnm'. This is likely to be very large
136 so don't just email it to me, but if you can put it up on a webpage
137 for me to download that will help. At least keep a copy of it.
139 If the problem is a failure to cope with some particular YPP client
140 display and is reproducible, try running:
141 ./ypp-commodities --raw-tsv --single-page
142 If this reproduces the problem, please email me the screenshot file
143 #pages#.pnm, which will consist only of the single screen, plus the
144 error messasge. I'll then be able to understand what's wrong,
151 The main purpose of this program is to connect to the PCTB server and
152 upload data. It will do that if you run it with --upload.
154 This program will also, by default, talk to the dictionary server I
155 have set up: to download updated image dictionaries, and to upload new
156 dictionary entries which you create with the PCTB client dictionary
157 GUI. This feature is mentioned in and controllable in the GUI itself,
158 so it won't happen without you knowing about it.
160 The uploads will by default mention your ocean and pirate name; if you
161 don't want that, pass the --dict-anon option, or untick the box in the
164 See README.privacy for full details.
169 ijackson@chiark.greenend.org.uk
170 Aristarchus on the Midnight ocean