[#] to 51t
vit01(mira, 1) — All
2014-05-29 15:43:00


Ты посмотрел фетчер, что в нём не так? Давай базу зачистим от мусора.

[#] Re: to 51t
51t(mira, 2) — vit01
2014-05-29 15:48:12


мельком глянул. ща ещё посмотрю - но я не знаю, что там не так. :)

[#] Re: to 51t
51t(mira, 2) — 51t
2014-05-29 15:50:51


ещё раз посмотрел - нет, я не понимаю, как оно работает, и проиграть не могу. :)

[#] Re: to 51t
vit01(mira, 1) — 51t
2014-05-29 15:51:51


Но питоновский фетчер ты же сам писал, php версия от него почти ничем не отличается.

[#] Re: to 51t
51t(mira, 2) — 51t
2014-05-29 15:54:41


я вот этой неразберихи вообще не понимаю:

function debundle($ea,$s) {
foreach(explode("\n",$s) as $n) {
$arr = explode(':',$n,2);
$mid=$arr[0]; $kod=$arr[1];
if ($mid!=="\n" & $mid !== "") {
file_put_contents('msg/'.$mid, b64d($kod));
file_put_contents('echo/'.$ea, $mid."\n", FILE_APPEND);
}
}
}

есть там \n, или нет. может быть, сначала нужно сделать strip, или trim, или как он там называется в php, на n. а то вообще непонятно, есть оно там или нет - такие неоднозначности меня убивают :)

мне чё-то вообще эта функция не нравится :) мутная она какая-то.

[#] Re: to 51t
vit01(mira, 1) — 51t
2014-05-29 15:57:26


> мне чё-то вообще эта функция не нравится :) мутная она какая-то.
Мне вот тоже не нравится. Попробую ещё разобраться.

[#] Re: to 51t
51t(mira, 2) — vit01
2014-05-29 15:57:56


> Но питоновский фетчер ты же сам писал, php версия от него почти ничем не отличается.

тут всё понятно:

def debundle(ea,s):
    for n in s.splitlines():
        mid,kod = n.split(':',1)
        open('msg/%s' % mid,'w').write(unp(kod))
        open('echo/%s' % ea, 'a').write(mid + '\n')

splitlines однозначно убирает все переводы строки, я точно знаю, что у меня есть или может быть в mid и kod :) этот код я легко в голове проиграю :)

[#] Re: to 51t
vit01(mira, 1) — 51t
2014-05-29 16:04:20


А вот в php, к сожалению, нет аналога splitlines, поэтому используется explode, который не всегда эффективен. Сейчас я попробовал заменить запись в debundle через функцию savemsg, + при сохранении писать название эхи. Запусти webfetch.php через curl и посмотри сам, в чём проблема :)

[#] Re: to 51t
51t(mira, 2) — vit01
2014-05-29 16:06:42


делай strip, или как он там называется, чтобы обрезать мусор - тогда будет однозначно строка без всяких левых символов. и уже на него делай explode(:) и всё, что там тебе нужно.

[#] Re: to 51t
vit01(mira, 1) — 51t
2014-05-29 16:23:54


Сделал trim вместо strip, но проблема не уходит:
vitya@netbook:~$ ./gatescript.sh
Запуск webfetch.php
fetch 'http://51t.ru/u/e/im.1406/lor-opennet.2014/game.rogue.14/obsd.talk.14/obsd.rss.14/obsd.news.14/obsd.bug.14/ii.dev.14/ii.test.14/ii.announce.14/anekdot.im.2014/to.doc.14/im.1404/bone.14'
fetch 'http://51t.ru/u/m/jWvSv3vN30v123xS6UIX'
obsd.news.14
error: this message exists
Запуск гейтования openbsd rss
Запуск гейта 1
Запуск гейта 2
При попытке удаления сообщения из базы, фетчер сохраняет его, а потом снова сообщает, что this message exists

[#] Re: to 51t
51t(mira, 2) — vit01
2014-05-29 16:26:59


так то другая проблема. :) я про проблму пустых строк говорил.

это у тебя сбой в той функции, которая разбирает списки. возможно, это связано с тем, что у тебя эха с одним сообщением...

[#] Re: to 51t
vit01(mira, 1) — 51t
2014-05-29 16:31:17


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