[>]
Re: Разделение Хабра
ii.14
Difrex(station13, 7) — spline
2014-10-24 11:11:15
>Может, развернём там ноду для хабра?
Ага, я так и хотел сделать =)
Уже почти свой фетчер хабры написал :D
[>]
Re: Вики
ii.14
vit01(mira, 1) — Difrex
2014-10-23 12:37:41
Отключил
Можно свободно править и создавать страницы
[>]
начинаю что-то делать
ii.14
vit01(mira, 1) — All
2014-10-18 17:01:18
Почистил блэклист и базу на ноде от плохих сообщений.
маленький скриптик для автоматизации процесса:
function getecho($echo) {
$echofile=explode("\n", file_get_contents("echo/".$echo));
array_pop($echofile);
return $echofile;
}
$blacklist=explode("\n", file_get_contents("./blacklist.txt"));
array_pop($blacklist);
$echolist=scandir("echo/");
$echos=[];
foreach($echolist as $echofile) {
if($echofile!="." && $echofile!="..") {
$echos[]=$echofile;
}
}
foreach($echos as $echo) {
$msgids=getecho($echo);
foreach($blacklist as $blackmsg) {
$key=array_search($blackmsg, $msgids);
if($key!=false) {
unset($msgids[$key]);
echo "deleted msgid ".$blackmsg." from echo ".$echo."\n";
}
}
$msgids=array_values($msgids);
echo "resaving echo ".$echo." to base\n";
file_put_contents("echo/".$echo, implode("\n", $msgids)."\n");
}
foreach($blacklist as $blackmsg) {
if(file_exists("msg/".$blackmsg)) {
echo "removing file ".$blackmsg." from base\n";
unlink("msg/".$blackmsg);
}
}
[>]
Re: Разделение Хабра
ii.14
vit01(mira, 1) — spline
2014-10-24 19:47:43
А у меня вот такой скрипт рассылки используется в твоём rss-фетчере
ii://lenta.dark.14
#!/usr/bin/python2
# -*- coding:utf8 -*-
import urllib,base64,os
authstr="мой пароль от ноды"
adress="http://ii-net.tk/ii/ii-point.php?q=/u/"
files=os.listdir("tosses") # каталог с раскиданными сообщениями
for file in files:
f=open("tosses/"+file).read()
code=base64.b64encode(f)
data = urllib.urlencode({'tmsg': code,'pauth': authstr})
out = urllib.urlopen(adress + 'point', data).read()
print out
if out.startswith('msg ok'):
os.remove("tosses/"+file)
Тут совсем всё просто и понятно
[>]
Re: Разделение Хабра
ii.14
spline(station13, 1) — Difrex
2014-10-24 13:47:39
>У меня стоят эти пакеты =)
Тогда надо смотреть что
html.tostring (page.find_class ("content html_format")
Выдаёт там. Я никаких воркэраундов не лепил просто и у себя на системе только тестировал.
[>]
Re: Разделение Хабра
ii.14
spline(station13, 1) — Difrex
2014-10-24 13:25:16
Ему нужны две дополнительные либы: feedparser и html2text. Причём второе требует соответствующий пакет в системе (это и послужило препятствием внедрению у меня на ноде).
[>]
Re: Разделение Хабра
ii.14
spline(station13, 1) — Difrex
2014-10-24 12:49:16
>Так, а как он должен работать, фетчер?
Кладём в директорию tools/client-toss вот такой скрипт и создаём поддиректорию msgs/RSS-bot. В неё скриптом habr2ii.py буду ссыпаться сообщения для тоссинга.
#!/bin/bash
#cd /srv/www/spline.rooker.ru/data/ii/tools/client-toss/
HISTORY=1 # Если установлено в 0, сообщения удаляются. Иначе переносятся в директорию histo
IIURL=http://127.0.0.1:62220/u/point
POINTS='../points.txt' # Путь к списку поинтов относительно данного скрипта
MKTOSS='../../mktoss.py' # Путь к тоссеру относительно директории поинта
ROOT_PWD=$(pwd)
for DIR in $(find ./msgs/ -maxdepth 1 -type d); do
POINT=$(echo $DIR | sed 's/.\/msgs\///')
if [[ $POINT != '' ]]; then
PAUTH=$(cat $POINTS | grep $POINT | sed 's/:.*//')
cd $DIR
for MSG in $(find ./ -maxdepth 1 -type f -name "*.txt"); do
python2.7 $MKTOSS $MSG
wget -q --header="Host: spline.rooker.ru" $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 $ROOT_PWD
done
Добавляем поинта в points.txt. Потом в habr2ii.py указываем путь для сыпания сообщений, линк на feed и название эхи.
$ python habr2ii.py && autotosspost.sh всё.
Немного путано, но это создавалось для моей ноды, а там такая система сложилась исторически и сейчас нет ни времени ни особого желания её переделывать.
[>]
Re: Разделение Хабра
ii.14
Difrex(station13, 7) — spline
2014-10-24 13:18:54
python habr2ii.py
Traceback (most recent call last):
File "habr2ii.py", line 40, in <module>
f.write (get_content (rss.entries[i].link).encode ("UTF-8"))
File "habr2ii.py", line 18, in get_content
text = h.handle (html.tostring (page.find_class ("content html_format")[0]))
IndexError: list index out of range
[>]
ii-search-tool
ii.14
vit01(mira, 1) — All
2014-10-31 17:09:08
Я таки сделал довольно простую, но очень полезную cli-утилиту для поиска сообщений в базе ii!
Возможности:
* Ищет по эхам, отправителям, получателям, адресам станции, по временным промежуткам, по сабжу и тексту сообщения
* Если надо искать по всем значениям параметра поиска, то просто жмёте Enter
* По первым 4 параметрам поиска можно вводить несколько значений через разделитель (пробел или || для адреса)
* Найденные сообщения сортируются по времени
Этот скрипт входит в состав моего ii-клиента и требует ii_functions.py для пары функций.
Скачать там же, в репозитории
https://github.com/vit1-irk/iicli-modular
[>]
Поддержка баз в ноде
ii.14
vit01(mira, 1) — All
2014-11-03 20:42:31
Я таки доделал поддержку Mysql в php ноде! Теперь нода поддерживает как стандартный формат хранения данных, так и её. Переключение между типами баз идёт всего лишь через пару строчек в конфиге! Индекс для удобства в базу не выносится, а остаётся в каталоге /echo. Для миграции со стандартной базы на Mysql (или просто для переноса сообщений в таблицу) надо после правки конфига всего лишь запустить скрипт mysql-migrate.php.
Пока что всё это находится в ветке features, завтра будет переезд моей ноды и тестирование в боевых условиях =) А когда новая нода достигнет полной стабильности, я отправлю изменения в master.
[>]
Re: начинаю что-то делать
ii.14
vit01(mira, 1) — vit01
2014-10-25 20:24:43
Ветка features php ноды: вынес в конфиг лимиты, немного подделал сохранение сообщений, добавил возможность логирования ошибок (см. конфиг). Тестов пока не проводил.
На очереди добавление работы с базой данных.
[>]
Re: Разделение Хабра
ii.14
spline(station13, 1) — Difrex
2014-10-31 14:57:26
Версии python-html2text и lxml какие? Пока я нашёл неприятный баг со старой версией html2text.
[>]
Re: начинаю что-то делать
ii.14
vit01(mira, 1) — vit01
2014-10-26 15:46:33
Ещё кое-что пофиксил и добавил заглушку на mysql класс. Код становится более запутанным, к сожалению. Придётся разбивать ii-functions.php на отдельные файлы и, наверное, вводить кое-где ООП.
Кстати, ii-search-tool скоро будет готов.
[>]
Re: Путь развития ii
ii.14
vit01(mira, 1) — vit01
2014-11-03 21:01:45
В общем, пункт 6 реализован, утилита для поиска из пункта 3 сделана. Думаю теперь доделывать пункт 3, а также сделать кроме ii-reader.php ещё и ii-writer.php или вообще в один файл всё засунуть.
[>]
PHP-нода && Re: начинаю что-то делать
ii.14
vit01(mira, 1) — vit01
2014-11-02 20:01:19
Работа над поддержкой mysql в php-ноде в полном разгаре! =)
Написал скрипт миграции с обычной базы на mysql, переворотил класс для работы с базой, поправил код ii-functions и ещё пары файлов для поддержки обеих баз + куча мелких фиксов. В настоящее время требуется внимательная ловля багов и оптимизация скорости скриптов.
Новая версия обещает быть вкусной и фичастой =) Следите за коммитами в ветке features репозитория!
[>]
Mysql
ii.14
vit01(mira, 1) — All
2014-11-04 12:07:43
Станция mira успешно мигрировала на базу данных Mysql! Фетчинг работает, RSS работает, постинг работает.
Последний багфикс ii-php от сегодняшнего дня в репозитории присутствует.
[>]
Re: Разделение Хабра
ii.14
spline(station13, 1) — Difrex
2014-11-05 15:00:15
Отлично, но для этого сгодился бы любой RSS-фетчер на самом деле =)
Соль была в репосте статей целиком в формате markdown. Как учёбу разгребу, попробую накалякать что-нить менее требовательное к сторонним библиотекам. Где-то на уровне lxml проблема, судя по всему. Причём отловить её мне так и не удалось -- на одном и том же линке получаю разные данные и никогда статью целиком. Всегда это какой-то кусок страницы.
[>]
Re: Разделение Хабра
ii.14
vit01(mira, 1) — vit01
2014-11-05 14:55:08
Оу, тут куча пустых мест, хтмл теги и до хабраката :(
Ну ничего, и так читать можно =)
Спасибо, что даже так у нас есть, чего почитать =).
[>]
Re: Разделение Хабра
ii.14
spline(station13, 1) — Difrex
2014-11-05 15:01:40
До кучи сделай замену вот такого вот [img habrastorage.org/files/112/e60/c80/112e60c801d640e9be72430911ab5abd.jpg" align="right" width="300] на директ-линки на изображения =)
[>]
Re: Разделение Хабра
ii.14
Difrex(station13, 7) — spline
2014-11-05 15:12:46
Да, проблемы есть. Набросал на коленке.
Можете в один пост баги написать, я все поправлю? :)
[>]
Re: Разделение Хабра
ii.14
vit01(mira, 1) — Difrex
2014-11-05 16:59:46
>Я просто заменяю > на '\n'
Лучше заменять на пробел, а то с \n читать совсем неудобно.
>Не вижу смысла тянуть всю статью. Она может быть не интересна совсем. А так, если захочется, то можно кликнуть на "читать дальше" и перейти на всю статью.
Логика понятна, жаль, что у нас тянутся все хабы, а не только те, которые нужны. Но просто удобнее не ходить по ссылкам постоянно, а читать всё в ii
>Куда сохранять? Линки же вроде остаются...
Теперь вижу :)
[>]
Re: Разделение Хабра
ii.14
vit01(mira, 1) — Difrex
2014-11-05 15:40:04
> Можете в один пост баги написать, я все поправлю? :)
1. Много пустых мест и отступов в содержимом
2. Отображается не вся статья, а только начало
3. Вместо нормальной читаемой разметки html-теги
4. Неплохо бы сохранять ссылки на картинки, чтобы посмотреть можно было
[>]
пустота
ii.14
vit01(mira, 1) — spline
2014-11-05 15:47:05
Мой фетчер ругается на invalid message: Qbp11Juz6v0TAexm3sdq в эхе ii.14, которое идёт с тебя. Оно пустое.
[>]
Re: Разделение Хабра
ii.14
Difrex(station13, 7) — vit01
2014-11-05 19:04:36
>жаль, что у нас тянутся все хабы, а не только те, которые нужны
Сейчас тянется только hub/linux/
Говорите, на какие подписаться :)
[>]
Re: пустота
ii.14
vit01(mira, 1) — Difrex
2014-11-05 17:02:35
>Да, мне сегодня пришло такое
А я во все свои фетчеры встроил проверку на плохие сообщения, поэтому invalid message не пройдёт :)
[>]
Re: Разделение Хабра
ii.14
Difrex(station13, 7) — vit01
2014-11-05 16:40:25
>1. Много пустых мест и отступов в содержимом
Я просто заменяю <br> на '\n'
>2. Отображается не вся статья, а только начало
Не вижу смысла тянуть всю статью. Она может быть не интересна совсем. А так, если захочется, то можно кликнуть на "читать дальше" и перейти на всю статью.
Хотя смысл во всей статье тоже есть. Подумаю над этим. Собственно говоря, добавить фетчер всей стать -- совсем не проблема.
>3. Вместо нормальной читаемой разметки html-теги
Работаю над этим =)
>4. Неплохо бы сохранять ссылки на картинки, чтобы посмотреть можно было
Куда сохранять? Линки же вроде остаются...
[>]
Re: Разделение Хабра
ii.14
Difrex(station13, 7) — Difrex
2014-11-05 19:29:35
Проба markdown. Там у них на хабре переодически прилетают всякие div, s и прочие html-теги. Надо придумать, как их правильно пропускать.
Кто там говорил про статью про парсилку хабры на хабре? =)
[>]
Email to ii
ii.14
vit01(mira, 1) — All
2014-11-10 15:31:00
Через пару дней будет готово и это! С получением и раскидкой писем я уже разобрался (с fetchmail и procmail), теперь надо дописать парсер и тоссер, и можно будет читать свою электронную почту с помощью ii.
[>]
Re: Email to ii
ii.14
vit01(mira, 1) — ntrknlmp.exe
2014-11-11 20:15:10
> Я сейчас в другой плоскости занимаюсь рефакторингом клиента.
Интересно узнать, в какой ;-)
[>]
Re: Email to ii
ii.14
vit01(mira, 1) — ntrknlmp.exe
2014-11-11 16:17:55
> с вложениями можно будет работать?
Я думал над этим и решил, что это не нужно. Просто дело в том, что здесь, в ii, даже картинки смотреть не очень-то получается, да и как это сделать? Через base64-ююки это очень неудобно, и портится база, загружать на внешний сервис - тоже не нужно, а, в случае чего, имеется веб-интерфейс почтового сервиса.
[>]
Re: Email to ii
ii.14
ntrknlmp.exe(mira, 9) — vit01
2014-11-11 18:15:42
>Кстати, интересно, когда таки можно будет нормально пользоваться уведомлениями в клиенте? =)
Не знаю, гляну вечером наверное..Если там не долго, исправлю. Я сейчас в другой плоскости занимаюсь рефакторингом клиента.
[>]
Re: Email to ii
ii.14
vit01(mira, 1) — ntrknlmp.exe
2014-11-11 18:08:05
Тогда всё-таки лучше не надо. Нагромоздить протокол мы всегда успеем, и лучше делать это тогда, когда это действительно необходимо.
Кстати, интересно, когда таки можно будет нормально пользоваться уведомлениями в клиенте? =) Чтобы всегда быть в курсе новых событий и новостей.