[#] Скрипт для автоматического тоссинга и отправки сообщений
spline(lenina,58) — All
2014-05-15 09:35:18


Пока продумывал скрипт для гейтования rss подумал о том, как должны текстовые файлы в сообщения на ноде. Нашёл тоссер.

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

* в директории client-toss создаётся поддиректория msgs, в которой находятся поддиректории с именами поинтов из points.txt
* файлы от поинтов складываются в эту иерархию
* запускается скрипт autotosspost.sh, который проходит эту иерархию, тоссит и отправляет сообщения.

После сообщения могут автоматически удаляться или складироваться в директорию histo, находящуюся в директории поинта (в данном случае слежение за неповторяющимися именами на совести поинта и сисопа). Если директоии histo нет, то скрипт её создаст автоматически.

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

+''+,,+''+ Файл: autotosspost.sh +''+,,+''+
#!/bin/bash

HISTORY=1 # Если установлено в 0, сообщения удаляются. Иначе переносятся в директорию histo

IIURL=http://127.0.0.1:62220/u/point
POINTS='../../points.txt' # Путь к списку поинтов относительно данного скрипта
MKTOSS='../../mktoss.py' # Путь к тоссеру относительно директории поинта

PWD=$(pwd)

for DIR in $(find ./msgs/ -type d); do
POINT=$(echo $DIR | sed 's/.\/msgs\///')
if [[ $POINT != '' ]]; then
PAUTH=$(cat $POINTS | grep $POINT | sed 's/:.*//')
echo $PAUTH
cd $DIR
for MSG in $(find ./ -maxdepth 1 -type f -name "*.txt"); do
python $MKTOSS $MSG
wget $IIURL -O - --post-data "pauth=$PAUTH&tmsg=$(cat $MSG.toss)"
if [[ $HISTORY == 0 ]]; then
rm $MSG
else
if ! [ -d ./histo ]; then
mkdir ./histo
fi
mv $MSG ./histo
fi
rm $MSG.toss
done
fi
cd $PWD
done
+''+,,+''+,,+''+,,+''+,,+''+,,+''+,,+''+,,+''+,,+''+

[#] Re: Скрипт для автоматического тоссинга и отправки сообщений
vit01(lenina,50) — spline
2014-05-15 15:12:26


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

А не лучше ли просто сделать один общий скрипт и передавать в параметрах ему имя поинта? То есть script.sh -p pointname? А он это имя просто в сообщение и подставит.

[#] Re: Скрипт для автоматического тоссинга и отправки сообщений
spline(lenina,58) — vit01
2014-05-15 15:15:52


>Php ноду разрабатываю я, можешь найти её в http://github.com/vit1-irk/ii-php. Предлагай, что добавить.

Ну иерархию я сделал ради хранения истории. Про параметр думал. Но если два поинта (ну вот хочется мне чтоб их было два в случае скриптов), то тогда всё равно придётся разделять текстовые файлы как то. Посмотрю как удобнее будет, но пока оставлю как есть. В конце концов, никто не мешает на своей ноде править скрипты как угодно =)