r3211: start RackTables contribs directory
authorDenis Ovsienko <infrastation@yandex.ru>
Sun, 6 Dec 2009 20:34:01 +0000 (20:34 +0000)
committerDenis Ovsienko <infrastation@yandex.ru>
Mon, 26 Mar 2012 10:11:33 +0000 (14:11 +0400)
XKCD-import.phps [new file with mode: 0644]

diff --git a/XKCD-import.phps b/XKCD-import.phps
new file mode 100644 (file)
index 0000000..98bf6cf
--- /dev/null
@@ -0,0 +1,40 @@
+<?php
+/*
+ * XKCD (xkcd.com) is a relatively popular webcomic, which is licensed under
+ * Creative Commons Attribution-NonCommercial 2.5 License. This script
+ * imports files with XKCD art into RackTables system. The files are taken
+ * from a local mirror of XKCD archive, if there is one.
+ *
+ * First, it is necessary to get the files themselves. It was possible
+ * earlier to do that with a straight wget pass:
+ * $ wget -r -A png http://imgs.xkcd.com/comics/
+ * However, after changes on the XKCD server more work is necessary:
+ * $ wget --mirror --level=2 --span-hosts --domains=xkcd.com,imgs.xkcd.com --accept=html,jpg,png http://xkcd.com/archive/
+ * There should be several hundred PNG and JPEG pictures in the imgs.xkcd.com/comics
+ * directory after that. (There are other XKCD ripping script available
+ * on the Internet.)
+ *
+ * Second, two variables below ($imgdir and $racktables_root) must be set
+ * according to local filesystem layout. After that the script can be
+ * executed from command-line (php XKCD-files.php) to import the files.
+ */
+exit;
+$imgdir = '/tmp/imgs.xkcd.com/comics';
+$racktables_root = '/var/www/vhosts/racktables.org/demo/trunk';
+
+$mimetype = array ('png' => 'image/png', 'jpg' => 'image/jpeg');
+chdir ($racktables_root);
+$script_mode = TRUE;
+include ('inc/init.php');
+
+foreach (array ('png', 'jpg') as $ext)
+       foreach (glob ("${imgdir}/*.${ext}") as $longname)
+       {
+               echo "${longname} : ";
+               $data = file_get_contents ($longname);
+               commitAddFile (basename ($longname), $mimetype[$ext], strlen ($data), $data, 'XKCD (http://xkcd.com/)'); 
+               echo "OK \n";
+       }
+
+?>