Далеко не каждому приходится работать с огромным количеством файлов, но когда приходится, это может обернуться той ещё головной болью. В этом блоге я собрала все известные мне способы загрузки, переименования, удаления и некоторых других действий с файлами. В основном речь будет идти про изображения, как наиболее актуальный тип файлов, но большая часть советов применима и к любым другим файлам, которые вы вообще можете загрузить.
Перед тем как приступать к любым действиям с большим количеством файлов, обязательно убедитесь в двух вещах:
- Вы используете аккаунт бота. Создайте отдельный аккаунт, пометьте его как аккаунт бота и запросите статус в тех. поддержке. Статус бота по умолчанию скрывает правки, сделанные этим аккаунтом, из свежих правок, модуля вики-деятельности и многих скриптов. Если убрать соответствующую галочку в свежих правках эти правки всё равно будут отображены, и взаимодействовать с ними можно также, как и с любыми другими, не беспокойтесь.
- Вы точно понимаете что делаете. Если вы рассеянный человек и/или у вас нет опыта, будьте внимательны. Выпишите по пунктам что и как вы хотите сделать в блокнот. Отвлекитесь. Посмотрите на это ещё раз и убедитесь что это действительно именно то, что и как вы хотите сделать. Откатить можно практически какие угодно правки, но в некоторых случаях это может быть очень нудным занятием даже при наличии бота.
Загрузка[]
Редактор 2010[]
Это просто альтернативный редактор исходного кода, включающийся в настройках. Интерфейс загрузки простейший: перетаскиваете файлы из папки на компьютере в поле «Перетащите файлы сюда» (кто бы мог подумать).
- Из плюсов: позволяет переименовать файл перед загрузкой, кликнув на него мышкой, показывает небольшие превью файла и возможного дубликата (с похожим названием) перед загрузкой, после загрузки можно сразу вставить в виде отдельных файлов либо галереей.
- Из минусов: не позволяет дать описание загружаемым файлам, может забить весь экран и больше если файлов очень много.
В целом этот способ подходит для более «повседневного» использования. Например, если вы наделали с десяток скриншотов и хотите поместить их на конкретную страницу, и вам не принципиально проставить категории/лицензии сразу.
Скрипты[]
На Dev Wiki есть довольно много скриптов для массовой работы с файлами. Если хотите, вы можете посмотреть весь список сами, но здесь я разберу все доступные на момент написания варианты.
- Добавляет возможность выбрать и загрузить более одного файла на служебной странице загрузки. Как и при обычной загрузке одного файла, можно выбрать лицензию и добавить описание, например, с категорией, которое прицепится ко всем файлам сразу. Разрешён для локального использования, хотя я бы не стала его туда добавлять.
- В отличие от предыдущего скрипта, здесь для каждого файла описание и лицензия заполняются отдельно. Преимущество это или недостаток — зависит от ситуации и ваших потребностей. В остальном ведёт себя точно также, как и предыдущий, с которым, к слову, он очевидным образом не совместим.
- Отдельная программа для загрузки файлов с расширенным функционалом. Может загружать содержимое папок и подпапок (или не загружать), файлы только конкретного формата (включая не изображения), добавлять описания (категории и лицензии) к загружаемым файлам, выбирать комментарий при загрузке, переименовывать файлы перед загрузкой, выставлять задержку между загрузкой в миллисекундах, убирать файлы из списка к загрузке, сохранять списки файлов к загрузке… много чего, в общем. Единственное, что не поддерживает — русский язык, но там не так много кнопок и какой-нибудь переводчик картинок от того же Яндекса или Google справится.
- Обратите внимание, что она требует использовать пароль бота. Вам нужно будет зайти на соответствующую служебную и создать пароль бота. В программе вам нужно будет ввести в поле логин никнейм аккаунта, с которого вы собрались загружать, а в поле пароль второй вариант пароля для старых ботов.
- …Довольно редкий случай, но тем не менее — скрипт для массовой загрузки видео с YouTube тоже есть. Сказать про него особо нечего, впрочем. Просто вставляете список ссылок, каждая с новой строки.
Переименование в системе[]
Сразу оговорюсь, что информация здесь актуальна только для Windows, начиная где-то с Windows 7 — с другими системами у меня просто нет опыта.
Итак, способа всего два. Первый — самый простой, стандартный системный метод. Открываете нужную папку с файлами. Левой кнопкой мыши выделяете первый файл, затем листаете до последнего нужного, и, зажав Shift
, выбираете таким образом оба файла и все между ними. Если какие-то файлы из этого промежутка вам не нужны, зажмите Ctrl
и нажмите на них. Далее выберите файл, с которого вы хотите начать нумерацию и переименуйте его обычным способом. Все файлы приобретут название вида Ваше название (X).png
. Нумерация начинается с единицы и распространяется на все файлы одного формата (.jpg
и .png
файлы будут нумероваться отдельно).
Второй способ — использование сторонних программ. К этому имеет смысл прибегать, если вам нужно переименовать множество файлов по какому-то сложному шаблону или заменить какое-либо слово в их названиях. При поиске программ обращайте внимание на то, позволяют ли они использовать регулярные выражения (они же RegExp), под какой лицензией выпускаются и кем. Лично я предпочитаю AdvancedRenamer, так как это freeware и существует уже далеко не десятый год, но в целом — лучше изучить и выбрать самому. Внимательно смотрите, что и откуда вы ставите на свой компьютер.
Удаление[]
Есть два случая, когда вам может понадобиться удалить множество файлов: вандализм и просто неиспользуемые файлы. Стоит также отметить скрипт, выводящий список изображений-дубликатов, хотя он далеко не всегда необходим.
В случае вандализма есть два варианта. Если файлы загружены одним или несколькими аккаунтами, я рекомендую просто использовать WHAM или Nuke. Если множество файлов были загружены со множества разных аккаунтов, воспользуйтесь скриптом для получения списка файлов и удалите их любым удобным способом.
Неиспользуемые файлы хранятся на соответствующей служебной. В целом их наличие вики почти никак не вредит — максимум может усложнить поиск и навигацию, но многие всё же предпочитают их удалять. Обратите внимание, что некоторые файлы, используемые в интерфейсе, ошибочно помечаются как «неиспользуемые». Я советую добавить список ниже на какую-нибудь страницу в виде галереи и подождать около суток, чтобы кеш страницы неиспользуемых файлов обновился и они были убраны оттуда.
<gallery widths="50px" spacing="small"> Site-favicon.ico Site-background-light Site-background-dark Файл:Site-logo.png Badge-edit-0.png Badge-edit-1.png Badge-edit-2.png Badge-edit-3.png Badge-edit-4.png Badge-edit-5.png Badge-edit-6.png Badge-edit-7.png Badge-picture-0.png Badge-picture-1.png Badge-picture-2.png Badge-picture-3.png Badge-picture-4.png Badge-picture-5.png Badge-picture-6.png Badge-picture-7.png Badge-category-0.png Badge-category-1.png Badge-category-2.png Badge-category-3.png Badge-category-4.png Badge-category-5.png Badge-category-6.png Badge-blogpost-0.png Badge-blogcomment-0.png Badge-blogcomment-1.png Badge-love-0.png Badge-love-1.png Badge-love-2.png Badge-love-3.png Badge-love-4.png Badge-love-5.png Badge-love-6.png Badge-welcome.png Badge-introduction.png Badge-sayhi.png Badge-creator.png Badge-pounce.png Badge-caffeinated.png Badge-luckyedit.png </gallery> |
Всего есть два основных способа массового удаления: скриптом и ботом соответственно. Для обоих вам понадобится отформатированный список; о том, как его получить я поговорю в отдельном разделе. Скрипт — AjaxBatchDelete, подключается в ваш личный JS и открывается через панель инструментов (в правом нижнем углу). Бот — скрипт delete.py к PyWikiBot. Из-за особенностей использования самого PyWikiBot этот способ немного сложнее, но позволяет использовать немного больше настроек если это необходимо. В обоих случаях есть также аналоги для восстановления файлов.
Если вам нужно удалить какие-либо файлы из статьи или шаблона, я рекомендую использовать регулярные выражения. Их можно использовать в обоих ботах (PyWikiBot и AutoWikiBrowser), а также редакторе исходного кода. Протестировать их можно на специальных сайтах; при составлении выражения учтите, что файлы могут быть в галерее, иметь или не иметь префикс Файл:
на английском и других языках, а также могут быть расположены отдельно (не в галерее), но иметь дополнительные параметры. Для удаления заданной вами конструкции просто оставьте поле для замены пустым.
Переименование[]
Как и в случае удаления, для переименования есть скрипт (но, похоже, нет отдельного модуля для PyWikiBot). Принцип работы абсолютно тот же; точную инструкцию по их использованию расписывать здесь нет смысла, лучше ознакомьтесь с их документацией сами.
В случае переименования, однако, возникает отдельная проблема — формирование, собственно, списка для переименования. За всё своё время использования я пришла к следующему методу:
- Сформировать изначальный список файлов, которые нужно переименовать, временно сохранить его куда-нибудь;
- Обработать его любым подходящим в конкретной ситуации способом, получив таким образом список новых названий;
- Создать пустую таблицу в Google Sheets (или любой аналогичной программе), вставив в левый столбец старые названия, а в правый новые;
- Выделить и скопировать содержимое обоих столбцов одновременно, вставить их в любой текстовый редактор и провести замену символа табуляции на пробел.
Также, здесь стоит упомянуть про то, что регулярные выражения по сути предназначены именно для этого, особенно функция подстановки строк. Я не хочу углубляться в тему их использования — на эту тему в интернете написано уже бесчисленное количество гайдов, но не упомянуть из существование я не могла. Не могу также не упомянуть про скрипт, заменяющий названия файлов при их переименовании.
Категоризация[]
В данном случае у нас есть аж три варианта, как, собственно, категоризировать файлы: скрипт, модуль PyWikiBot и AutoWikiBrowser. Опять же, расписывать конкретные инструкции я здесь не хочу, это и так уже объяснено в документации и, вероятно, лучше, чем смогла бы я.
Список формируется также, как и в случае удаляемых файлов. Другой вопрос — откуда вы будете его брать. На самом деле, это одна из тех задач, которую чаще всего выполняют вручную, но я могу предложить два способа получения большого количества файлов одновременно: во-первых, собственно, служебная со списком некатегоризированных файлов, а во-вторых — получение списка файлов с конкретной страницы. С первым, я думаю, всё и так понятно, а вот со вторым всё куда интереснее. Скрипт ListFiles, насколько мне известно, не поддерживает получение списка файлов с отдельной страницы, но это можно сделать как минимум двумя способами: через AutoWikiBrowser либо API-запросом. Первое, естественно, потребует установленного и запущенного бота, второе — немного покопаться на специальной служебной. Так как ни то, ни другое, кажется, нигде толком не описано, приведу краткие инструкции к обоим методам.
- AutoWikiBrowser. Тут всё просто: запускаете самого бота, в
Make list - Source
выбираетеFiles on page
и вводите название нужной страницы. После этого список файлов можно будет выделить и скопировать. Если вы создаёте список с нескольких страниц, вы можете удалить дубликаты и выполнить ещё несколько действий нажав кнопкуFilter
. - API-запрос. На самом деле, это тоже не так сложно, как может показаться. Перейдите на страницу Special:ApiSandbox. В выпадающем меню
Action
выберитеParse
. В менюFormat
выберите XML (его потом будет проще всего привести в нужный вид). На панели слева перейдите во вкладкуaction=parse
. Найдите полеPage
и введите название нужной страницы. Пролистайте до менюProp
, поставьте галочку и уберите всё, кромеimages
. Пролистайте наверх и нажмите кнопку «Сделать запрос». Если всё выполнено правильно, вы получите список файлов в формате XML. Вам придётся немного почистить его от лишних элементов, но с поиском и заменой это делается буквально за минуту.
Ещё несколько советов[]
- Массовое скачивание файлов
- Если вам нужно загрузить все файлы с одной вики, у вас есть как минимум два варианта: использовать модуль PyWikiBot либо запросить общее хранилище. К сожалению, я не имею возможности протестировать работоспособность того модуля PWB конкретно на Фэндоме, но по идее он должен работать. Общее хранилище подключается по запросу в техническую поддержку; вики может быть «привязана» только к одной родительской, но при этом быть «родителем» для нескольких сразу.
- Если вам нужно загрузить все файлы с конкретной страницы, к сожалению, тут помогут только расширения для браузера. Я не хочу советовать здесь какое-то конкретное; они имеют свойство устаревать, ломаться и превращаться в невесть что, но тем не менее, они есть. На момент написания все расширения имеют +- одинаковый функционал и находятся в магазине расширений Chrome по запросу Image Downloader.
- Основной недостаток таких расширений - они загружают картинку ровно в том разрешении, в котором она размещена на странице. Чтобы скачать картинки в их оригинальном разрешении, получите список изображений с нужной страницы, как описано выше, и вставьте его в черновик как кучу отдельных файлов без заданного размера (здесь может сильно пригодится Lineeditor или регулярные выражения).
- Ещё пара слов про форматирование
- Три столпа форматирования списков файлов: поиск и замена, регулярные выражения и онлайн-обработчики текста. Первые два позволяют вам, очевидно, заменять и удалять текст, а вот с третьим уже гораздо интереснее. Основные функции, которыми я регулярно пользуюсь и которые считаю необходимыми: удаление дубликатов строк/фраз/слов, добавление текста справа и слева соответственно, удаление всех символов кроме букв/определённых символов. Конкретно эти функции довольно нудно изобретать каждый раз самому, поэтому я лично я использую отдельные сайты вроде Lineeditor.
- Дополнительные полезные ссылки
- Модули upload.py и checkimages.py для PWB;
- Special:UncategorizedFiles, Special:UnusedFiles, Special:WantedFiles, Special:ListDuplicatedFiles и, конечно, Special:NewFiles, если кто-то забыл про её существование.