If you want to run your own copy of the ЯOЯЯIM TTO, you can, because I made it available. Follow these instructions to download and setup your own ЯOЯЯIM TTO.
This is about version 1, iteration 1.
cgi.h
from "extern }
" to "}
"something.example.com/ott
"
This and earlier versions can also be downloaded from svn://bicyclesonthemoon.info/ottmirror.
Use "e" for read-only access.
If you want the source as it is right now, get it from http://1190.bicyclesonthemoon.info/ott/src/.
Go to where you downloaded the source. Open re.awk
. At hte top of
the file there are some paths defined. You'll have to change some of these. They
have to be double-escaped. The directories should not end with a
"/
".
wgetpath
to point to wget. Set mawkpath
to
point to mawk.propath
to point there.tmppath
to point there.mempath
to point there. Create a file named "name
"
there. Put your URL-encoded xkcd fora login in the first line and your
URL-encoded password in the second line. Only you should have read access to the
file.mlist
mpost
mpost/fail
mpost/ok
mpost/pm
mpost
. Passwords can be found
there.logpath
to point there.
mirrpath
to point at the directory where the mirror is
hosted. That's where you put the contents of ott.zip
useragent2
is used by bothasar_t, the
mirror bot. useragent3
is used by bothasar_p, the post bot.own_image_regexp
to match the URL where the images are
archived. The URL should be something like
"something.example.com/ott/image/
".own_url_encoded
to your URL-encoded mirror URL.makefile
.
propath
points to.
Unless it's the same directory.mirrpath
points to. You may want to edit the
following files:
np/top
- the newpage top.np/end
- the newpage bottom.top
- the indexpage top.end
- the indexpage bottom.post.htm
- the post page.info.htm
- the information page.update.htm
- the update page.###this
. Don't change them. The programs will
place their content there.You have to set up server so that some URLs will link to some CGI programs.
/ott/log
" should link to "logpath
"./ott/view
" should link to "propath/view
"./ott/mview
" should link to "propath/mview
"./ott/update
" should link to "propath/update
"./ott/index
" should link to "propath/index
"./ott/post
" should link to "propath/post
"./ott
" should link to "propath/index
".That's how I did it in apache2:
Alias /ott/log /eizm/log/ottmirror
<Directory "/eizm/log/ottmirror">
Options Indexes
Order allow,deny
Allow from all
</Directory>
ScriptAlias /ott/view /eizm/pro/ottmirror/view
ScriptAlias /ott/mview /eizm/pro/ottmirror/mview
ScriptAlias /ott/update /eizm/pro/ottmirror/update
ScriptAlias /ott/index /eizm/pro/ottmirror/index
ScriptAlias /ott/post /eizm/pro/ottmirror/post
ScriptAliasMatch ^/ott/?$ /eizm/pro/ottmirror/index
bot2 (bothasar_t) is the thread archiving bot.
-i
- the bot IDupdate.1.cpp
.-o
- offset from the prievious page-m
- maximal number of pages in one run-p
- distance from the last page-s
- start position override-w
- wait between pages-v
- wait after download-d
- download avatars-a
- download attachments-b
- download images-t
- stdout-n
- new log-r
- stay in presentbot3 (bothasar_p) is the post bot.
-w
- wait between posts-t
- stdout-n
- new logThe bots won't run on themselves. They need something that will start them at
regular time intervals. I will share my crontab
configuration.
20,50 * * * * /eizm/pro/ottmirror/bot2 -i2 -r -o1 -m5 -w9 -v5 -d -a
This bot runs every 30 minutes and updates the pages with new posts.
26 23 * * * /eizm/pro/ottmirror/bot2 -i3 -r -o5 -m10 -p2 -w9 -v5 -d -a -b
This bots runs every day and reloads the pages with new posts and 4 previous
pages except the two last pages. Because there could be a delurker or someone
could make edits which we don't want to miss.
23 * * * * /eizm/pro/ottmirror/bot2 -i1 -o0 -m3 -p2 -w9 -v5 -d -a -b
This bot runs every hour and goes slowly through the whole thread except the two
latest pages. Because there can be temporal edits. (like the 1300 and 1800
repositories).
While the thread being catched up for the first time I'd recommend running only
one copy of the bot at a faster rate than this.
7,27,47 * * * * /eizm/pro/ottmirror/bot3 -w15
This bot runs every
20 minutes and looks for new posts to be sent to the thread.
0 0 * * 1 /bin/mv /eizm/log/ottmirror/bot2.log.1 /eizm/log/ottmirror/bot2.log.1.lastweek
0 0 * * 1 /bin/mv /eizm/log/ottmirror/bot2.log.2 /eizm/log/ottmirror/bot2.log.2.lastweek
0 0 * * 1 /bin/mv /eizm/log/ottmirror/bot2.log.3 /eizm/log/ottmirror/bot2.log.3.lastweek
0 0 * * 1 /bin/mv /eizm/log/ottmirror/bot3.log /eizm/log/ottmirror/bot3.log.lastweek
This moves the log files once in a week. Otherwise they would grow to infinity.
The code (in pro.zip) is written by me, Balthasar Szczepański and is released under the AGPL 3license since version 1, iteration 0. v.1, i.0 doesn't have any license defined.
The resources in ott.zip contain HTML, CSS, Javascript and images from phpBB which is released under the GPL 2 license.
If you managed to do everything described here you should have your own ЯOЯЯIM
TTO. Now wait for it until it catches the whole thread.
(Unless I forgot about something important here. Let me know if I did)
Balthasar