dzzb - Добро пожаловать! Снова.
$$$
До Н.Г.
ВЕРСИЯ ДЛЯ СЛАБОВИДЯЩИХ

Patreon

Опубликовано: 11-03-2016 14:26 Автор: Larry Roachburn Теги: Разное

Привет всем!
Поправил сегодня пагинацию страниц (внизу которая). Теперь будет автоматом укорачиваться, когда страниц станет много, а не две или больше строк. Нога в ногу со временем.
Зарегестрировал MBTY на Patreon можете подкидывать ему на пивас.
Постараюсь в ближайшее время выложить что-нибудь новое + бесплатные полезняшки из глубин сети.

Читать далее

I... live... again

Опубликовано: 10-03-2016 17:00 Автор: MBTY Теги: Разное

I... live... again (dzzb.ru)I... live... again

  • С прошедшими 23 февраля и 8 марта!
  • Домен таки выкупить не дали, сам же регистратор перепродал его в ту же секунду, что и окончательно отобрал у меня. Теперь посмотрим, что там будет.
  • Теперь мы - dZZb.ru
  • Вся инфа, как я и обещал - сохранена, комментарии были привязаны к домену dwwb - им каюк. Не живут у меня комменты називисимо от движка или домена больше двух лет.
  • К движку сайта прикручен плагин комментариев, которого на момент создания dwwb просто не было, посмотрим сколько проживет.
  • Виджета с последними комментариями для этого плагина нет в природе. Прослеживать новые комменты пока не получится. Так что пока на этом месте побудут мои любимые блобсы.
  • Движок несколько обновлен, теперь на нём можно проще мутить статичные (не блоговые) страницы, а потому у ссылок на весь софт добавилась "/blog/" (dwwb.ru/TCF4ex >>> dzzb.ru/blog/TCF4ex). Если я где то на странице забыл переправить ссылочку - сообщите, пожалуйста.
  • В админ-состав этого сайта добавлен Larry Roachburn. Он будет выкладывать сюда новости, свои поделия и всё, что сочтет нужным. Он имеет доступ и к дизайну сайта. Я его никак не ограничиваю. По сути он будет даже чаще работать с сайтом чем я.
  • Во всех приложениях, что здесь выложены, заменены копирайты (dWWb >> dZZb), но не только. За годы их жизни некоторые приложения, как например PuperScanner (скачайте и сравните со скрином на сайте) обновлялись и исправлялись. Исправления были либо незначительными либо бесполезными (типа перемещения кнопок), но были и те важные, о которых я уже позабыл, а своевременно выложить новую версию на сайт не позволила нехватка времени. Теперь уж исправлений полусотни утилит не упомнить. В общем имеет смысл перекачать те, какими часто пользуетесь.

Читать далее

Подбираем размер ФАЙЛА изображения.

Опубликовано: 31-12-2015 05:16 Автор: MBTY Теги: Мои разработки

PictureWeight (dzzb.ru) В общем =)
Если вам часто приходится размещать изображения в сети, заливать на собственные сайты и т.п., то вы явно сталкивались с тем, что иногда исходные изображения имеют слишком большой вес. Нужно уменьшать картинку скажем с 10 МБ до 1-2МБ. На фото это не сильно сказывается, а загрузка произойдет быстрее.
+ Есть отличный инструмент в PS, который умеет подбирать размер картинки с предпросмотром.
+ Есть консольный ImageMagick, который конвертирует что угодно в картинку требуемого размера командой converter.exe original.png -define jpeg:extent=512kb output.jpg
+ Наконец есть консольный Picture Resizer 6.0, который вообще можно назвать например PhotoResizeK128ICSOU.exe и теперь перетаскиваемые прям на приложение файлы будут конвертироваться в JPG размером до 128КБ.

Увы, но потребовался четвертый вариант по следующим причинам:
- В PS геморно организовать пакетную обработку целой папки с изображениями.
- ImageMagick страдает глюком. При маленьких размерах желаемого результата получаются картинки с размером даже больше чем у оригинала. Хотели картинку размером 1МБ ужать до 50Кб - получайте картинку размером 2МБ.
- Picture Resizer 6.0 работает только с файлами JPG. Скармливать ему bmp, png или gif не имеет смысла.

Принцип у этих программ крайне прост: Уменьшать качество картинки, пока результат не впишется в указанный размер файла. Ни разрешение, ни какая-то иная оптимизация не проводится (кроме плясок в PhotoShop).
Потому написал аналог этих трёх приложений: PictureWeight
* Консольная, а потому скриптами можно организовать пакетную обработку. (Недостаток PS)
* Если желаемый размер не достижим, то сохраняется картинка с наименьшим полученным размером. Хотели картинку размером 1МБ ужать до 50Кб - получайте картинку размером 100Кб. (Недостаток ImageMagick)
* Открывает все форматы изображений, которые способна открыть система, а точнее встроенный системный браузер. (Недостаток Picture Resizer)

Метод использования:
PicWeight.exe [Изображение] [Требуемый размер в КБ] [Префикс]
Пример:
PicWeight.exe c:\input.png 250 Hello!
Будет создана картинка c:\Hello!input.jpg размером 250КБ или менее.

Скачать

Читать далее

Total Commander F4 extender

Опубликовано: 01-12-2015 00:28 Автор: MBTY Теги: Мои разработки

Обновление 1!
Исправлена ошибка, при которой файлы с расширением, начинающимся с цифры (7z, например) не открывались.
Переписана большая часть кода, скорость работы увеличена.
Обновление 2!
Исправлен баг, обнаруженный k1: Чувствительность к регистру расширений файла и записи в ini (file.tXT не обрабатывался по записи [txt])
Есть одна утилитка. Total Commander Edit Redirector (или TCER)
Нужна для реализации открытия в TC файлов с разным расширением разными программами. Нажимаешь F4 на TXT файле - он откроется блокнотом, F4 на *.RTF - открывается виндовым вордпадом, F4 на JPG картинке - откроется пеинтом.
Все настройки ведутся через ini. Удобно, классно, пользовался годами. Тут внезапно понадобилось, чтобы файлы одного и того же расширения я мог открывать либо программой_№1 либо программой_№2.
TCER не имеет интерфейса, а потому выбора там тоже нет - по одному приложению на одно расширение.
Написал клон TCER - делает всё то же самое, но если в ini на одно и то же расширение прописано больше одного приложения, то перед открытием выпадет контекстное меню, в котором уже выбираем нужную утилитку.
Контекстное меню все видели - скриншота не прилагаю.
Подключается эта фигулька таким вот образомПрограмма-Редактор
Пример Ini:
[*]
Akelpad=..\Akelpad\AkelPad.exe
[rtf]
WordPad=%windir%\system32\write.exe
[png]
PixBuilder=..\..\EXE\PixBuilder\PixBuilder.exe
[jpg]
PixBuilder=..\..\EXE\PixBuilder\PixBuilder.exe
[bmp]
Paint=%windir%\system32\mspaint.exe
[РАСШИРЕНИЕ] - тут указываем расширение файла, на который хотим привязать свой редактор. [*] - расширение для всех файлов, которым не присвоена собственная программа.
Название софтины=Путь к ней

Название нужно, если к какому-то типу файлов будет привязано больше одного редактора. Скажем имеем Ini:
[TXT]
Akelpad=..\Akelpad\AkelPad.exe
WordPad=%windir%\system32\write.exe
При нажатии F4 на txt файле появится контекстное меню с двумя пунктами: Akelpad и WordPad. Если в файле настроек прописана только одна программа, то название роли не играет, контестное меню из 1 пункта не отобразится.
"..\" в примере означают, что нужный редактор смещен на 1 уровень от TCF4ex
Смотрим на AkelPad:
TCF4ex у меня лежит по пути c:\Programs\TC\PLUGINS\Editor\TCF4ex\TCF4ex.exe
А AkelPad по пути c:\Programs\TC\PLUGINS\Editor\AkelPad\AkelPad.exe
"..\" Заствляют TCF4ex выйти в папку Editor,а там уже искать AkelPad\AkelPad.exe

Скачать

Читать далее

Sad News Everyone!

Опубликовано: 01-12-2015 00:00 Автор: MBTY Теги: Разное

Оказалось, что, при регистрации сайта, я вбил паспортные данные с хорошей такой опечаткой. Регистратор посчитал это не опечаткой, а внесением заведомо липовых данных и пригрозил возможным изъятием прав на домен dzzb.ru
Вот что ответила поддержка на мой вопрос что же теперь делать.

Единственный способ перерегистрировать доменное имя на корректные данные - инициировать процедуру проверки персональных данных. Для гарантированной перерегистрации домена вам необходимо пополнить баланс в личном кабинете на сайте REG.RU на сумму в 5000 рублей за каждое доменное имя и сообщить нам об этом.
На время проверки (2 месяца) сайт полностью снимается с делегирования, а администратору отправляются регулярные уведомления с просьбой предоставить документы для идентификации. Если мы их не получим в течение этого времени, домен будет перерегистрирован на данные, указанные в базовой анкете аккаунта, с которого была инициирована проверка. Если вы желаете перерегистрировать домен на другие данные, укажите, пожалуйста, нужный профиль.
Два месяца ждать чего-то там, пока я же буду подтверждать данные, которые не могу подтвердить (потому что опечатка). 5тысяч - не пойми откуда взятая сумма... Это время сайт будет в дауне...
В голову не пришло ничего лучше, чем запилить аккаунт на твиттере, чтобы, в случае отключения сайта, сообщить там о новом адресе, если до этого дойдет и вопрос не разрешится сам собой.
Эта новость повисит в шапке, как первая. Если будут обновления софта или прочие статьи - они будут ниже.

Читать далее

http2cli 15.10.17

Опубликовано: 17-10-2015 23:38 Автор: MBTY Теги: Мои разработки, HTML

Обновление!
Добавлено несколько вариантов переформатирования текста.
В ходе решения очередной задачи потребовался инструмент, который выводил бы в консоль html-код страницы по URL.
Задача была следующей: создать скрипт, который бы находил в сети самый свежий релиз Media Player Classic Home Cinema.
Самые свежие "nightly" билды лежат тут: https://nightly.mpc-hc.org, нужно скачать MPC-HC.*.*.*.*.x86.exe (на момент написания статьи MPC-HC.1.7.9.181.x86.exe)
Так как wget не умеет нормально качать файлы со страницы по маске (через адовые костыли), то нужно предварительно прочесть html-код, чтобы "выловить" ссылку на наш файл
Недавно я выкладывал 2 консольных костыля, одним из которых был OPI - узкоспециализированный парсер страниц. Теперь он получил дополнительный функционал, несколько настроек, стал более универсальным, а так как от исходного кода OPI осталась только пара строк, то название тоже сменилось: http2cli
Как он работает:
Вводим в консоли http2cli https://nightly.mpc-hc.org|find "x86.exe" и получаем...такую дичь:
CMD: dzzb.ru <!--[if gt IE 9]><!--><html class="no-js browser" lang="en"><!--<![endif]--><head><meta charset="utf-8"><title>MPC-HC Nightly Builds</title><meta name="description" content="MPC-HC Nightly Builds"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="shortcut icon" href="/_h5ai/client/images/favicon/favicon-16-32.ico"><link rel="apple-touch-icon-precomposed" type="image/png" href="/_h5ai/client/images/favicon/favicon-152.png"><link rel="stylesheet" href="/_h5ai/client/css/styles.css"><script src="/_h5ai/client/js/scripts.js" data-module="main"></script></head><body><div id="fallback-hints"><span class="noJsMsg">Works best with JavaScript enabled!</span><span class="noBrowserMsg">Works best in <a href="http://browsehappy.com">modern browsers</a>!</span><span class="backlink"><a href="http://larsjung.de/h5ai/" target="_blank" title="h5ai 0.27.0 В· a modern HTTP web server index">powered by h5ai</a></span></div><div id="fallback"><table><tr><th class='fb-i'></th><th class='fb-n'><span>Name</span></th><th class='fb-d'><span>Last modified</span></th><th class='fb-s'><span>Size</span></th></tr><tr><td class='fb-i'><img src='/_h5ai/client/images/fallback/folder.png' alt='folder'/></td><td class='fb-n'><a href='/mpc-hc_apps/'>mpc-hc_apps</a></td><td class='fb-d'>2011-05-07 12:12</td><td class='fb-s'></td></tr><tr><td class='fb-i'><img src='/_h5ai/client/images/fallback/folder.png' alt='folder'/></td><td class='fb-n'><a href='/old/'>old</a></td><td class='fb-d'>2015-10-04 22:14</td><td class='fb-s'></td></tr><tr><td class='fb-i'><img src='/_h5ai/client/images/fallback/file.png' alt='file'/></td><td class='fb-n'><a href='/Info.md'>Info.md</a></td><td class='fb-d'>2015-04-09 23:18</td><td class='fb-s'>0 KB</td></tr><tr><td class='fb-i'><img src='/_h5ai/client/images/fallback/file.png' alt='file'/></td><td class='fb-n'><a href='/log.1.7.9.181.log'>log.1.7.9.181.log</a></td><td class='fb-d'>2015-10-04 22:31</td><td class='fb-s'>293 KB</td></tr><tr><td class='fb-i'><img src='/_h5ai/client/images/fallback/file.png' alt='file'/></td><td class='fb-n'><a href='/MPC-HC.1.7.9.181.x64.7z'>MPC-HC.1.7.9.181.x64.7z</a></td><td class='fb-d'>2015-10-04 22:16</td><td class='fb-s'>12453 KB</td></tr><tr><td class='fb-i'><img src='/_h5ai/client/images/fallback/file.png' alt='file'/></td><td class='fb-n'><a href='/MPC-HC.1.7.9.181.x64.exe'>MPC-HC.1.7.9.181.x64.exe</a></td><td class='fb-d'>2015-10-04 22:19</td><td class='fb-s'>13401 KB</td></tr><tr><td class='fb-i'><img src='/_h5ai/client/images/fallback/file.png' alt='file'/></td><td class='fb-n'><a href='/MPC-HC.1.7.9.181.x64.pdb.7z'>MPC-HC.1.7.9.181.x64.pdb.7z</a></td><td class='fb-d'>2015-10-04 22:22</td><td class='fb-s'>17732 KB</td></tr><tr><td class='fb-i'><img src='/_h5ai/client/images/fallback/file.png' alt='file'/></td><td class='fb-n'><a href='/MPC-HC.1.7.9.181.x86.7z'>MPC-HC.1.7.9.181.x86.7z</a></td><td class='fb-d'>2015-10-04 22:25</td><td class='fb-s'>11584 KB</td></tr><tr><td class='fb-i'><img src='/_h5ai/client/images/fallback/file.png' alt='file'/></td><td class='fb-n'><a href='/MPC-HC.1.7.9.181.x86.exe'>MPC-HC.1.7.9.181.x86.exe</a></td><td class='fb-d'>2015-10-04 22:27</td><td class='fb-s'>12530 KB</td></tr><tr><td class='fb-i'><img src='/_h5ai/client/images/fallback/file.png' alt='file'/></td><td class='fb-n'><a href='/MPC-HC.1.7.9.181.x86.pdb.7z'>MPC-HC.1.7.9.181.x86.pdb.7z</a></td><td class='fb-d'>2015-10-04 22:30</td><td class='fb-s'>17006 KB</td></tr><tr><td class='fb-i'><img src='/_h5ai/client/images/fallback/file.png' alt='file'/></td><td class='fb-n'><a href='/MPC-HC_standalone_filters.1.7.9.181.x64.7z'>MPC-HC_standalone_filters.1.7.9.181.x64.7z</a></td><td class='fb-d'>2015-10-04 22:23</td><td class='fb-s'>1616 KB</td></tr><tr><td class='fb-i'><img src='/_h5ai/client/images/fallback/file.png' alt='file'/></td><td class='fb-n'><a href='/MPC-HC_standalone_filters.1.7.9.181.x86.7z'>MPC-HC_standalone_filters.1.7.9.181.x86.7z</a></td><td class='fb-d'>2015-10-04 22:31</td><td class='fb-s'>1454 KB</td></tr></table></div></body></html>
Дело в том, что именно на этом сайте исходный код страницы записан в одну строку (для экономии нескольких байт). А find находит строку, в которой было совпадение. Получается, что весь наш сайт будет отображен, потому что во всём нём есть совпадение. Хорошо бы, если между html тегами был разрыв строки.
Это есть первая, помимо основной, функция нашего приложения. Если ввести http2cli https://nightly.mpc-hc.org 1, то между html-тегами будет создаваться разрыв. Если ввести 0 или ничего не вводить, то код никак не будет переоформляться: был изначально код с разрывами - получим их и так, не было - не получим.
Теперь страница будет выглядеть не одной строкой, а вот так:
cmd: dzzb.ru <!DOCTYPE html> <!--[if lt IE 10]> <html class="no-js no-browser" lang="en"> <![endif]--> <!--[if gt IE 9]> <!--> <html class="no-js browser" lang="en"> <!--<![endif]--> <head> <meta charset="utf-8"> <title>MPC-HC Nightly Builds</title> <meta name="description" content="MPC-HC Nightly Builds"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="shortcut icon" href="/_h5ai/client/images/favicon/favicon-16-32.ico"> <link rel="apple-touch-icon-precomposed" type="image/png" href="/_h5ai/client/images/favicon/favicon-152.png"> <link rel="stylesheet" href="/_h5ai/client/css/styles.css"> <script src="/_h5ai/client/js/scripts.js" data-module="main"> </script> </head> <body> <div id="fallback-hints"> <span class="noJsMsg">Works best with JavaScript enabled!</span> <span class="noBrowserMsg">Works best in <a href="http://browsehappy.com">modern browsers</a>!</span> <span class="backlink"> <a href="http://larsjung.de/h5ai/" target="_blank" title="h5ai 0.27.0 В· a modern HTTP web server index">powered by h5ai</a> </span> </div> <div id="fallback"> <table> <tr> <th class='fb-i'> </th> <th class='fb-n'> <span>Name</span> </th> <th class='fb-d'> <span>Last modified</span> </th> <th class='fb-s'> <span>Size</span> </th> </tr> <tr> <td class='fb-i'> <img src='/_h5ai/client/images/fallback/folder.png' alt='folder'/> </td> <td class='fb-n'> <a href='/mpc-hc_apps/'>mpc-hc_apps</a> </td> <td class='fb-d'>2011-05-07 12:12</td> <td class='fb-s'> </td> </tr> <tr> <td class='fb-i'> <img src='/_h5ai/client/images/fallback/folder.png' alt='folder'/> </td> <td class='fb-n'> <a href='/old/'>old</a> </td> <td class='fb-d'>2015-10-04 22:14</td> <td class='fb-s'> </td> </tr> <tr> <td class='fb-i'> <img src='/_h5ai/client/images/fallback/file.png' alt='file'/> </td> <td class='fb-n'> <a href='/Info.md'>Info.md</a> </td> <td class='fb-d'>2015-04-09 23:18</td> <td class='fb-s'>0 KB</td> </tr> <tr> <td class='fb-i'> <img src='/_h5ai/client/images/fallback/file.png' alt='file'/> </td> <td class='fb-n'> <a href='/log.1.7.9.181.log'>log.1.7.9.181.log</a> </td> <td class='fb-d'>2015-10-04 22:31</td> <td class='fb-s'>293 KB</td> </tr> <tr> <td class='fb-i'> <img src='/_h5ai/client/images/fallback/file.png' alt='file'/> </td> <td class='fb-n'> <a href='/MPC-HC.1.7.9.181.x64.7z'>MPC-HC.1.7.9.181.x64.7z</a> </td> <td class='fb-d'>2015-10-04 22:16</td> <td class='fb-s'>12453 KB</td> </tr> <tr> <td class='fb-i'> <img src='/_h5ai/client/images/fallback/file.png' alt='file'/> </td> <td class='fb-n'> <a href='/MPC-HC.1.7.9.181.x64.exe'>MPC-HC.1.7.9.181.x64.exe</a> </td> <td class='fb-d'>2015-10-04 22:19</td> <td class='fb-s'>13401 KB</td> </tr> <tr> <td class='fb-i'> <img src='/_h5ai/client/images/fallback/file.png' alt='file'/> </td> <td class='fb-n'> <a href='/MPC-HC.1.7.9.181.x64.pdb.7z'>MPC-HC.1.7.9.181.x64.pdb.7z</a> </td> <td class='fb-d'>2015-10-04 22:22</td> <td class='fb-s'>17732 KB</td> </tr> <tr> <td class='fb-i'> <img src='/_h5ai/client/images/fallback/file.png' alt='file'/> </td> <td class='fb-n'> <a href='/MPC-HC.1.7.9.181.x86.7z'>MPC-HC.1.7.9.181.x86.7z</a> </td> <td class='fb-d'>2015-10-04 22:25</td> <td class='fb-s'>11584 KB</td> </tr> <tr> <td class='fb-i'> <img src='/_h5ai/client/images/fallback/file.png' alt='file'/> </td> <td class='fb-n'> <a href='/MPC-HC.1.7.9.181.x86.exe'>MPC-HC.1.7.9.181.x86.exe</a> </td> <td class='fb-d'>2015-10-04 22:27</td> <td class='fb-s'>12530 KB</td> </tr> <tr> <td class='fb-i'> <img src='/_h5ai/client/images/fallback/file.png' alt='file'/> </td> <td class='fb-n'> <a href='/MPC-HC.1.7.9.181.x86.pdb.7z'>MPC-HC.1.7.9.181.x86.pdb.7z</a> </td> <td class='fb-d'>2015-10-04 22:30</td> <td class='fb-s'>17006 KB</td> </tr> <tr> <td class='fb-i'> <img src='/_h5ai/client/images/fallback/file.png' alt='file'/> </td> <td class='fb-n'> <a href='/MPC-HC_standalone_filters.1.7.9.181.x64.7z'>MPC-HC_standalone_filters.1.7.9.181.x64.7z</a> </td> <td class='fb-d'>2015-10-04 22:23</td> <td class='fb-s'>1616 KB</td> </tr> <tr> <td class='fb-i'> <img src='/_h5ai/client/images/fallback/file.png' alt='file'/> </td> <td class='fb-n'> <a href='/MPC-HC_standalone_filters.1.7.9.181.x86.7z'>MPC-HC_standalone_filters.1.7.9.181.x86.7z</a> </td> <td class='fb-d'>2015-10-04 22:31</td> <td class='fb-s'>1454 KB</td> </tr> </table> </div> </body> </html>
Вводим http2cli https://nightly.mpc-hc.org 1|find "x86.exe" и получаем: CMD: dzzb.ru <a href='/MPC-HC.1.7.9.181.x86.exe'>MPC-HC.1.7.9.181.x86.exe</a> Для x64 версии всё по той же схеме: вводим http2cli https://nightly.mpc-hc.org 1|find "x64.exe" и получаем:CMD: dzzb.ru <a href='/MPC-HC.1.7.9.181.x64.exe'>MPC-HC.1.7.9.181.x64.exe</a> Дальше уже обрезать лишнее и оставить только "/MPC-HC.1.7.9.181.x86.exe" - дело техники:
for /F "tokens=2 delims='" %%i in ('http2cli https://nightly.mpc-hc.org 1^|find "x86.exe"') do wget --no-check-certificate "https://nightly.mpc-hc.org%%i"
и у нас в руках самый свежий билд плеера.
Увы, но find не умеет искать то, что находится в двойных кавычках: Если ссылка лежит не в 'https://nightly.mpc-hc.org/MPC-HC.1.7.9.181.x86.exe', а "https://nightly.mpc-hc.org/MPC-HC.1.7.9.181.x86.exe", то простой правкой скрипта на for /F "tokens=2 delims="" %%i in ... не отделаешься. Нужны опять же костыли. В сети куча тематик и на русских и на английских ресурсах как обойти то, что команда for не работает с этим " разделителем.
Чтобы не нагромождались скрипты, http2cli заимел еще два параметра:
http2cli http://www.ya.ru 2 приведет к замене " на +++, но не будет в вмешиваться в разрывы строк.
http2cli http://www.ya.ru 3 приведет к замене " на +++ и создаст разрывы строк между html-тегами.
Кавычка заменена, скрипт for /F "tokens=2 delims=+++" %%i in ... - работает прекрасно.
Если сильно захотеть, то можно сделать, что-то вроде монитора изменения страницы без необходимости в запущенном браузере.
Примерно такой код будет мониторить любую страницу и сообщать, если на ней найдены изменения
@echo off
cls
for %%I in (old.html) do set OldFileSize=%%~zI
http2cli.exe "http://google.ru" > new.html
for %%I in (new.html) do set NewFileSize=%%~zI
if "%OldFileSize%"=="%NewFileSize%" goto bad

:good
echo Есть обновления!!
move /y new.html old.html >nul
goto end

:bad
echo Ничего нового...

:end
pause
Если на странице код всегда меняется, как у меня из-за счетчика до Нового Года, то http2cli всегда будет находить "обновления", это нужно учесть :)
Так же пришлось оборудовать этот костыль функцией перевода полученного текста из одной кодировки в другую.
Командная строка у нас по умолчанию в кодировке 866, а потому русский текст на современных страницах (чаще UTF8) будет отображаться так
F4 ╨╜╨░ TXT ╤Д╨░╨╣╨╗╨╡ - ╨╛╨╜ ╨╛╤В╨║╤А╨╛╨╡╤В╤Б╤П ╨▒╨╗╨╛╨║╨╜╨╛╤В╨╛╨╝, F4 ╨╜╨░ *.RTF - ╨╛╤В╨║╤А╤Л╨▓╨░╨╡╤В╤Б╤П ╨▓╨╕╨╜╨┤╨╛╨▓╤Л╨╝ ╨▓╨╛╤А╨┤╨┐╨░╨┤╨╛╨╝, F4 ╨╜╨░ JPG ╨║╨░╤А╤В╨╕╨╜╨║╨╡ - ╨╛╤В╨║╤А╨╛╨╡╤В╤Б╤П ╨┐╨╡╨╕╨╜╤В╨╛╨╝.
╨Т╤Б╨╡ ╨╜╨░╤Б╤В╤А╨╛╨╣╨║╨╕ ╨▓╨╡╨┤╤Г╤В╤Б╤П ╤З╨╡╤А╨╡╨╖ ini. ╨г╨┤╨╛╨▒╨╜╨╛, ╨║╨╗╨░╤Б╤Б╨╜╨╛, ╨┐╨╛╨╗╤М╨╖╨╛╨▓╨░╨╗╤Б╤П ╨│╨╛╨┤╨░╨╝╨╕. ╨в╤Г╤В ╨▓╨╜╨╡╨╖╨░╨┐╨╜╨╛ ╨┐╨╛╨╜╨░╨┤╨╛╨▒╨╕╨╗╨╛╤Б╤М, ╤З╤В╨╛╨▒╤Л ╤Д╨░
Кодовую страницу нужно указывать общепринятым номером (1251 - Windows Cyrillic, 866 - Dos Cyrillic, 65001 - UTF8 и т.д..), либо не указывать вообще, если перекодировка не требуется.
Команда:
http2cli.exe http://www.dzzb.ru 0 65001 866
выведет в консоль читаемый русский текст.
Наконец выкладываю сообщение, которое выдаст http2cli, если был произведен ее запуск без каких-либо параметров :
CMD: dzzb.ru http2cli 15.10.17 Сайт: http://www.dzzb.ru Автор: MBTY Приложение выводит содержимое URL в консоль. Пример использования: http2cli.exe http://www.google.ru Поддерживается переформатирование html кода из одной строки в развернутый вариант. Пример использования: Превращение однострочного кода в разбитый, путем вставки разрыва между html-тегами и заменой " на +++: http2cli.exe http://www.google.ru 3 Превращение замена " на +++ без создания разрывов строк между html-тегами: http2cli.exe http://www.google.ru 2 Превращение однострочного кода в разбитый, путем вставки разрыва между html-тегами: http2cli.exe http://www.google.ru 1 Сохранение исходно вида кода: http2cli.exe http://www.google.ru 0 Имеется поддержка перекодирования содержимого на лету. Пример использования: http2cli.exe http://www.google.ru [0/1] [исходная кодировка] [конечная кодировка] Кодовая страница указывается номером. 1251 - Windows Cyrillic 866 - Dos Cyrillic 65001 - UTF8 и т.д. Пример использования перекодировки страницы из UTF8 в DOS с сохранением форматирования: http2cli.exe http://www.google.ru 0 65001 866 Пример использования перекодировки страницы из UTF8 в DOS с разбиением кода на строки: http2cli.exe http://www.google.ru 1 65001 866

Скачать

Читать далее

Русская версия Terraria 1.3.0.8 с FullBright

Опубликовано: 10-09-2015 17:50 Автор: MBTY Теги: Игры

Поигрываю в Terraria еще с тех времен, как в сеть утекли первые альфа версии, в которой были только слизни, а из материалов - дерево и пара руд.
И все эти несколько лет я думал о том, что играть станет приятнее, если из общего игрового процесса выбросить поиск в темноте какого-нибудь драгоценного камня или куска руды, ради которого приходится рыть землю часами.
Существует чит для террарии, который называется FullBright. Этот чит освещает весь видимый мир и поиск руд становится куда веселее.
Так же очень приятно видеть игру на родном языке.
И вот так на днях совпало, что на просторах сети появились и русская версия Terraria 1.3.0.8 и небольшой инструмент, который патчит террарию и активирует в ней этот самый FullBright.

FullBright (dzzb.ru)FullBright
Те же, кто читерить не привык (я привык, потому что не играю по сети, а только соло) может запросто отключить FullBright клавишей Y
Так же тут присутствует облегченая версия чита - освещение местности под курсором. Чтобы можно было "сканировать" замлю в поиске руды.
Cursor Light (dzzb.ru)Cursor Light
Этот чит тоже отключается, но клавишей U.
В итоге имеем русскую версию игры, но с приятной плюшкой. В сети есть патчер игры, который добавляет и быструю регенерацию и изменялку свойств предметов и бессмертие и много чего еще, но тогда в игре остается нечего делать. Потому эти плюшки я не вшивал.
Скачать
Запускать игру нужно файлом StartTerraria

Читать далее

Total Commander IMAP Plugin

Опубликовано: 24-08-2015 22:13 Автор: MBTY Теги: Разное

Искал для TC почтовый плагин, способный работать с IMAP, но из всех почтовых плагинов для TC имеется только MAIL_WFX за авторством Павла Дубровского. Увы, но MAIL_WFX поддерживает только POP3/SMTP протокол. На форуме в теме, посвященной плагину, автор писал, что собирается запилить поддержку IMAP, но с 2007 года так ничего и не запилилось.
Я связался с автором, который сообщил, что забил на плагин, но выложил его на github в надежде, что кто-то продолжит разработку.
Обычно теперь я пишу, что я взял и написал всё сам.... - хрен! Понятия не имею как писать плагины для TC, а с протоколом IMAP вообще не сталкивался в программировании.
Кидаю клич. Друзья, случайные посетители этого сайта и те, кто нагуглил фразу "Total Commander IMAP Plugin" из заголовка этой темы! Помогите в поиске того самого человечка, который сможет реинкарнировать этот самый WFX_MAIL и таки обогатить Total Commander функцией работы с IMAP! Репостите этот текст у себя в твиттерах, на своих сайтах, страницах в Vk и просто на заборе. Буду очень признателен.

Читать далее

День сисадмина

Опубликовано: 31-07-2015 10:15 Автор: MBTY Теги: Разное

Последняя пятница июля. С празником, админы.

День сисадмина (dzzb.ru)С празником, няки

Читать далее

Консольные помогаторы

Опубликовано: 24-07-2015 21:16 Автор: MBTY Теги: Мои_разработки, HTML

А сегодня у нас два консольных костыля за раз.
Первый - NetSize:
Небольшая утилита, которая просто получает размер файла с сервера.
Вся эта паника вокруг Flash Player с его ежедневными фиксами привела к тому, что нужно каждый день обновлять установочные дистрибутивы браузеров на моей флешке.
У ЯндексБраузера ссылка на скачивание последнего билда имеет вид: http://browser.yandex.ru/download/?os=win&full=1
При обновлении дистрибутива ни aria2c ни wget не могут сравнить файл на сервере с файлом на флешке, потому что на сервере у него всегда меняется имя. Получается, что браузер всегда приходится перекачивать, даже если он не обновлялся.
Получается нужна сравнивалка размеров файла на сервере с локальным файлом. Получился NetSize.
Вбиваем в консоли NetSize "http://browser.yandex.ru/download/?os=win&full=1" и получаем в ответ 59194320 Скрипт, который демонстрирует его работу выглядит так.

1) for %%I in (Yandexlatest.exe) do set LocalFileSize=%%~zI
2) for /F %%a in ('%~d0\!_Soft\netsize "http://browser.yandex.ru/download/?os=win&full=1"') do set NetFileSize=%%a
3) if "%LocalFileSize%"=="%NetFileSize%" goto setup
4) :download
5) wget --trust-server-names --no-check-certificate "http://browser.yandex.ru/download/?os=win&full=1" -q -nv -N -O Yandexlatest.exe
6) :setup
7) Yandexlatest.exe
Поясню построчно.
1) Получаем размер файла на флешке и назначем ему переменную LocalFileSize
2) Получаем размер файла на сервере и назначем ему переменную NetFileSize
3) Если размеры одинаковы, то перескакиваем к процессу установки с маркером Setup, пропустив процесс скачивания.
4, 5) Если размеры не совпали, то начинается процесс скачивания с последнующей установкой.
6, 7) Установка браузера.
Скачать NetSize
Второй костыль - OPI:
Простая, но полезная утилита, которая будет удобна для обновления разных дистрибутивов.
Для примера рассмотрим как выкладываются дистрибутивы браузера Opera на оффициальном сервере.
Перейдя по ссылке http://get.geo.opera.com/ftp/pub/opera/desktop/, мы увидим, что нумерация версий приводит к тому, что в самом низу последним идёт самый свежий релиз браузера 30.0.1835.88
Сталкивался в сети с хитроумным скриптом для выполнения подобной цели - нахождение последнего билда любой программулины на страницах подобного формата. Скрипт скачивал всю страницу через Wget, отсеивал все ссылки в отдельный файл через find, затем gsar чистил сылку, чтобы получить только номер билда. Итого три утилиты.
OPI делает всё это за раз. Комманда opi.exe "http://get.geo.opera.com/ftp/pub/opera/desktop/" выдаёт в консоль: 30.0.1835.88 Скрипт демонстрации работы Opi:
1) for /F %%a in ('opi.exe http://get.geo.opera.com/ftp/pub/opera/desktop/') do set BUILD=%%a
2) wget http://get.geo.opera.com/ftp/pub/opera/desktop/%BUILD%/win/Opera_%BUILD%_Setup.exe
1)Opi вычисляет свежий билд и назначает переменную BUILD
2)wget скачивает файл по ссылке, но заменяет %BUILD% на 30.0.1835.88: http://get.geo.opera.com/ftp/pub/opera/desktop/30.0.1835.88/win/Opera_30.0.1835.88_Setup.exe

Скачать Opi

Читать далее

◘▲▼▲◘◘▲▼▲◘◘▲▼▲◘