chiark / gitweb /
When setting focus on commodities, always use top left corner of table
[ypp-sc-tools.db-test.git] / pctb / README
index 0d83e3931428540292911fe1b4f6b4fa4807d125..8379208a4e7319ef1e0c7481c8c4751405040439 100644 (file)
@@ -4,19 +4,24 @@ Overview
 This tool can:
   - screenscrape the commodities trading screen
   - produce the results as a tab separated values file
 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 --tsv >commods.tsv
+To build, install the dependencies, cd to this directory and type `make'.
+
+To screenscrape and upload to the PCTB server, select `trade
+commodities' from the hold of a vessel or building, and run:
+   ./ypp-commodities
+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
 
 While it is capturing the screenshots, do not move the mouse or use
 the keyboard.  Keyboard focus must stay in the YPP client window.
 
 While it is capturing the screenshots, do not move the mouse or use
 the keyboard.  Keyboard focus must stay in the YPP client window.
-
-*IMPORTANT*
-It may put up a window asking about characters it does not understand.
-It is important to get these inputs right or your client may
-misrecognise text in future.  You *must* read the documentation in
-README.charset before answering these questions.
+If you use Gnome or KDE you must raise the YPP client window so that
+it is completely unobscured - the ypp-commodities program tries to do
+this but metacity and kwin do not honour the request.
 
 
 Command-line options
 
 
 Command-line options
@@ -31,71 +36,41 @@ Setting the operation mode:
 Options to vary the processing:
   --single-page         One screenful, no paging - results will be incomplete
   --quiet               Suppress progress messages
 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
+  --screenshot-file F   Store or read screenshots in F rather than _pages.ppm
   --window-id ID        Specified X window is the YPP client - do not search
   --window-id ID        Specified X window is the YPP client - do not search
-
-Controlling what happens to the results:
+  --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
 
   --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.
 
 
-Files we use and update
------------------------
-
-The program reads and writes the following files:
-
- * #pages#.pnm
-
-   Contains one or more images (as raw ppms, end-to-end) which are the
-   screenshots taken in the last run.  This is (over)written whenever
-   we take screenshots from the YPP client.  You can reprocess an
-   existing set of screenshots with the --same (aka --analyse-only)
-   option; in that case we just read the screenshots file.
-
-   You can specify a different file with --screenshot-file.
-
-   If you want to display the contents of this file, `display' can do
-   it.  Don't try `display vid:#pages#.pnm' as this will consume
-   truly stupendous quantities of RAM - it wedged my laptop.
-
- * charset-15.txt
-
-   Character set database.  For the semantics of the contents of this
-   file see README.charset.  There is not currently any accurate
-   documentation of this database format.
-
-   If you delete this file you'll have to re-enter a lot of glyph data
-   (and probably get it wrong and make the program misrecognise
-   things).  If you want to undo any mistakes you may have made
-   answering OCR questions you can safely revert this to the version
-   I've supplied.
-
- * #commodmap#.tsv
-
-   Map from commodity names to the numbers required by the PCTB
-   server.  This is fetched and updated automatically as necessary.
-   It can safely be deleted as it will then be refetched.
-
- * <file>.new
-
-   When any of these tools overwrite one of the persistent database
-   files, they temporarily write to <file>.new.
-
-These files are all in the current working directory.  There is not
-yet any feature to have them be somewhere else.  The helper programs
-  yppsc-ocr-resolver
-  yppsc-commod-processor
-must (currently) also be in the current directory.
-
-Future versions may have more helpers and more data files.
+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
 -------------------------
 
 
 
 Installation requirements
 -------------------------
 
+Your X server must be 24bpp (or better).
+
 This program has quite a few dependencies:
                                                        Package (Debian etch)
 
 This program has quite a few dependencies:
                                                        Package (Debian etch)
 
@@ -104,6 +79,7 @@ This program has quite a few dependencies:
  - 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
  - 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
  - Tk interpreter /usr/bin/wish                                tk8.4
  - Perl module XML::Parser                             libxml-parser-perl
  - Perl module JSON::Parser                            libjson-perl
@@ -111,7 +87,21 @@ This program has quite a few dependencies:
  - Perl interpreter and basic modules                  perl (usu.installed)
 
 On other Linux distros the packages may have different names, but
  - 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.
+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
 
 
 Reporting problems
@@ -120,7 +110,7 @@ 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
 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
+screenshot file called `_pages.ppm'.  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.
 
 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.
 
@@ -128,32 +118,70 @@ 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
 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
+_pages.ppm, which will consist only of the single screen, plus the
 error messasge.  I'll then be able to understand what's wrong,
 hopefully.
 
 
 error messasge.  I'll then be able to understand what's wrong,
 hopefully.
 
 
-Phoning home - privacy
-----------------------
+Privacy
+-------
 
 The main purpose of this program is to connect to the PCTB server and
 
 The main purpose of this program is to connect to the PCTB server and
-upload data.  The program does not currently phone home at all in
-modes other than --upload, and when it does it connects to the
-PCTB server not to a system of mine.
+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.
+
+
+Authorship and copyright
+------------------------
+
+The PCTB server itself is a project of Joel Lord and various others.
+
+
+However, this screenscraper and upload client was written entirely
+from scratch by me, Ian Jackson.  It is part of ypp-sc-tools, a set of
+third-party tools for assisting players of Yohoho Puzzle Pirates.
+
+ypp-sc-tools is
+Copyright (C) 2009 Ian Jackson <ijackson@chiark.greenend.org.uk>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 
-However, there are some improvements which I may introduce in the
-future which may change this.  I am considering:
+Yohoho and Puzzle Pirates are probably trademarks of Three Rings and
+are used without permission.  This program is not endorsed or
+sponsored by Three Rings.
 
 
- * Having the ocr character resolver talk to a server run by me
-   to look for missing glpyhs, and/or upload those glyphs back
-   to that server so that they can be shared.
 
 
- * Having the upload client upload a copy of the data to a server run
-   by me, when run in --upload mode.
+The character and UI images copied from the YPP client, and submitted
+to stored and shared by the YPP SC PCTB dictionary server, are those
+provided by Three Rings as part of the YPP client and by your Java
+installation.  I regard the current use of these images in this way as
+Fair Dealing (in the UK) or Fair Use (in the USA).
 
 
-If I do do this these new functions may be enabled by default, but it
-will be possible to turn them off, or direct them to different
-servers, with command-line options, and they will be documented here.
+These images do not form part of the ypp-sc-tools distribution,
+although the ypp-sc-tools pctb client does download them automatically
+from my dictionary server when run in the most ordinary way.
 
 
  - Ian Jackson
 
 
  - Ian Jackson