Для переводчиков на b3d

Материал из Blender3D.

Перейти к: навигация, поиск

Как быстро загрузить все изображения для статьи?

Наверняка вы сталкивались с ситуацией, когда у вас есть 20 изображений для статьи и вам нужно все их загрузить на wiki. Загружать по одной трудоемко и долго. На каждое изображение уходит от 30 секунд до минуты. И ваши 20 картиновк превращаются в 15 - 20 минут монотонной работы.

Как этого избежать?

Для оформления перевода книги Essential Blender Дмитрием Поверт был сделан скрипт для массовой загрузки изображений на wiki.

Для запуска и использования скрипта вам понадобится:

  • Linux
  • curl
  • perl

media:mass_image_uploading_onto_wiki.zip

#!/usr/bin/perl
# made by Dmitry Povert
# povert<@>povert.org

# Нужно эти 4 переменные сконфигурировать ;)
my $LOGIN = 'ВАШ НИК НА WIKI';
my $PASSWORD = 'ВАШ ПАРОЛЬ НА WIKI';

# В этой папке должны лежать ТОЛЬКО файлы для загрузки!
my $IMAGES_DIR = '/home/gumanoed/tmp';
# Этот файлик можно потом будет удалить
my $COOKIE_SAVE_TO = '/home/gumanoed/tmp/mycookie.txt';
# Стандартное описание для всех картинок + я еще добавлю название файла в конце
my $STANDARD_DESCRIPTION = 'Illustracii dlya 3-i glavy Essential Blender';

########################################################

my $buf = ;
my $buf_esc = ;

# немного преобразуем...
$LOGIN =~ s|([^\w])|join('%', split(/([a-f\d][a-f\d])/, unpack("H2", $1)))|eg;
$PASSWORD =~ s|([^\w])|join('%', split(/([a-f\d][a-f\d])/, unpack("H2", $1)))|eg;
# логинимсо
print "LOGIN ATTEMPT...\n";
system("curl -c '$COOKIE_SAVE_TO' -d 'wpName=$LOGIN&wpPassword=$PASSWORD&wpRemember=1&wpLoginattempt=blabla' 'http://b3d.mezon.ru/index.php?title=\%D0\%A1\%D0\%BB\%D1\%83\%D0\%B6\%D0\%B5\%D0\%B1\%D0\%BD\%D0\%B0\%D1\%8F:Userlogin&returnto=\%D0\%A1\%D0\%BB\%D1\%83\%D0\%B6\%D0\%B5\%D0\%B1\%D0\%BD\%D0\%B0\%D1\%8F:Userlogin' > /dev/null");

# читаем все твои файлы и сразу их загружаем (может занять много времени) поэтому лучше попробовать сначала несколько файликов
print "LOGIN OK...\nREAD $IMAGES_DIR\n";
opendir(DQ, $IMAGES_DIR) or die "Can't open dir $IMAGES_DIR: $!\n";
while($buf = readdir(DQ)) {
  if($buf !~ /^\./) {
    print "UPLOADING $buf\n";
    $buf_esc = $buf;
    system("curl -b '$COOKIE_SAVE_TO' -F 'wpUploadFile=\@$IMAGES_DIR/$buf' -F 'wpDestFile=$buf' -F 'wpUploadDescription=$STANDARD_DESCRIPTION $buf' -F 'wpWatchthis=0' -F 'wpIgnoreWarning=0' -F 'wpUpload=ok' 'http://b3d.mezon.ru/index.php/\%D0\%A1\%D0\%BB\%D1\%83\%D0\%B6\%D0\%B5\%D0\%B1\%D0\%BD\%D0\%B0\%D1\%8F:Upload' > /dev/null");
  }
}
closedir DQ;
Личные инструменты