[#] Сделано
vit01(mira, 1) — All
2014-05-28 07:33:53


Прогнал проверяльщиком и исправляльщиком базу, загрузил обратно на узел.

[#] Re: Сделано
51t(mira, 2) — vit01
2014-05-28 07:38:27


некоторый прогресс есть - вместо 1056 сообщений no message их стало 99

впрочем, на станции spline их было 96. наверное, это его пустые сообщения :)

сейчас будете их гонять туда-сюда :)

[#] Re: Сделано
vit01(mira, 1) — 51t
2014-05-28 07:41:22


Наверное, он их сначала скачал у меня, потом я их удалил, потом снова скачал, потом spline их скачает у меня.

[#] Re: Сделано
51t(mira, 2) — vit01
2014-05-28 07:43:04


короче, от php-ноды надо оставить только ноду. роботы сделать в виде внешних пойнтов, а нода должна быть только нодой, но чистой, красивой и корректной, и больше не делать ничего.

один фиг, самая интересная эха, cvs, так ни у кого и не ходит :)

[#] Re: Сделано
vit01(mira, 1) — 51t
2014-05-28 07:50:29


> короче, от php-ноды надо оставить только ноду. роботы сделать в виде внешних пойнтов, а нода должна быть только нодой, но чистой, красивой и корректной, и больше не делать ничего.
Лучше мы всё починим, и будет всё хорошо :)

> один фиг, самая интересная эха, cvs, так ни у кого и не ходит :)
Пока что я не видел, чтобы туда что-то написали ещё. А gate3 опять сохраняет ту же самую статью...

[#] Re: Сделано
51t(mira, 2) — vit01
2014-05-28 07:53:35


нафиг писать роботы на php, если есть python? :) на python у меня всё ходит, всё работает и всё под контролем, любую проблему могу исправить

а задача php ноды - быть закинутой на любой хостинг и там выполнять свои обязанности. когда их будет выполнять - тогда уже можно будет что-то прикручивать...

покажи мне ноду, которая работает у тебя, прям щас...

[#] Re: Сделано
vit01(mira, 1) — 51t
2014-05-28 08:11:19


> нафиг писать роботы на php, если есть python? :) на python у меня всё ходит, всё работает и всё под контролем, любую проблему могу исправить
Хостинг питон не поддерживает, поэтому php. Всё логично.

> покажи мне ноду, которая работает у тебя, прям щас...
Вот эта нода и работает. Правда встречаются неполадки с гейтами, но нода работает.

[#] Re: Сделано
51t(mira, 2) — vit01
2014-05-28 08:15:03


> Хостинг питон не поддерживает, поэтому php. Всё логично.

роботов можно запускать хоть из дома, хоть откуда угодно

> Вот эта нода и работает. Правда встречаются неполадки с гейтами, но нода работает.

какая вот эта? я хочу исходники посмотреть. если api корректен, то хоть клиент пишет, хоть робот, косяков оно пропустить не должно.

[#] Re: Сделано
vit01(mira, 1) — 51t
2014-05-28 08:36:29


https://github.com/vit1-irk/ii-php
Посмотри, ты же всё-таки api лучше знаешь.
(А webfetch в гите уже не актуален, потом коммит сделаю).

[#] Re: Сделано
51t(mira, 2) — vit01
2014-05-28 08:52:41


ну, собственно, вся запись идёт здесь:

function savemsg($h,$e,$t) {
	checkEcho($e);
	if(checkHash($h)) {
		if(!file_exists('msg/'.$h)) {
			$fp = fopen('msg/'.$h, 'wb'); fwrite($fp, $t); fclose($fp);
			$fp = fopen('echo/'.$e, 'ab'); fwrite($fp, "$h\n"); fclose($fp);
			echo "message saved: ok\n";
		} else {
			echo "error: this message exists\n";
		}
	} else echo "error: incorrect msgid\n";
}
больше, насколько я понимаю, никто сообщения не пишет?

у меня тут такие вопросы:

1. что делает checkEcho? где оно вываливается с ошибкой?

2. что делает checkHash??? является ли '' валидным хэшем на этом чекере?

3. if(!file_exists('msg/'.$h)) - вообще-то это неправильно, потому что один кривой файл может не позволить перезапись. если эха требует записи файла, его надо записывать, не проверяя на валидность.

4. ага, у тебя ещё и в point_msg запись идёт, сейчас его разберу.

[#] Re: Сделано
51t(mira, 2) — 51t
2014-05-28 08:56:42


но эта функция не может делать нулевые файлы. там бы хоть ii/ok было бы. но всё равно.


function msg_to_ii($echo,$msg,$username,$addr,$time,$receiver,$subj,$repto) {
	checkEcho($echo);
	if($repto) {
		$repto="/repto/".$repto;
	}

	$msgwrite="ii/ok$repto
$echo
$time
$username
$addr
$receiver
$subj\n\n$msg";
	if(count($msgwrite)>64099) die("error:msg big!");

	$msgid=hsh($msgwrite);

	@$echofile=fopen("echo/".$echo,"a");
	@fputs($echofile,$msgid."\n"); fclose($echofile);
	@$msgfile=fopen("msg/".$msgid,"w");
	@fputs($msgfile,$msgwrite);
	
	fclose($msgfile);
	return $msgid;
}

5. см. 1

6. подавление ошибок, особенно в данном случае - это очень плохо. там не должно быть ошибок

[#] Re: Сделано
51t(mira, 2) — 51t
2014-05-28 08:56:42


7. тут, кстати, тоже нет проверки на дубли в эхе.

[#] Re: Сделано
vit01(mira, 1) — 51t
2014-05-28 08:57:32


Основная запись идёт в msg_to_ii, savemsg используется для пуша. Проверялки не всегда рабочие, когда-то ты просил поставить на них заглушка, поэтому посмотри ещё.

[#] Re: Сделано
51t(mira, 2) — vit01
2014-05-28 09:06:55


> Основная запись идёт в msg_to_ii

Как оно может создать пустое сообщение? Мне непонятно.

[#] Re: Сделано
vit01(mira, 1) — 51t
2014-05-28 09:21:49


Во-первых, в фетчере используется своё собственное сохранение сообщений, во-вторых, буквально вчера нода была другая, поэтому были проблемы. Сегодня потестируем именно эту ноду.

[#] Re: Сделано
51t(mira, 2) — vit01
2014-05-28 09:23:46


> Во-первых, в фетчере используется своё собственное сохранение сообщений

так и используй ii-functions, не зря ты его писал :)