Крестина упоротая
(из классификатора «Эсхатологические мутанты»)
Крестина упоротая
(из классификатора «Эсхатологические мутанты»)
Мой дядя самый честный блоггер
Когда не в шутку занемог,
Он даже сам себя забанил,
И лучше выдумать не смог.
Иногда бывает, что в скрипт надо вставить скучную команду sleep, пока что-нибудь делается, например, поднимается сетевой интерфейс или стартует демон.
Вообще, правильнее в этих случаях писать отдельные проверки, проверяя в цикле, поднялось ли, запустилось ли нужное.
Но иногда лень и где некритично можно «просто подождать», как пелось у классика. А чтобы юзеру не было скучно, и он не думал, что наш скрипт висит, можно подменить обычный sleep небольшим скриптом, показывающим обратный отсчет, да еще и с вращающейся псевдографической фенечкой.
Я уже когда-то поднимал этот вопрос, посему с ноля все делать не придется, нужно лишь чуть доработать имеющийся скрипт.
Итак, скрипту будут передаваться два параметра. Первый обязательный, содержащий время ожидания, и второй дополнительный — сообщение, выводимое в терминал. Если второй параметр не задан, то по умолчанию будет выдано сообщение, заранее определенное во внутренней переменной скрипта.
Определяем переменные (сообщение по умолчанию, время ожидания, счетчик текущего элемента в массиве псевдографической «мельницы» и сам массив элементов):
MESSAGE="Wait"
WTIMEOUT=0
ITEM_ARR=0 #current item counter
CH_S[0]='-' #pseudographic items
CH_S[1]='/'
CH_S[2]='|'
CH_S[3]='\'
print_help()
{
echo "use waiter <time> [message]"
echo "<time> - wait time"
echo "[message] - optional text message"
}Проверяем первый параметр скрипта, на предмет того, нужно ли вывести справку и завершить работу:
#parameters check
if [ -z $1 ];then #if no parameters
print_help
exit 2
fi
#if help request
if [ $1 = "-h" ];then
print_help
exit 2
fi
if [ $1 = "--help" ];then
print_help
exit 2
fi
Проверяем первый параметр скрипта на соответствие его числовому значению (подробнее описано здесь):
if (echo $1 | grep -E -q "^?[0-9]+$");then
WTIMEOUT=$1
else
echo "Not a number in first parameter <time>"
exit 1
fi
И второй параметр. Если он не пустой, присваиваем его значение переменной, содержащей сообщение:
if [ -n "$2" ];then
MESSAGE=$2
fi
Переходим к основной части скрипта:
Выводим сообщение для пользователя и сохраняем позицию курсора:
echo -n $MESSAGE" ("$WTIMEOUT" secounds): "
tput sc #save cursor position
Ключ -n в команде echo означает, что следующее сообщение будет печататься на той же строке, команда echo не совершит перевод курсора на следующую строку.
while [ $WTIMEOUT -ge 0 ]; do
#print timeout and current pseudographic char
printf '%3s %s' $WTIMEOUT ${CH_S[ITEM_ARR]}
tput rc #restore cursor position
sleep 1
#decrease timeout and increase current item ctr.
let "WTIMEOUT=WTIMEOUT-1"
let "ITEM_ARR=ITEM_ARR+1"
if [ $ITEM_ARR -eq 4 ];then
#if items ctr > number of array items
#starting with 0 item
let "ITEM_ARR=0"
fi
done
В рабочем цикле сначала выводим оставшееся время ожидания и текущий символ из массива псевдографических элементов, шаблон %3s команды printf означает, что если выводимая строка меньше 3 символов, недостающие с начала строки знаки заменяются пробелами, %s, что просто выводим строку, как она есть. Далее указываются 2 переменных — оставшееся время ожидания и символ из массива.
Следующим шагом восстанавливаем позицию курсора (и все, что будет напечатано в следующей итерации цикла затрет предыдущие значения).
Далее ждем одну секунду и уменьшаем оставшееся время на 1, а счетчик текущего элемента массива увеличиваем и проверяем, не больше ли он, чем последний индекс в массиве. Если больше — присваиваем счетчику значение 0, в следующем цикле опять будет выведен нулевой элемент.
В завершении печатаем символ перехода на новую строку, чтобы следующие сообщения в следующих или в вызывающих этот скрипт скриптах начинались с новой строки
#next message starting with new string
printf '\n'
Бывает mcedit капризничает и при нажатии [Ctrl]-[Ins] не помещает данные в cooledit.clip хотя с правами все в порядке и файл есть. Что делать в этом случае, открываем на правку файл, выделяем нужный текст [F3], жмем [F9] «файл» — «копировать в файл» или [Ctrl]-[f], открывается окно и путь до cooledit.clip жмем «далее», теперь содержимое выделенного текста записано в cooledit.clip. Чтобы вставить, открываем другой файл, жмем [F9] «файл» — «Вставить файл» или [F15] (но таких клавиатур давно нет ^_^).
Мне не пришлось шаманить с файлом буфера редактора mc, но вот [Shift]+[Ins] перехватывает putty, так что оставлю от склероза.
Остальное здесь
Переменные в BASH, как известно, типа не имеют (и как же это иной раз бесит). А проверить, что в переменной — число или строка иногда надо. На помощь придет grep и регулярные выражения.
Команда grep -E -q regexp проверит, соответствует ли переданная grep строка, регулярному выражению regexp
Ключ -E укажет команде grep, что образец есть полное регулярное выражение (см. подробности здесь )
Ключ -q укажет, что в стандартный поток ввода-вывода отправятся соответствующие образцу строки, и если хоть одна из входных строк соответствует образцу, то код завершения команды будет 0, иначе 1.
Для простого примера больше одной строки и не надо.
Осталось составить регулярные выражения для нашего случая:
Целое положительное число: ^?[0-9]+$
Целое положительное, либо отрицательное число: ^-?[0-9]+$
Для примера проверим первый параметр скрипта, задаваемый из командной строки
1. положительные целые числа
#!/bin/bash
if (echo "$1" | grep -E -q "^?[0-9]+$"); then
echo "Number"
else
echo "Not Number"
fi
2. положительные и отрицательные целые числа
#!/bin/bash
if (echo "$1" | grep -E -q "^-?[0-9]+$"); then
echo "Number"
else
echo "Not Number"
fi
ДОЧИТАЙТЕ ДО КОНЦА, КАК НЕЗНАНИЕ ИЛИ ПРЕНЕБРЕЖЕНИЕ К МАНУАЛАМ, ЗАСТАВЛЯЕТ ИЗОБРЕТАТЬ ВЕЛОСИПЕДЫ
Столкнулся я с проблемой, а как отобразить в посте не результат работы шорткода, а его вид в редакторе, т.е. его синтаксис. Для шорткодов, в том же самом блоге не используемых — все нормально. Но для тех шорткодов, которые в блоге используешь — возникает понятная проблема. Вставляешь шорткод в блог, и движок на место шорткода вставляет результат функции, его обрабатывающий. А задача стоит отобразить написание шорткода.
Отобразить синтаксис html-тегов проще, достаточно заменить угловые скобки «<» и «>» на эскейп-последовательности html. Для символов «[» и «]», заменяющих «<» и «>» для шорткода, я не нашел эксейп-последовательностей.
functions.php, хоть в отдельный плагин.<?php
/**
* Plugin Name: shortcodes display
*/
function display_shortcode($atts, $content=null)
{
$ret=$content;
return $ret;
}
add_shortcode ('shortcode','display_shortcode');
?>
ВНИМАНИЕ! Переменную $atts нужно добавить обязательно, хотя она фактически не используется, т.к. у данного шорткода параметров нет, но так уж устроен движок WordPress, что без наличия первого параметра не обработается и параметр $content

Результат работы:

Благодарю злого анонимуса, который хотел постебаться, и случайно помог, хехе.
Т.е. в виде ссылки с «головастиком», как в тестовом посте
Плюс добавим возможность открывать страницу пользователя ЖЖ/LJR в отдельном окне (вкладке)
<ljr user="username"> или <lj user="username">, данный псевдотег заменяется на ссылку с дополнительной картинкой-головастиком перед ней, клик по картинке ведет к открытию страницы userinfo пользователя ЖЖ и LJR, а клик по имени пользователя — к открытию главной страницы пользователя блогосервиса. Если вставить в пост на LJR псевдотег <lj user="username">, то к имени пользователя будет добавлена дополнительная строка — username@lj, указывающая, что дневник пользователя находится в Живом Журнале.
[ljr user="username"] или [lj user="username"],blank=1, например [ljr user="hex_laden" blank=1], то ссылки на userinfo (при клике по «головастику») или ссылка на главную страницу блога, откроются в новом окне/вкладке.
wp-content/plugins, создаем отдельный каталог lj-ljr-users, в нем подкаталог img, и загружаем туда графические файлы «головастиков»
http://lj.rossia.org/img/userinfo.gif и
http://lj.rossia.org/img/userinfo-lj.gif lj-ljr-users.php в каталоге wp-content/plugins/lj-ljr-users и вставляем в него нижеследующий код.
styles.cssЗаглянул в логи — 25 неудачных попыток подобрать пароль и логин к админке.
Смешно, логин, который нигде не отображается, 35+ символьный пароль от админки, и что самое смешное — ежедневный бэкап постов, высылаемый на e-mail (специально для этого заведенный, который никто не знает).
Про отправку бэкапов на мыло сделаю отдельный пост, таких плагинов нет, ЕМНИС, полезно будет.
Правда мы не стали заморачиваться, сообщество это или пользователь, поэтому иконка и для того, и для другого одинакова, например:
Пользователи:
rutopist@lj
tiphareth@ljr
Сообщества:
potsreotizm@lj
durdom@ljr
Наш шорткод имеет замечательную возможность — открывать нужного юзера/сообщество в новой вкладке, например:
ketmar@ljr
veniamin1@lj
cat@ljr
brigada_hella@lj
simple_html_dom.phpRead more…
Для того, чтобы вставить в свой блог на WordPress опрос с LJ.ROSSIA.ORG, останется добавить в пост следующий шорткод:
[ljrpoll id="<poll_id>"]
Где <poll_id> идентификатор опроса, например 1307
Тестовый пост с отображенным опросом здесь:
http://tolik-punkoff.com/2016/07/26/opros-s-lj-rossia-org-otobrazhaemyj-v-wordpress/
Код плагина доступен на PasteBin:
getpoll.php
Основной файл плагина
Или можно скачать архив с плагином с mega.nz
Папку из архива надо поместить в директорию wp-content/plugins вашего сайта, после чего зайти в консоль на страницу плагинов (или обновить ее) и активировать плагин LJR-pollDisplay
Позже напишу, как я такой финт ушами сделал (ну не совсем я, финны с китайцами, точнее с камбоджийцами даже, я только идею подал и над процессом руками водил, то бишь советовал):
ERROR: CONNECTION ERROR [http://lj.rossia.org/poll/?id=1307&mode=results]
via
glebo@ljr
Просматривая старые записи нашел еще Панкарем опубликованного Ингерманландского Ящера (после разгрома оным Московии, по всей вероятности XD)

Опять же, с графическим интерфейсом на GTK. Тестировался на Puppy Slacko и на «большой» Slackware 12 версии:



Мопед, опять же, не мой.
Что умеет:
0. Последовательно пронумеровать все файлы в директории.
1. Найти префикс, например вида SCNJ-число, как на цифровых фотоаппаратах, и переименовать во что-то заданное пользователем (например kotik-число).
2. Сохранить переименованные файлы в другом каталоге.
3. Найти некоторую последовательность символов в имени файла и заменить их на другую (если другая последовательность не введена, то найденная последовательность будет удалена из имени файла)
4. Удалять из имени файла специальные символы и пробелы.
5. Заменять пробелы на знак подчеркивания (_).
6. Преобразовывать символы в имени и расширении файла в нижний регистр.
7. Транслителировать имена файлов.
С графическим интерфейсом.
Сразу говорю, мопеды не мои, а хороший знакомый кодер к тем скриптам только что интерфейсы и дорисовал. Работает под GTK 3 в любых графических средах, где есть соответствующие библиотеки:
Вариант #1: делает несколько файлов со скриншотами. Вариант #2: делает несколько скриншотов (сколько задано) в одном графическом файле.



Скрипт #1 на PasteBin
Скрипт #2 на PasteBin
Скачать скрипт #1 на MEGA.NZ
Скачать скрипт #2 на MEGA.NZ
Шли мы такие шли, и тут, хуяк,
Валяется математический знак <
Ну мы дальше пошли, второй нашли >
Рядом валялись кавычки «и» прочие ‘метки’ #;%^:?*().
Видать, кто-то проебал не =ную *разметку*/!
Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/346416.html
Прокомментировать заметку можно по ссылке выше.
Хотя бы взять человека и котика.
Вы никогда за котенком не убирали?
Стоит такой весь серьезный манагер среднего звена, и вытаскивает специальной лопаточкой из лотка дерьмо, может даже в пиджаке стоит и при галстуке. А котик его за руку хватает. Но самое интересное, что менеджер — тоже котик. Котиков (ну как обычно люди думают) они заводят ради фана, ради игры. А котик всю жизнь игрой воспринимает. Менеджер (который заводит котика) хотя бы осознает, что ему в жизни не хватает игры, он на работу ходит, что бы играть — ну либо с котиком, либо там по клубам дудку дуть или грибы жрать. А вот его начальник, он мразь, вата и крым, потому что котика у него нету, жену он ебет исключительно для «продолжения рода» в строго отведенные дни и в регламентированной позе, а менеджера штрафует за перекуры, например. Начальник совсем не котик. Менеджер котик где-то на 10%, котик, понятно, что котик. Но кто котика завел — он уже не говно.
Хотя на самом деле, это не люди котиков заводят, а котики людей. Но абсолютно честно — ради фана, заодно удаляя компоненту добытия жрат. Все равно как человек, изобретающий какой-нибудь термоядерный генератор, чтоб работать надо было меньше и халявы было больше (хотя бы в виде счетов за электричество и более чистого воздуха).
Все стремятся к котикам, к настоящему коммунизму, без ленина с марксом, капиталом, и государством. К котикам, у которых уже коммунизм.
Самое прикольное, что люди достигнут этого коммунизма (ну если раньше не переубивают друг-дружку) через капитализм, но своеобразный, децентрализованный и одновременно «с человеческим лицом», соединяющий в себе лучшие черты еврокапитализма, США-версии.
Мне так эти этапы видятся:
— децентрализация/регионализм
— либерализация/слом остатков централистско-патриархальной культуры, запретов, гнилых и устаревших «моралей»
— как вариант, либо новый поход для оцивилизовывания всяких диких традиционалов, типа арабов и рашкован и прочих северныхкорей, либо, что более вероятно — огораживание очагов инфекции извне, с возможным пропуском наружу лишь избирательно — не зараженных, а не как сейчас. Не вписавшиеся да, должны быть отправлены к черному булыжнику обмазанные салом в контейнерах, выложенных изнутри свиными шкурами.
Причем этапы не идут один за одним, а скорее будут идти параллельно с разной скоростью
Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/346188.html
Прокомментировать заметку можно по ссылке выше.
Чего-то тут
manroe666@ljr, вроде честный, проверенный и украинский, внезапно втопил за проект очередного нашистского быдла, которое делает полупостоновочные видео, доебывается до мирно отдыхающих людей (ну и хуй с ним, что с алкоголем, мирно же сидят), провоцирует драки, а потом по стародавнему нашистскому алгоритму пытается себя еще и жертвами представить.
Самое интересное, что в конце понравился честный мент, начальник какого-то московского отдела, который все правильно сказал — драки провоцируют и деньги зарабатывают.
Первый кандидат на орден «За возврат Крыма Украине». Когда будут такие ордена вручать, после смерти Хуйла, на change.org надо будет петицию за награждение этого мента организовать.
Лев говно, конечно.
Так вот, продолжая тему, в некоторых городах появились последователи (но в описываемом случае был явно тролль или нуб). Панкарь как-то месяц назад примерно рассказал следующую историю. Стоит он в своем городе К. на крыльце магазина и пьет местный разливняк, с крыльца не сойти, ибо дождь и в стакан накапает. К нему подходит какой-то сопляк.
С: Молодой человек, вы знаете, что пить пиво в общественном месте запрещено?
П: А я не обязан соблюдать ваши фашистские законы.
(делает вид, что ставит на сухое место стакан, но на деле вытаскивает из кармана газовый баллончик)
С: [срочно заходит в магазин]
Панкарь дожидается, пока тот выйдет.
Далее такой диалог:
П: А ты че, за фашистов, за этого льва против, за путина, за стопхам
С: Не, я на первом курсе псифака учусь, решил посмотреть, как отреагируют.
П: Ну в К. лучше так не делать. Можно по морде получить. По пиву? У меня брат на псифаке учится.
С: По пиву.
…. Прошло некоторое время ….
П: Слава Украине!
С: ээээ…
П: Ну я тебе ж обьяснил, героям слава отвечать надо!
С: Героям слава!
Занавес.
Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/345452.html
Прокомментировать заметку можно по ссылке выше.
Плюс бля еще оказалось, что у меня половина картинок в блоге на фашистских ресурсах — мэйлру и радикале, пришлось переносить на западные, плюс, блин, битые ссылки обнаружились. В общем 1000 с хуем постов проверить и все исправить, это вам не хуй собачий. Хорошо хоть копии постов почти со всеми картинками лежат по папочкам в локале, а яндекс-диск до сих пор не сдох, и все что нужно было скачано и скопировано на правильную антифашистскую mega.nz.
Глаза красные, но фашизм в отдельно взятом блоге побежден.
Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/344835.html
Прокомментировать заметку можно по ссылке выше.
Страшнее когда особо не знал, да еще и забыл.
Потребовалось тут одному товарищу ответить на вопрос как вращать объект во flash, вспомнил, что когда-то по этому поводу писал мануал:
Вращение объекта Movie Clip вокруг своего центра в Adobe Flash с использованием Actionsript 2.0. И вот жеж бля, в мануале очепятка в формуле, хорошо не в исходнике, но заебался формулу вспоминать, нет же няшного советского справочника по геометрии под рукой.
Исправил все, конечно.
Да и пост посимпатичнее сделал, видео добавил.
Но заебался я, товарищ, так что обещанный видеоурок будет позже. Видео-то уже есть, а вот озвучальник в запое/на даче, хз я через инет не вижу.
Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/344685.html
Прокомментировать заметку можно по ссылке выше.