+Overview
+--------
+
This tool can:
- screenscrape the commodities trading screen
- produce the results as a tab separated values file
- - **TODO** upload the results to PCTB
+ - upload the results to PCTB
To run it, change to this directory, type `make', and then:
+ ./ypp-commodities --upload
+to upload to the PCTB server. Currently we use pctb.ilk.org,
+the testing instance of the PCTB database, pending approval from the
+operators of the main server.
+
+Or, for example, for a tab-separated values dump:
./ypp-commodities --tsv >commods.tsv
-It may put up a window asking about characters it does not understand.
-It is important to get these inputs right or it may misrecognise
-things in future. **TODO** write actual useful instructuions to cover the
-subtleties. The results are stored in the file `charset-15.txt'.
-
-If you need to report a bug, please be sure to remember the exact
-error message and circumstances. Also, for recognition problems there
-will probably be a very useful screenshot file called `#pages#.pnm'.
-This is likely to be very large so don't just email it to me, but if
-you can put it up on a webpage for me to download that will help.
-
-Options available:
-
- Setting the operation mode:
- --find-window-only Just check that we can find the YPP client window.
- --screenshot-only Page through and take screenshots, do not OCR
- --analyse-only | --same Process previously taken screenshots
- --everything (default) Take screenshots and process them
-
- Options to vary the processing:
- --single-page One screenful, no paging - results will be incomplete
- --quiet Suppress progress messages
- --screenshot-file F Store or read screenshots in F rather than #pages#.pnm
- --window-id ID Specified X window is the YPP client - do not search
-
- Setting the output processing:
- --raw-tsv Dump the raw not deduped unsorted OCR'd data
- --upload (default) Upload to the PCTB server
- --tsv Print data as clean tab-separated-values file
- --best-prices Print best buy and sell price for each commodity
- --arbitrage Print arbitrage opportunityes
+While it is capturing the screenshots, do not move the mouse or use
+the keyboard. Keyboard focus must stay in the YPP client window.
+
+
+Command-line options
+--------------------
+
+Setting the operation mode:
+ --find-window-only Just check that we can find the YPP client window.
+ --screenshot-only Page through and take screenshots, do not OCR
+ --analyse-only | --same Process previously taken screenshots
+ --everything (default) Take screenshots and process them
+
+Options to vary the processing:
+ --single-page One screenful, no paging - results will be incomplete
+ --quiet Suppress progress messages
+ --screenshot-file F Store or read screenshots in F rather than #pages#.pnm
+ --window-id ID Specified X window is the YPP client - do not search
+ --edit-charset Enable character set editing. See README.dictionary.
+ --no-edit-charset Do not edit charset even if #local-char*#.txt exists.
+ --find-island Find and print the ocean and island. Suppresses OCR
+ and output unless used with result processing option.
+ --test-servers Set default servers to be the test servers, not
+ the real live ones (doesn't affect explicit settings).
+
+Controlling what happens to the results - only one at a time:
+ --upload (default) Upload to the PCTB server
+ --tsv Print data as clean tab-separated-values file
+ --raw-tsv Dump the raw (not deduped, unsorted) OCR'd data
+ --best-prices Print best buy and sell price for each commodity
+ --arbitrage Print arbitrage opportunities
+
+Privacy options, which control conversations with the dictionary server:
+ --dict-local-only * Do not talk to the server even to fetch new dictionary.
+ --dict-read-only * Only fetch new dictionary, do not submit new entries.
+ --dict-anon Don't quote pirate name if submitting entries.
+ --dict-submit Submit entries quoting my pirate name. (default)
+Please do not use options marked * with --upload. See README.privacy.
+
+Options to override which servers we talk to:
+ --pctb-server HOST|URL Talk to the PCTB server at HOST or URL.
+ --dict-submit-url URL Submit dictionary entries with HTTP POST under URL.
+ --dict-update-from SRC Fetch updated master dictionary with rsync from SRC.
+Or set the environment variables YPPSC_PCTB{_PCTB, _DICT_UPDATE, _DICT_SUBMIT}
+
+
+Installation requirements
+-------------------------
+
+This program has quite a few dependencies:
+ Package (Debian etch)
+
+ - For building, C compiler and build environment build-essential
+ - pnm library, including dev files for building libnetpbm10-dev
+ - pnm command line utilities for image manipulation netpbm
+ - X11 libraries, including dev files for building libx11-dev
+ - XTEST library, including dev files for building libxtst-dev
+ - Perl-compatible regexp library, including dev files libpcre3-dev
+ - Tk interpreter /usr/bin/wish tk8.4
+ - Perl module XML::Parser libxml-parser-perl
+ - Perl module JSON::Parser libjson-perl
+ - XTEST extension in the X server (part of X package)
+ - Perl interpreter and basic modules perl (usu.installed)
+
+On other Linux distros the packages may have different names, but
+these should be roughly right for Debian and its derivatives. You can
+install them with this rune:
+ sudo apt-get install build-essential libnetpbm10-dev netpbm libx11-dev libxtst-dev libpcre3-dev tk8.4 libxml-parser-perl libjson-perl
+
+
+The supplied helper programs
+ dictionary-manager
+ commod-results-processor
+ database-info-fetch
+must (currently) also be in the current working directory when you run
+the main ypp-commodities program.
+
+The data files (see README.files) are also left in the current working
+directory. There is notyet any feature to have the data files and
+helpers be somewhere else.
+
+
+Reporting problems
+------------------
+
+If you need to report a bug, for example an inability to recognise,
+please be sure to remember the exact error message and circumstances.
+Also, for recognition problems there will probably be a very useful
+screenshot file called `#pages#.pnm'. This is likely to be very large
+so don't just email it to me, but if you can put it up on a webpage
+for me to download that will help. At least keep a copy of it.
+
+If the problem is a failure to cope with some particular YPP client
+display and is reproducible, try running:
+ ./ypp-commodities --raw-tsv --single-page
+If this reproduces the problem, please email me the screenshot file
+#pages#.pnm, which will consist only of the single screen, plus the
+error messasge. I'll then be able to understand what's wrong,
+hopefully.
+
+
+Privacy
+-------
+
+The main purpose of this program is to connect to the PCTB server and
+upload data. It will do that if you run it with --upload.
+
+This program will also, by default, talk to the dictionary server I
+have set up: to download updated image dictionaries, and to upload new
+dictionary entries which you create with the PCTB client dictionary
+GUI. This feature is mentioned in and controllable in the GUI itself,
+so it won't happen without you knowing about it.
+
+The uploads will by default mention your ocean and pirate name; if you
+don't want that, pass the --dict-anon option, or untick the box in the
+GUI.
+
+See README.privacy for full details.
+
+
+ - Ian Jackson
+ ijackson@chiark.greenend.org.uk
+ Aristarchus on the Midnight ocean