воскресенье, 13 февраля 2011 г.

Го и быдлокодство

В прошлом посте быдлокодства я писал про го. Но вот не задача, я создавал задания в виде №_(сила игрока текстом).sgf (если мне не изменяет память), а вот не понравилось мне. Надо конечно было "сила игрока цифрей(номер задача).sgf" Причем с конвертом цифер 0-9 в 00[0-9], ну и далее в том же духе. Но второй раз лазить за 7k задач на сервер, меня не прельстило и решил поменять, что уже спи...посмотрел на сайте.
Будет у нас 1 dan(12345).sgf. Это будет гораздо удобнее. Т.к. у нас больше 7k задач, то облегчим себе жизнь nodejs'ом
А вот и код

var fs = require('fs'),
sys = require('sys');
// Где лежат файлы
var sgf_dir = '/home/icegreg/sgf/goproblems/';
// Прочитаем директорию, список файлов в массиве files
fs.readdir(sgf_dir, function(err, files){
// Как он выглядит
var re = /(\d+)\_\((.*)\)/;
for (i=0;i<files.length;i++) {
var mt = files[i].match(re);
// Переименуем
fs.rename(sgf_dir+files[i], sgf_dir+mt[2]+'_'+mt[1]+'.sgf');
}
});

Вроде простенько и со вкусом(ну не ручками, и за 10 минут, с чайком), а польза для меня есть.
P.S.: Да, и если кому интересно го, могу помочь с освоением.

Teleport pro and linux

Для тех, кто глубоко засел в танк, могу сказать, что есть такая бякость в линухах различных сортов и полов, как wget. И телепорт про тут в ель не впился.
Для грабежа инфы с сайта, я обычно использую

wget -m -k -nv -np ya.ru

-m зеркалирование всего и вся
-k сконвертировать ссылки на локальные файлы
-nv немного отключить срач
-np не ходить по другим ссылкам выше основного родителя ya.ru/vasja не будет качать ya.ru, ну и не будет ходить на google.com если таковой найдется. В противном случае -m будет качать до конца интернета :)

В общем спасибо пользователю sledopit, который в комментарии на хабре дал вот что:

wget -m -k -nv -np -p --user-agent=«Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)» bbc.co.uk

Всё тоже самое, только вот user-agent другой (от имени кого будет запрос). Будем гуглоботом :)

P.S.: вполне давно и с хорошим успехом так граблю инфу.
P.P.S.: и да, не поленитесь читать man wget