chiark / gitweb /
82301b20204a9d09bb7305ac726400aa5e30fab5
[ypp-sc-tools.main.git] / yarrg / README
1 YARRG - Yet Another Revenue Research Gatherer
2 =============================================
3
4 Overview
5 --------
6
7 This tool can:
8   - screenscrape the commodities trading screen
9   - produce the results as a tab separated values file
10   - upload the results to the YARRG and PCTB servers
11
12 To build, install the dependencies, cd to this directory and type `make'.
13
14 To screenscrape and upload to both servers, select `trade
15 commodities' from the hold of a vessel or building, and run:
16    ./ypp-commodities
17 Currently we upload to the dedicated yarrg server yarrg.chiark.net,
18 and also to pctb.ilk.org (the testing instance of the PCTB database,
19 pending approval from the operators of the main server).
20
21 Or, for example, for a tab-separated values dump:
22    ./ypp-commodities --tsv >commods.tsv
23
24 While it is capturing the screenshots, do not move the mouse or use
25 the keyboard.  Keyboard focus must stay in the YPP client window.
26 If you use Gnome or KDE you must raise the YPP client window so that
27 it is completely unobscured - the ypp-commodities program tries to do
28 this but metacity and kwin do not honour the request.
29
30
31 Command-line options
32 --------------------
33
34 Setting the operation mode:
35   --find-window-only       Just check that we can find the YPP client window.
36   --screenshot-only        Page through and take screenshots, do not OCR
37   --analyse-only | --same  Process previously taken screenshots
38   --everything (default)   Take screenshots and process them
39
40 Options to vary the processing:
41   --single-page         One screenful, no paging - results will be incomplete
42   --quiet               Suppress progress messages
43   --screenshot-file F   Store or read screenshots in F rather than _pages.ppm
44   --window-id ID        Specified X window is the YPP client - do not search
45   --edit-charset        Enable character set editing.  See README.dictionary.
46   --no-edit-charset     Do not edit charset even if _local-char*.txt exists.
47   --find-island         Find and print the ocean and island.  Suppresses OCR
48                          and output unless used with result processing option.
49   --test-servers        Set default servers to be the test servers, not
50                          the real live ones (doesn't affect explicit settings).
51
52 Controlling what happens to the results - only one at a time:
53   --upload (default) Upload to the YARRG and PCTB servers
54   --tsv              Print data as clean tab-separated-values file
55   --raw-tsv          Dump the raw (not deduped, unsorted) OCR'd data
56   --best-prices      Print best buy and sell price for each commodity
57   --arbitrage        Print arbitrage opportunities
58
59 Privacy options, which control conversations with the dictionary server:
60   --dict-local-only  *  Do not talk to the server even to fetch new dictionary.
61   --dict-read-only   *  Only fetch new dictionary, do not submit new entries.
62   --dict-anon           Don't quote pirate name if submitting entries.
63   --dict-submit         Submit entries quoting my pirate name.  (default)
64 Please do not use options marked * with --upload.  See README.privacy.
65
66 Options to override which servers we talk to:
67   --yarrg-server HOST|URL When uploading to YARRG, use HOST or URL.
68   --pctb-server HOST|URL  Talk to the PCTB database at HOST or URL.
69   --dict-submit-url URL   Submit dictionary entries with HTTP POST under URL.
70   --dict-update-from SRC  Fetch updated master dictionary with rsync from SRC.
71 Or set the environment variables YPPSC_YARRG{_PCTB, _DICT_UPDATE, _DICT_SUBMIT}
72
73
74 Installation requirements
75 -------------------------
76
77 Your X server must be 24bpp (or better).
78
79 This program has quite a few dependencies:
80                                                         Package (Debian etch)
81
82  - For building, C compiler and build environment       build-essential
83  - pnm library, including dev files for building        libnetpbm10-dev
84  - pnm command line utilities for image manipulation    netpbm
85  - X11 libraries, including dev files for building      libx11-dev
86  - XTEST library, including dev files for building      libxtst-dev
87  - Perl-compatible regexp library, including dev files  libpcre3-dev
88  - Tk interpreter /usr/bin/wish                         tk8.4
89  - Perl module XML::Parser                              libxml-parser-perl
90  - Perl module JSON::Parser                             libjson-perl
91  - XTEST extension in the X server                      (part of X package)
92  - Perl interpreter and basic modules                   perl (usu.installed)
93
94 On other Linux distros the packages may have different names, but
95 these should be roughly right for Debian and its derivatives.  You can
96 install them with this rune:
97   sudo apt-get install build-essential libnetpbm10-dev netpbm libx11-dev libxtst-dev libpcre3-dev tk8.4 libxml-parser-perl libjson-perl
98
99
100 The supplied helper programs
101   dictionary-manager
102   commod-results-processor
103   database-info-fetch
104 must (currently) also be in the current working directory when you run
105 the main ypp-commodities program.
106
107 The data files (see README.files) are also left in the current working
108 directory.  There is notyet any feature to have the data files and
109 helpers be somewhere else.
110
111
112 Reporting problems
113 ------------------
114
115 If you need to report a bug, for example an inability to recognise,
116 please be sure to remember the exact error message and circumstances.
117 Also, for recognition problems there will probably be a very useful
118 screenshot file called `_pages.ppm'.  This is likely to be very large
119 so don't just email it to me, but if you can put it up on a webpage
120 for me to download that will help.  At least keep a copy of it.
121
122 If the problem is a failure to cope with some particular YPP client
123 display and is reproducible, try running:
124    ./ypp-commodities --raw-tsv --single-page
125 If this reproduces the problem, please email me the screenshot file
126 _pages.ppm, which will consist only of the single screen, plus the
127 error messasge.  I'll then be able to understand what's wrong,
128 hopefully.
129
130
131 Privacy
132 -------
133
134 The main purpose of this program is to connect to the YARRG and PCTB
135 servers and upload data.  It will do that if you run it with --upload.
136
137 This program will also, by default, talk to the dictionary server I
138 have set up: to download updated image dictionaries, and to upload new
139 dictionary entries which you create with the yarrg client dictionary
140 GUI.  This feature is mentioned in and controllable in the GUI itself,
141 so it won't happen without you knowing about it.
142
143 The uploads will by default mention your ocean and pirate name; if you
144 don't want that, pass the --dict-anon option, or untick the box in the
145 GUI.
146
147 See README.privacy for full details.
148
149
150 Authorship and copyright
151 ------------------------
152
153 The PCTB server is a project of Joel Lord and various others.
154
155 The YARRG server was inspired by PCTB and is a project of the crew
156 Special Circumstances (on the Midnight Ocean) and of the Sinister
157 Greenend Organisation.
158
159
160 This yarrg screenscraper and upload client was written entirely from
161 scratch by me, Ian Jackson, with assistance from Stephen Early.  It is
162 part of ypp-sc-tools, a set of third-party tools for assisting players
163 of Yohoho Puzzle Pirates.
164
165 ypp-sc-tools is
166 Copyright (C) 2009 Ian Jackson <ijackson@chiark.greenend.org.uk>
167 Copyright (C) 2009 Stephen Early
168
169 This program is free software: you can redistribute it and/or modify
170 it under the terms of the GNU General Public License as published by
171 the Free Software Foundation, either version 3 of the License, or
172 (at your option) any later version.
173
174 This program is distributed in the hope that it will be useful,
175 but WITHOUT ANY WARRANTY; without even the implied warranty of
176 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
177 GNU General Public License for more details.
178
179 You should have received a copy of the GNU General Public License
180 along with this program.  If not, see <http://www.gnu.org/licenses/>.
181
182 Yohoho and Puzzle Pirates are probably trademarks of Three Rings and
183 are used without permission.  This program is not endorsed or
184 sponsored by Three Rings.
185
186
187 The character and UI images copied from the YPP client, and submitted
188 to stored and shared by the YPP SC YARRG dictionary server, are those
189 provided by Three Rings as part of the YPP client and by your Java
190 installation.  I regard the current use of these images in this way as
191 Fair Dealing (in the UK) or Fair Use (in the USA).
192
193 These images do not form part of the ypp-sc-tools distribution,
194 although the ypp-sc-tools yarrg client does download them automatically
195 from my dictionary server when run in the most ordinary way.
196
197
198  - Ian Jackson
199    ijackson@chiark.greenend.org.uk
200    Aristarchus on the Midnight ocean