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
While it is capturing the screenshots, do not move the mouse or use
the keyboard. Keyboard focus must stay in the YPP client window.
-You will probably need to turn off `Use antialiased font' in the YPP
-client. This is in the Ye panel, Options, tab `General'.
Command-line options
--------------------
--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
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.
-
- * #master-newcommods#.txt #local-newcommods#.txt
-
- Dictionary of newly introduced commodities. When a new commodity
- appears in Puzzle Pirates, the PCTB server operators need to add it
- to their database for us to be able to upload data about it.
-
- It can sometimes take a few days to do this. In the meantime, it
- is possible to upload partial data - data just omitting that
- commodity. This is controlled by these files: they list
- commodities which should be automatically ignored if the PCTB
- server doesn't know about them. The master file is downloaded and
- updated automatically from my server. You may create the local
- file yourself. The format is simple: one commodity per line.
-
- Unrecognised commodities can also be due to OCR failure so
- double-check what you're doing before overriding the uploader by
- telling it to ignore an unrecognised commodity.
-
- * #master-char*#.txt #local-char*#.txt
- #master-pixmap#.txt #local-pixmap#.txt
-
- Character set and image dictionaries. For the semantics of the
- char* files README.charset. There is not currently any accurate
- documentation of this dictionary format.
-
- #master-*#.txt contain the centrally defined and approved data.
- They are downloaded automatically from the SC PCTB server and
- updated each run. You can safely delete this file, if everything
- is online, if you want to fetch a fresh copy.
-
- #local-*#.txt are a local copy of your submissions, so that they
- will be used by your client pending approval by me. You can delete
- this file if you think you may have made a mistake.
-
- See README.privacy for details of the communications with the SC
- server about the contents of these dictionaries.
-
- * #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.
-
- * #upload-1#.html #upload-2#.html
-
- We screenscrape the pages from the PCTB upload server. The actual
- HTML returned from the upload server is left in these dropping
- files for debugging etc.
-
- * <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
-------------------------
- 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