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.
+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
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
--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:
+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
Or set the environment variables YPPSC_PCTB{_PCTB, _DICT_UPDATE, _DICT_SUBMIT}
-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 dictionary. For the semantics of the contents of this
- file see README.charset. There is not currently any accurate
- documentation of this dictionary 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 dictionary
- 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
- dictionary-manager
- commod-results-processor
-must (currently) also be in the current directory.
-
-Future versions may have more helpers and more data files.
-
-
Installation requirements
-------------------------
+Your X server must be 24bpp (or better).
+
This program has quite a few dependencies:
Package (Debian etch)
- 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
- 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
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.
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.
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/>.
+
+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.
+
+
+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).
+
+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
ijackson@chiark.greenend.org.uk