Архив рубрики: Кодинг

Автоматическая проверка готовности загранпаспорта

Гос. органы идут в массы, постоянно вводят новые, удобные для граждан (по крайней мере на первый взгляд), формы взаимодействия.
К такому нововведению можно отнести и сервис проверки готовности загран. паспорта на сайте УФМС, расположенный по адресу http://www.ufms.spb.ru/checkzp.php. С помощью сервиса можно быстро узнать, готов ли загран. паспорт или еще находится в процессе оформления, введя в поля формы данные своего гражданского паспорта (также доступна проверка по данным из свидетельства о рождении).

Всё в принципе хорошо и удобно кроме одной мелочи — чтобы воспользоваться проверкой готовности — нужно периодически вспоминать о ней и заходить на сайт. По-моему, приделай УФМС автоматическое оповещение о готовности паспорта по электронной почте — сервис выглядел бы законченным и действительно удобным в использовании.

Но раз УФМС не идет на встречу гражданину, значит гражданин должен сам облегчить себе жизнь. Я решил сделать это используя три простых и доступных инструмента: консольный браузер lynx (для отправки данных формы POST-запросом), планировщик заданий cron (для периодической проверки готовности загран. паспорта) и утилиту поиска по тексту grep (для поиска нужной строки в дампе страницы), для чего написал простенький скрипт, который закинул в cron. Скрипт с указанным в кроне периодом проверяет готовность моего паспорта и присылает мне отчет на электронную почту (которая указана в настройках крона).

#!/bin/sh
echo "checkser=p&seriap=XXXX&numberp=YYYYYY&submit=%CF%F0%EE%E2%E5%F0%E8%F2%FC" | lynx -post_data -dump http://www.ufms.spb.ru:80/checkzp.php | grep 'Ваш заграничный'

Вместо ХХХХ нужно подставить серию своего гражданского паспорта (макс. 7 символов, что, как я понимаю, позволяет использовать серии старых паспортов, с римскими цифрами), а YYYYYY заменить соотв. на его номер (макс. 6 символов). Если запускать скрипт из-под английской локали, то шаблон для grep надо изменить с ‘Ваш заграничный’ на ‘Vash zagranichnyj’, поскольку скрипт отдаст страницу в латинице.

При желании естественно можно прописать переменные отдельно и даже сделать проверку на локаль, но на мой взгляд это будет уже избыточно для решения такой простой задачи.

Дополнение:
Если сайт проверки готовности загранника постоянно «радует» сообщением о превышении числа запросов, можно пропустить их через tor. В этом случае удобно будет воспользоваться другим способом отправки форм POST-методом из lynx — записать автоматический скрипт, который и будет осуществлять проверку.

Посутпаем следующим образом:

  1. вызываем lynx с ключем cmd_log=имя_файла_куда_сохранить_скрипт:
    lynx -cmd_log=script_name http://www.ufms.spb.ru:80/checkzp.php,
    вводим серию и номер паспорта, отправляем запрос, дожидаемся загрузки страницы с ответом и закрываем браузер.
  2. в дополнение к tor устанавливаем torsocks — утилита несколько сырая, но дело своё делает исправно, перенаправляя траффик на tor (можно естественно использовать любой понравившийся прокси, указав его в качестве умолчального export http_proxy="address:port").
  3. вызываем lynx через torsocks или выбранный прокси с указанием использовать для автоматизации отправки данных формы записанный ранее файл скрипта с передачей результатов работы на разбор в grip:
    torsocks lynx -cmd_script=script_name http://www.ufms.spb.ru:80/checkzp.php | grep «Ваш заграничный»

Всё, автоматизация проверки готовности заграничного паспорта успешно проведена! Пока скрипт работает за человека, человек может расположиться у телевизора и спокойно отдохнуть :)

Небольшое обновление генератора XML для WordPress

WordPress XML Creator Online (онлайн версия генератора XML файлов для импорта и автоматического наполнения блогов на wordpress) получила небольшое, но достаточно полезное, по-моему, дополнение — возможности добавления картинок к записям.

Ссылки на картинки берутся случайным образом из списка, указанного пользователем (если список оставить пустым — ничего к записям добавлено не будет) и добавляются в начало каждой записи, при это поддерживается два варианта обработки списка:

  • «Повторы возможны» — использованные ссылки не удаляются из списка, поэтому картинки могут повторяться.
  • «Без повторов» — каждая ссылка используется только один раз. Если ссылок меньше, чем записей — часть записей останется без картинок.

Ссылки указываются по одной на строку следующем виде:

  • http://mysite.ru/img01.jpg
  • http://mysite.ru/img02.jpg
  • И далее сколько нужно (в разумных пределах, поскольку скрипт не примет больше, чем 0,7 Мб данных в совокупности)

Подробней с возможностями программы можно ознакомиться на справочной странице.

Надеюсь, что нововведение окажется полезным. Предложения и сообщения об ошибках в работе WordPress XML Creator по-прежнему прошу присылать на адрес dimio@dimio.org.

Адаптация Cygwin shred для Windows

Адаптация утилиты shred для windows

Набросал тут как-то в свободную минуту скрипт-оболочку для вызова утилиты безопасного удаления файлов shred, которой постоянно пользуюсь дома.
Win-аналоги искать было лень — попробовал как-то найти под win софтинку для конвертации mp3 в wav — ради того, что в линухе делается одной командой, пришлось час ползать по сети и засорять машину, а в итоге всё найденное было платным или кривым.

Поскольку у меня на работе всё равно установлен cygwin — воспользовался сборкой shred под него, а батник сделал для большего удобства использования. Дальше всё просто — батник на рабочий стол и перетаскиваем на него предназначенные для безопасного удаления файлы.

Код батника предельно примитивный, так что просто приведу его ниже (под катом). Достаточно скопировать в текстовый файл и изменить расширение на .bat.

Читать далее Адаптация Cygwin shred для Windows

Анонимайзер как замена прокси. Проверка анонимайзеров на валидность

Скрипт для составления и проверки списка веб-прокси

Наткнулся на любопытную заметку под названием «И еще немного про Google Hack«, в которой автор описывает использование анонимайзеров (пример анонимайзера — сайт Anonymouse) вместо публичных прокси для обхода капчи в Google.
Такой способ использования анонимайзеров мне тоже приглянулся и я решил написать свой скрипт для сбора и проверки на валидность списка публичных веб-прокси.

Читать далее Анонимайзер как замена прокси. Проверка анонимайзеров на валидность

Синхронизация текстовых файлов — простой скрипт на Perl

Случилось так, что мне стало очень нужно синхронизировать ограниченный набор файлов между флешкой и компьютером. При этом руками копировать туда-сюда, вспоминая, какой файл редактировал последним — утомительно, а «монстры» синхронизации излишни ввиду примитивности задачи, ведь рекурсивная синхронизация директорий и прочие навороты мне ни к чему.

Решил набросать простейший скрипт на Perl (поскольку перл есть у меня и дома, и на работе, в отличие от баша например), который бы проходил по указанным мной файлам и синхронизировал их опираясь на дату последнего изменения, иными словами — более свежие файлы будут заменять устаревшие.

Читать далее Синхронизация текстовых файлов — простой скрипт на Perl

Автоматическое наполнение WordPress контентом

Как и обещал, выкладываю скрипт для создания контента под блог на wordpress (о том, как наполнять блоги на wordpress контентом я уже писал в заметке Автоматическое добавление контента в WordPress-блоги).
Выкладываю опять же «как есть» — работоспособность присутствует, а осталное не гарантируется :)
Кстати, именно на основе этого скрипта и родилась бесплатная программа для создания импортируемого в WordPress XML-файла — WordPress XML Creator.
Читать далее Автоматическое наполнение WordPress контентом

Автоматическое добавление контента в WordPress-блоги

Ещё где-то в одной из первых записей обещал выложить Perl-скрипт, которым раскладывал контент по сетке блогов (работает напрямую с базой данных wordpress). Только недавно об этом вспомнил :)
Выкладываю как есть (т.е. он полностью работоспособен, а эстетические ляпы пусть остаются), внутри в общем-то всё довольно понятно (на мой взгляд) описано. Почти все настройки вынесены в начало скрипта (настройки БД для wp-блогов см. со строки 155).

Сам скрипт только наполняет базы сетки блогов (таблицы для всех блогов сетки хранятся внутри одной БД) и обновляет информацию о времени публикации записей, контент для него должен быть подготовлен заранее (скрипт для подготовки контента тоже выложу на днях), для хранения подготовленного контента используется ДБ в формате SQLite3.

Открыть код скрипта в новом окне.

Пополнение библиотеки — Perl Cookbook

Perl Сборник рецептов для профессионалов - скачать бесплатно

Сегдняшней книге, пополнившей «Библиотеку» сайта, решил посветить отдельную заметку — она этого заслуживает.

Книга носит название «Perl. Сборник рецептов для профессионалов (Perl cookbook)» (второе издание) и представляет собой собрание готовых решений на perl для огромного круга типичных задач, с которыми возможна встреча на практике.

Материал изложен доступно, структура продуманная, рецепты готовы к применению :)

Книгу должно иметь и глупо не пользоваться ей.

Pastebin из консоли. Просто и удобно.


Стал часто пользоваться сервисом pastebin и добавлять свои заметки через браузер руками быстро надоело.
Поискал и нашел в репозитории программку pastebinit — не устроила из-за ограничений по работе с pastebin-сервисами (чтобы добавили новый сервис — надо написать автору и ждать-ждать-ждать — не очень интересно), тем более, что я как раз на хостинге сделал свой сервис на стандартном движке pastebin, чтобы не иметь проблем с кодировкой (pastebin по умолчанию работает не в unicode), да и просто из интереса.
Читать далее Pastebin из консоли. Просто и удобно.

Новогоднее поздравление и небольшой подарок

К счастью, у меня нашлась минутка, чтобы поздравить своих читателей с Новым Годом!
Пусть неклонно растут показатели ваших проектов, а все ваши замыслы воплощаются легко и оставляют у вас только приятные ощущения!

Также я успел приготовить небольшой подарок для тех, кто пользуется блог-движком WordPress для создания сателлитов.
WordPressXMLCreator Online отныне не имеет ограничений (кроме ограничения на размер файла, с целью регулирования трафика)! Иными словами, онлайн версия генератора XML для импорта в WordPress теперь умеет:

  • генерировать любое число статей, публикуемых за одни сутки
  • назначать статьям случайных авторов из списка указанных
  • выставлять статус комментариев и пингбеков для статей (разрешены/запрещены)
  • использовать для генерации любое количество тегов и категорий для каждой статьи

И в придачу — имеет справку с примером исходного файла (подробности о возможностях скрипта есть на справочной странице)
Все замечания по работе и пожелания по доработке и расширению функционала принимаются через комментарии или по e-mail!

Ещё раз — всех с Новым Годом! :)

Задаётесь вопросом «Как заработать в интернет?». Блог СетевогоГибитобоя даст ответ!