gentoo.ru
LeechCraft
leechcraft@conference.gentoo.ru
Пятница, 25 июня 2010< ^ >
0xd34df00d установил(а) тему: http://leechcraft.org | Баг/предложение? http://leechcraft.org/projects/leechcraft/issues | Исходники: git://github.com/0xd34df00d/leechcraft.git | LeechCraft Stable: 0.3.0; unstable: 0.3.65 | Логи: http://tinyurl.com/leechcraft-logs
Конфигурация комнаты
Участники комнаты

GMT+4
[00:14:28] maksbotan вышел(а) из комнаты
[00:18:09] qnikst вышел(а) из комнаты
[00:21:57] slepnoga вошёл(а) в комнату
[00:24:00] slepnoga вышел(а) из комнаты
[00:43:14] NightNord вышел(а) из комнаты
[02:14:59] 0xd34df00d вышел(а) из комнаты
[02:15:14] 0xd34df00d вошёл(а) в комнату
[04:10:28] 0xd34df00d вышел(а) из комнаты: Replaced by new connection
[04:10:38] 0xd34df00d вошёл(а) в комнату
[10:12:44] maksbotan вошёл(а) в комнату
[10:13:41] <maksbotan> 0xd34df00d: рассказывай что делать
[10:14:01] <maksbotan> как я понял раз addItem слот значит надо послать в него сигнал?
[10:17:14] <maksbotan> так, вроде понимаю
[10:17:49] <maksbotan> хотя стоп
[10:17:59] <maksbotan> для коннекта же нужен истанс QApplication
[10:28:06] <0xd34df00d> Ну.
[10:28:08] <0xd34df00d> Он уже есть.
[10:28:20] <0xd34df00d> Потому что основной личкрафтовый модуль этот куапп крутит.
[10:28:53] <maksbotan> так, я затупил
[10:29:01] <maksbotan> нашел туториал по 3-им кутям
[10:29:11] <maksbotan> а в 4 иожно так:
[10:29:12] <maksbotan> Qt.QObject.connect(button, Qt.SIGNAL("clicked()"), sys.exit)
[10:29:25] <0xd34df00d> Ну да.
[10:29:41] <maksbotan> первый аргумент - наследник QObject?
[10:29:45] <0xd34df00d> Но только тут одна проблема — надо, чтобы посылающий объект был куобджектом.
[10:30:30] <maksbotan> т.е. я должен наследовать воркер от куобжекта и определить там сигнал?
[10:31:24] <maksbotan> 0xd34df00d: эй
[10:32:27] <0xd34df00d> Хм...
[10:32:29] <0xd34df00d> Я думаю.
[10:33:16] <maksbotan> если что то в питоне есть множественное наследование
[10:33:26] <0xd34df00d> maksbotan: можешь поковырять QMetaObject.invokeMethod.
[10:33:40] <maksbotan> сумасшествие
[10:33:44] <maksbotan> проще сигнал сделать
[10:33:49] <0xd34df00d> Не думаю.
[10:33:54] <maksbotan> почиму?
[10:34:02] <0xd34df00d> QMetaObject.invokeMethod (model, addItem, bla, foo)
[10:34:13] <0xd34df00d> Осталось узнать, что писать вместо bla и foo.
[10:34:30] <maksbotan> хм
[10:34:35] <maksbotan> ну посмотрим
[10:34:47] <maksbotan> твои плюсы это какаято черная магия
[10:35:24] <0xd34df00d> maksbotan: http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qmetaobject.html#invokeMethod
[10:35:31] <maksbotan> ок
[10:35:54] <0xd34df00d> Тебе нужно юзать Qt.QueuedConnection.
[10:36:36] <maksbotan> я понял
[10:39:06] <maksbotan> слушай я не могу найти этот Qt.QueuedConnection
[10:39:10] <maksbotan> в каком он модуле?
[10:39:16] <0xd34df00d> Это енама кусок.
[10:39:20] <0xd34df00d> А ты его как ищешь?
[10:39:26] <0xd34df00d> Это параметр invokeMethod'у ваще.
[10:39:38] <0xd34df00d> И все это в QtCore, да.
[10:40:21] <maksbotan> а то есть передавать его циферкой?
[10:40:59] <0xd34df00d> Да зачем.
[10:41:07] <0xd34df00d> Передаешь Qt.QueuedConnection, и все.
[10:41:09] <0xd34df00d> Должно работать.
[10:41:56] <maksbotan> ща попробую
[10:42:15] <maksbotan> QString retVal;
QMetaObject.invokeMethod(obj, "compute", Qt.DirectConnection,
                           Q_RETURN_ARG(QString, retVal),
                           Q_ARG(QString, "sqrt"),
                           Q_ARG(int, 42),
                           Q_ARG(double, 9.7));
[10:42:24] <maksbotan> почему эта хренота в питоней доке?
[10:43:07] <0xd34df00d> А что?
[10:43:17] <0xd34df00d> Хм...
[10:43:20] <maksbotan> ну я не понял абсолютно как юзать этот метод
[10:43:24] <0xd34df00d> У тебя ж есть Q_ARG.
[10:43:25] <0xd34df00d> Смотри.
[10:43:32] <0xd34df00d> Нам нужна следующая перегрузк.
[10:43:33] <maksbotan> где это он у меня есть?
[10:43:46] <0xd34df00d> In [5]: Qt.QueuedConnection
Out[5]: 2
In [6]: Q_ARG
Q_ARG
In [6]: Q_ARG
Out[6]: <built-in function Q_ARG>
[10:44:00] <maksbotan> круто
[10:44:19] <0xd34df00d> maksbotan: так вот. Этот метод принимает объект, у которого надо вызвать метаметод, имя метаметода и параметры для него.
[10:44:25] <0xd34df00d> Параметры задаются в такой Q_ARG'овой форме.
[10:44:35] <maksbotan> ок
[10:45:27] <maksbotan> >>> Qt.QueuedConnection
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'QueuedConnection'
[10:45:32] <maksbotan> ?
[10:45:50] <0xd34df00d> from PyQt4.QtCore import * сделал?
[10:46:09] <maksbotan> нууууу
[10:46:25] <maksbotan> >>> from PyQt4 import Qt
[10:46:34] <maksbotan> ибо import * это нехорошо
[10:49:35] <0xd34df00d> Ну, как тебе угодно )
[10:56:27] <maksbotan> так, он опять падает
[10:56:31] <maksbotan> а дам трейс
[10:56:33] <maksbotan> ща*
[10:57:31] <maksbotan> http://paste.pocoo.org/show/229694/
[10:57:36] <maksbotan> это сам скрипт
[10:58:53] <maksbotan> (gdb) bt
#0  0xb636b021 in memcpy () from /lib/libc.so.6
#1  0xb66be79d in QString::realloc (this=0x8c9f1d0, alloc=151467056) at /usr/include/bits/string3.h:52
#2  0xb66be8d6 in QString::realloc (this=0x8c9f1d0) at tools/qstring.cpp:1250
#3  0xb66be90e in QString::utf16 (this=0x8c9f1d0) at tools/qstring.cpp:4679
#4  0xb66be9d3 in QString::toUcs4 (this=0x8c9f1d0) at tools/qstring.cpp:3574
#5  0xb1c350f4 in ?? () from /usr/lib/python2.6/site-packages/PyQt4/QtCore.so
#6  0xb1b56397 in ?? () from /usr/lib/python2.6/site-packages/PyQt4/QtCore.so
#7  0xb1dc37b4 in _PyObject_Str () from /usr/lib/libpython2.6.so.1.0
#8  0x09423d1c in ?? ()
#9  0x00000000 in ?? ()
(gdb)
[10:58:59] <maksbotan> тоже самое
[10:59:37] <maksbotan> видимо все таки придется возиться с сокетами
[11:05:11] <0xd34df00d> Щя.
[11:05:14] <0xd34df00d> Щя гляну, 5 сек.
[11:23:27] <0xd34df00d> maksbotan: не, оно не в этом месте падает.
[11:23:37] <maksbotan> а в каком?
[11:23:44] <maksbotan> там где я поток запускаю?
[11:39:03] <0xd34df00d> Даже не совсем.
[11:39:40] <maksbotan> 0xd34df00d: мне-то что делать?
[11:39:45] <maksbotan> у тебя скрипт тоже виснет?
[11:39:55] <0xd34df00d> Щас, я придумаю, как сделать, чтобы и не текло, и не висло.
[11:40:12] <0xd34df00d> У тебя запускается тред, и переменные выходят из скоупа, по факту.
[11:40:19] <maksbotan> что?
[11:40:38] <maksbotan> учти что это не совсем потоки
[11:40:45] <maksbotan> тут же GIL
[11:50:49] <0xd34df00d> maksbotan: это.
[11:50:56] <maksbotan> ?
[11:50:57] <0xd34df00d> maksbotan: перенеси инициализацию самой query в конструктор треда.
[11:51:05] <maksbotan> зачем?
[11:51:08] <0xd34df00d> Чтобы string не юзать после того, как ты вернешься из хука.
[11:51:16] <0xd34df00d> Если любопытно — потом объясню причину.
[11:51:25] <0xd34df00d> Либо делай deep copy стринга, но я не знаю, как это в питоне делается.
[11:52:01] <maksbotan> ты имеешь в виду     query = urllib.urlencode({'q' : self.query})
        url = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&%s" % (query)
[11:52:11] <0xd34df00d> Дада.
[11:52:22] <0xd34df00d> Пусть квери сразу урлом будет, чо )
[11:53:18] <maksbotan> ок
[11:54:12] <maksbotan> UnicodeEncodeError: 'ascii' codec can't encode character u'\u0438' in position 0: ordinal not in range(128)
[11:54:23] <maksbotan> это видимо у меня проблема
[11:54:49] <maksbotan> но даже с английскими словами он все равно  не работает
[11:55:32] <0xd34df00d> Хм.
[11:55:46] <maksbotan> у себя проверил?
[11:55:50] <0xd34df00d> Учитывай, что в string уникод.
[11:56:17] <maksbotan> так да
[11:56:33] <maksbotan> но если я английские буквы ввожу в адресар ошибки нет
[11:56:38] <maksbotan> но и результатов тоже
[11:56:53] <maksbotan> стопаньки
[11:56:53] <0xd34df00d> А они тебе вообще приходят?
[11:56:56] <maksbotan> Exception in thread Thread-2:
Traceback (most recent call last):
  File "/usr/lib/python2.6/threading.py", line 532, in __bootstrap_inner
    self.run()
  File "/home/maks/.leechcraft/plugins/scriptable/python/urlcomplete/urlcomplete.py", line 49, in run
    json_reply = json.load(response)
NameError: global name 'json' is not defined
Exception in thread Thread-1:
Traceback (most recent call last):
  File "/usr/lib/python2.6/threading.py", line 532, in __bootstrap_inner
    self.run()
  File "/home/maks/.leechcraft/plugins/scriptable/python/urlcomplete/urlcomplete.py", line 49, in run
    json_reply = json.load(response)
NameError: global name 'json' is not defined
Exception in thread Thread-3:
Traceback (most recent call last):
  File "/usr/lib/python2.6/threading.py", line 532, in __bootstrap_inner
    self.run()
  File "/home/maks/.leechcraft/plugins/scriptable/python/urlcomplete/urlcomplete.py", line 49, in run
    json_reply = json.load(response)
NameError: global name 'json' is not defined
[11:57:31] <0xd34df00d> Бггггг.
[11:57:31] <maksbotan> это у меня косяк, ща пофикшу
[11:59:00] <maksbotan> ну е мае
[11:59:04] <maksbotan> при выходе сегфолт
[11:59:57] <maksbotan> но вывода от плагина все равно нет
[12:00:41] <0xd34df00d> Ну понатыкай там принтов отладочных, чо.
[12:00:52] <maksbotan> #0  0x086adca8 in ?? ()
(gdb) bt
#0  0x086adca8 in ?? ()
#1  0xb1f776b8 in method_varargs_call_handler (_self_and_name_tuple=0xb1d99d2c, _args=0x930238c)
    at /var/tmp/portage/dev-libs/qrosspython-9999/work/qrosspython-9999/src/bindings/python/qrosspython/cxx/cxx_extensions.cxx:1339
#2  0xb1e59bdf in PyCFunction_Call () from /usr/lib/libpython2.6.so.1.0
#3  0xb1d99d2c in ?? ()
#4  0x0930238c in ?? ()
#5  0x00000000 in ?? ()
(gdb)
[12:01:07] <0xd34df00d> Это при выходе?
[12:01:33] <maksbotan> да
[12:01:40] <maksbotan> т.е. я нажимаю выход
[12:01:43] <maksbotan> сегфолт
[12:01:45] <maksbotan> бектрейс
[12:01:48] <maksbotan> все дела
[12:02:26] <maksbotan> так, снова мой косяк
[12:02:34] <maksbotan> Exception in thread Thread-3:
Traceback (most recent call last):
  File "/usr/lib/python2.6/threading.py", line 532, in __bootstrap_inner
    self.run()
  File "/home/maks/.leechcraft/plugins/scriptable/python/urlcomplete/urlcomplete.py", line 54, in run
    Qt.QMetaObject.invokeMethod(
NameError: global name 'Qt' is not defined
[12:03:44] <maksbotan> AttributeError: 'WorkerThread' object has no attribute 'model'
[12:03:48] <0xd34df00d> Бектрейс при выходе я попробую пофиксить.
[12:04:19] <0xd34df00d> maksbotan: у тебя ж self.cb, а не self.model.
[12:04:24] <maksbotan> ога
[12:04:26] <maksbotan> пофиксил
[12:04:47] <maksbotan> уже интересней
[12:04:48] <maksbotan> Exception in thread Thread-2:
Traceback (most recent call last):
  File "/usr/lib/python2.6/threading.py", line 532, in __bootstrap_inner
    self.run()
  File "/home/maks/.leechcraft/plugins/scriptable/python/urlcomplete/urlcomplete.py", line 59, in run
    Qt.Q_ARG(Qt.QString, result['url']) )
TypeError: arguments did not match any overloaded call:
  QMetaObject.invokeMethod(QObject, str, Qt.ConnectionType, QGenericReturnArgument, QGenericArgument value0=QGenericArgument(0,0), QGenericArgument value1=QGenericArgument(0,0), QGenericArgument value2=QGenericArgument(0,0), QGenericArgument value3=QGenericArgument(0,0), QGenericArgument value4=QGenericArgument(0,0), QGenericArgument value5=QGenericArgument(0,0), QGenericArgument value6=QGenericArgument(0,0), QGenericArgument value7=QGenericArgument(0,0), QGenericArgument value8=QGenericArgument(0,0), QGenericArgument value9=QGenericArgument(0,0)): argument 1 has unexpected type 'QrossPythonExtension'
  QMetaObject.invokeMethod(QObject, str, QGenericReturnArgument, QGenericArgument value0=QGenericArgument(0,0), QGenericArgument value1=QGenericArgument(0,0), QGenericArgument value2=QGenericArgument(0,0), QGenericArgument value3=QGenericArgument(0,0), QGenericArgument value4=QGenericArgument(0,0), QGenericArgument value5=QGenericArgument(0,0), QGenericArgument value6=QGenericArgument(0,0), QGenericArgument value7=QGenericArgument(0,0), QGenericArgument value8=QGenericArgument(0,0), QGenericArgument value9=QGenericArgument(0,0)): argument 1 has unexpected type 'QrossPythonExtension'
  QMetaObject.invokeMethod(QObject, str, Qt.ConnectionType, QGenericArgument value0=QGenericArgument(0,0), QGenericArgument value1=QGenericArgument(0,0), QGenericArgument value2=QGenericArgument(0,0), QGenericArgument value3=QGenericArgument(0,0), QGenericArgument value4=QGenericArgument(0,0), QGenericArgument value5=QGenericArgument(0,0), QGenericArgument value6=QGenericArgument(0,0), QGenericArgument value7=QGenericArgument(0,0), QGenericArgument value8=QGenericArgument(0,0), QGenericArgument value9=QGenericArgument(0,0)): argument 1 has unexpected type 'QrossPythonExtension'
  QMetaObject.invokeMethod(QObject, str, QGenericArgument value0=QGenericArgument(0,0), QGenericArgument value1=QGenericArgument(0,0), QGenericArgument value2=QGenericArgument(0,0), QGenericArgument value3=QGenericArgument(0,0), QGenericArgument value4=QGenericArgument(0,0), QGenericArgument value5=QGenericArgument(0,0), QGenericArgument value6=QGenericArgument(0,0), QGenericArgument value7=QGenericArgument(0,0), QGenericArgument value8=QGenericArgument(0,0), QGenericArgument value9=QGenericArgument(0,0)): argument 1 has unexpected type 'QrossPythonExtension
[12:05:20] <maksbotan> может все таки просто метод дернуть?
[12:05:34] <0xd34df00d> Метод дернешь — получишь бяку.
[12:05:59] <0xd34df00d> Вместо двоечки напиши Qt.QueuedConnection.
[12:06:04] <maksbotan> нельзя
[12:06:07] <0xd34df00d> Почему?
[12:06:09] <maksbotan> нет такого типа
[12:06:13] <maksbotan> нигде нет
[12:06:30] <0xd34df00d> Тогда ваще убери этот параметр.
[12:06:37] <maksbotan> ща попробую
[12:07:49] <maksbotan> хоха
[12:07:52] <0xd34df00d> Чо?
[12:08:08] <maksbotan> если дергать метод все проходит гладко, без експшнов
[12:08:12] <0xd34df00d> Чоправда?
[12:08:13] <maksbotan> но и без результата тоже
[12:08:13] <0xd34df00d> Хм...
[12:08:23] <0xd34df00d> Посмотри в debug.log/warning.log
[12:08:26] <maksbotan> ща
[12:08:49] <0xd34df00d> И дай скрипт плиз в том виде, в котором он у тебя щас )
[12:09:25] <maksbotan> [25.06.2010 12:06:54.155] [0x811edb8] [076] Qross: "PythonType<QVariant>::toPyObject(): converting with SIP QString (siptypedef -1312165600)"
[25.06.2010 12:06:54.403] [0x811edb8] [078] Qross: "PythonType<QVariant>::toPyObject(): converting with SIP QString (siptypedef -1312165600)"
[25.06.2010 12:06:54.450] [0x811edb8] [079] Qross: "PythonType<QVariant>::toPyObject(): converting with SIP QString (siptypedef -1312165600)"
[25.06.2010 12:07:11.654] [0x811edb8] [093] Qross: "PythonScript::Destructor."
[25.06.2010 12:07:22.058] [0x811edb8] [094] void LeechCraft::Util::CustomCookieJar::CollectGarbage() 51 51
.leechcraft/debug.log lines 2270-2288/2288 (END)
[12:09:29] <maksbotan> это из дебага
[12:09:43] <0xd34df00d> Нормуль.
[12:09:52] <maksbotan> в ворнинге все как обычно
[12:10:11] <maksbotan> http://paste.pocoo.org/show/229707/
[12:10:14] <maksbotan> вот скрипт
[12:12:11] <maksbotan> Traceback (most recent call last):
  File "/usr/lib/python2.6/threading.py", line 532, in __bootstrap_inner
    self.run()
  File "/home/maks/.leechcraft/plugins/scriptable/python/urlcomplete/urlcomplete.py", line 59, in run
    Qt.Q_ARG(Qt.QString, result['url']) )
TypeError: arguments did not match any overloaded call:
  QMetaObject.invokeMethod(QObject, str, Qt.ConnectionType, QGenericReturnArgument, QGenericArgument value0=QGenericArgument(0,0), QGenericArgument value1=QGenericArgument(0,0), QGenericArgument value2=QGenericArgument(0,0), QGenericArgument value3=QGenericArgument(0,0), QGenericArgument value4=QGenericArgument(0,0), QGenericArgument value5=QGenericArgument(0,0), QGenericArgument value6=QGenericArgument(0,0), QGenericArgument value7=QGenericArgument(0,0), QGenericArgument value8=QGenericArgument(0,0), QGenericArgument value9=QGenericArgument(0,0)): argument 1 has unexpected type 'QrossPythonExtension'
  QMetaObject.invokeMethod(QObject, str, QGenericReturnArgument, QGenericArgument value0=QGenericArgument(0,0), QGenericArgument value1=QGenericArgument(0,0), QGenericArgument value2=QGenericArgument(0,0), QGenericArgument value3=QGenericArgument(0,0), QGenericArgument value4=QGenericArgument(0,0), QGenericArgument value5=QGenericArgument(0,0), QGenericArgument value6=QGenericArgument(0,0), QGenericArgument value7=QGenericArgument(0,0), QGenericArgument value8=QGenericArgument(0,0), QGenericArgument value9=QGenericArgument(0,0)): argument 1 has unexpected type 'QrossPythonExtension'
  QMetaObject.invokeMethod(QObject, str, Qt.ConnectionType, QGenericArgument value0=QGenericArgument(0,0), QGenericArgument value1=QGenericArgument(0,0), QGenericArgument value2=QGenericArgument(0,0), QGenericArgument value3=QGenericArgument(0,0), QGenericArgument value4=QGenericArgument(0,0), QGenericArgument value5=QGenericArgument(0,0), QGenericArgument value6=QGenericArgument(0,0), QGenericArgument value7=QGenericArgument(0,0), QGenericArgument value8=QGenericArgument(0,0), QGenericArgument value9=QGenericArgument(0,0)): argument 1 has unexpected type 'QrossPythonExtension'
  QMetaObject.invokeMethod(QObject, str, QGenericArgument value0=QGenericArgument(0,0), QGenericArgument value1=QGenericArgument(0,0), QGenericArgument value2=QGenericArgument(0,0), QGenericArgument value3=QGenericArgument(0,0), QGenericArgument value4=QGenericArgument(0,0), QGenericArgument value5=QGenericArgument(0,0), QGenericArgument value6=QGenericArgument(0,0), QGenericArgument value7=QGenericArgument(0,0), QGenericArgument value8=QGenericArgument(0,0), QGenericArgument value9=QGenericArgument(0,0)): argument 1 has unexpected type 'QrossPythonExtension
[12:12:40] <0xd34df00d> Хм.
[12:12:41] <maksbotan> дело не в connectiontype
[12:12:43] <0xd34df00d> Оно чо-то только при выходе.
[12:12:51] <0xd34df00d> Ну, я из личкрафтов вышел, оно мне и распечатало все.
[12:13:02] <maksbotan> у тебя походо QrossPythonExtension не наследован от куобжекта
[12:13:09] <maksbotan> 0xd34df00d: у меня тоже только при выходе
[12:22:40] <0xd34df00d> Хм, ну у меня иногда чего-то добавляется.
[12:23:10] <maksbotan> иногда это когда?
[12:23:25] <0xd34df00d> А вот не знаю пока.
[12:23:28] <0xd34df00d> Не установил еще закономерности.
[12:24:20] <0xd34df00d> maksbotan: можешь сделать так, чтобы старые треды прибивались, когда новый создается?
[12:24:32] <maksbotan> надо попробовать
[12:24:36] <maksbotan> а оно мешает?
[12:25:18] <0xd34df00d> Ну, приходят же старые автокомплиты.
[12:25:20] <0xd34df00d> Нехорошо.
[12:25:25] <maksbotan> ясно
[12:25:35] <maksbotan> с каким словом у тебя работает?
[12:28:36] <0xd34df00d> Начинаю вводить something
[12:28:44] <0xd34df00d> Начиная с som работает.
[12:28:50] <0xd34df00d> Ничего не возвращается только на somethi
[12:28:54] <maksbotan> ясно
[12:29:47] <maksbotan> 0xd34df00d: хм
[12:29:51] <maksbotan> а у меня ничего
[12:30:05] <maksbotan> подожди
[12:30:09] <maksbotan> та же ошибка
[12:30:21] <maksbotan> TypeError: arguments did not match any overloaded call:
[12:31:19] <0xd34df00d> Вот моя версия сейчас:
[12:31:23] <0xd34df00d> http://paste.pocoo.org/show/229712/
[12:31:36] <0xd34df00d> maksbotan: олсо, ты делаешь неоценимую работу, ибо помогает развивать и улучшать scripting api.
[12:32:23] <maksbotan> а
[12:32:31] <maksbotan> тоесть в топку метаобъекты?
[12:33:05] <0xd34df00d> Ну да.
[12:33:07] <0xd34df00d> Вроде все и так работает.
[12:33:08] <maksbotan> ок
[12:33:11] <0xd34df00d> Что весьма странно для меня.
[12:33:39] <maksbotan> если я правильно понял то на уровне ядра это все один поток
[12:33:47] <maksbotan> кстати
[12:34:03] <maksbotan> расскажи зачем нужно было определения query переносить в конструктор?
[12:35:14] <0xd34df00d> Чтобы не использовать string в отдельном потоке.
[12:35:29] <0xd34df00d> Потому что как только ты вернулся из хука. то string перестает существовать.
[12:35:43] <maksbotan> ясно
[12:36:06] <maksbotan> а у меня не работает
[12:37:52] <maksbotan> 0xd34df00d: :'(
[12:37:57] <maksbotan> риальни не работае
[12:38:14] <maksbotan> хотя резалты от гугла есть
[12:54:01] <0xd34df00d> В смысле?
[12:54:05] <0xd34df00d> Оно их печатаэ, но не работаэ?
[12:54:37] <maksbotan> он их печатае в терманаэ
[12:54:43] <maksbotan> но не в личкрафтэ
[12:54:53] <maksbotan> терминаэ*
[12:55:31] <0xd34df00d> Хм.
[12:55:34] <0xd34df00d> Страннота.
[12:55:40] <0xd34df00d> Даже с моим скриптом?
[12:55:49] <maksbotan> нет, с моим
[12:56:15] <maksbotan> http://paste.pocoo.org/show/229722/
[12:56:17] <maksbotan> вот с этим
[12:56:26] <maksbotan> так
[12:56:31] maksbotan ушел на часик
[12:56:34] <maksbotan> потом продолжим
[13:39:04] <maksbotan> 0xd34df00d: я снова тут
[13:39:24] <0xd34df00d> maksbotan: нуэ, чо там у тебя не добавляется?
[13:39:37] <maksbotan> да все
[13:39:52] <maksbotan> в личкрафтах я не вижу резалтов от своего плагина
[13:39:55] <0xd34df00d> Попробуй мою версию скрипта же.
[13:40:21] <maksbotan> ок
[13:41:31] <maksbotan> даже с твоей версией
[13:41:45] <0xd34df00d> Хм, страннота.
[13:41:55] <maksbotan> и неизменно сегфолт при выходе
[13:41:59] <0xd34df00d> Ты в сорсы личкрафта можешь кое-чо добавить?
[13:42:21] <maksbotan> как?
[13:42:31] <maksbotan> закоммить лучше
[13:44:15] <0xd34df00d> Блин, ну в живой репоз такое коммитить — ппц же.
[13:44:23] <maksbotan> ладно, скажи что куда и как
[13:44:24] <0xd34df00d> Сотня коммитов с переставленными туда-сюда кудебугами.
[13:44:53] <0xd34df00d> src/plugins/poshuku/urlcompletionmodel.cpp
[13:45:12] <0xd34df00d> После строки 97 (где скобочка открывающая).
[13:45:20] <0xd34df00d> qDebug () << Q_FUNC_INFO << title << url;
[13:45:39] <maksbotan> как мне это сделать?
[13:45:49] <maksbotan> это нужно clone твоего репозитория?
[13:45:54] <maksbotan> дай гит ссылку
[13:47:51] <0xd34df00d> Забей, щя закоммичу.
[13:48:09] <maksbotan> ок
[13:53:41] <0xd34df00d> maksbotan: пушнул.
[13:53:49] <maksbotan> ок
[13:53:54] <maksbotan> пошуку пересобрать?
[13:55:01] <0xd34df00d> Да.
[13:55:04] <maksbotan> ок
[14:06:06] <maksbotan> 0xd34df00d: .\_/.
[14:06:11] <maksbotan> НЕ РАБОТАЕТ!
[14:06:21] <0xd34df00d> Логи покажи.
[14:06:24] <maksbotan> ЩА
[14:06:26] <0xd34df00d> debug.log
[14:06:30] <maksbotan> ой
[14:06:35] <maksbotan> забыл капс вырубить
[14:07:08] <maksbotan> j_J
[14:07:11] <maksbotan> [25.06.2010 14:06:16.702] [0x8d1a1a0] [118] void LeechCraft::Plugins::Poshuku::URLCompletionModel::addItem(const QString&, const QString&) "Google: Get detailed information on Sprint Nextel Corporation Comm (<b>S</b>) including quote   performance, Real-Time ECN, technical chart analysis, key stats, <b>...</b>" "http://finance.yahoo.com/q%3Fs%3DS"
[25.06.2010 14:06:16.703] [0x8d1a1a0] [119] void LeechCraft::Plugins::Poshuku::URLCompletionModel::addItem(const QString&, const QString&) "Google: Twitter is without a doubt the best way to share and discover what is happening   right now." "http://twitter.com/S"
[25.06.2010 14:06:16.703] [0x8d1a1a0] [120] void LeechCraft::Plugins::Poshuku::URLCompletionModel::addItem(const QString&, const QString&) "Google: <b>S</b> is the nineteenth letter in the basic modern Latin alphabet. Its name in   English ( play /ˈɛ<b>s</b>/) is pronounced ess, or usually es- when part of a compound   <b>...</b>" "http://en.wikipedia.org/wiki/S"
[25.06.2010 14:06:16.704] [0x8d1a1a0] [121] void LeechCraft::Plugins::Poshuku::URLCompletionModel::addItem(const QString&, const QString&) "Google: <b>...</b> montana nebraska nevada n hampshire new jersey new mexico new york n   carolina north dakota ohio oklahoma oregon pennsylvania puerto rico rhode island   <b>s</b> <b>...</b>" "http://www.craigslist.org/"
[25.06.2010 14:06:16.742] [0x9d062a8] [122] void LeechCraft::Plugins::Poshuku::URLCompletionModel::addItem(const QString&, const QString&) "Google: Get detailed information on Southern Company (The) Common S (<b>SO</b>) including quote   performance, Real-Time ECN, technical chart analysis, key stats, <b>...</b>" "http://finance.yahoo.com/q%3Fs%3Dso"
[25.06.2010 14:06:16.743] [0x9d062a8] [123] void LeechCraft::Plugins::Poshuku::URLCompletionModel::addItem(const QString&, const QString&) "Google: <b>SO</b> (and variations) may refer to: <b>So</b> (kana), the romanisation of the Japanese   kana そ and ソ; Somalia, ISO 3166-1 alpha-2 country code <b>...</b>" "http://en.wikipedia.org/wiki/SO"
[25.06.2010 14:06:16.744] [0x9d062a8] [124] void LeechCraft::Plugins::Poshuku::URLCompletionModel::addItem(const QString&, const QString&) "Google: Mar 20, 2008 <b>...</b> queue Top Ten Responses to Dick Cheney&#39;s &#39;<b>So</b>&#39;23275 viewsTheFrankFactor <b>...</b> queue   Dick Cheney - <b>So</b> to Iraq Public Oposition Polls4505 views <b>...</b>" "http://www.youtube.com/watch%3Fv%3DSypeZjeOrY4"
[25.06.2010 14:06:16.744] [0x9d062a8] [125] void LeechCraft::Plugins::Poshuku::URLCompletionModel::addItem(const QString&, const QString&) "Google: adverb. in the way or manner shown, expressed, indicated, understood, etc.; as   stated or described; in such a manner: hold the bat just <b>so</b> <b>...</b>" "http://www.yourdictionary.com/so"
[14:07:42] <0xd34df00d> Ненене.
[14:07:45] <0xd34df00d> Покажи ВЕСЬ лог.
[14:07:52] <maksbotan> ок
[14:08:30] <0xd34df00d> Лучше на пасту )
[14:08:48] <maksbotan> естественно
[14:09:04] <maksbotan> http://paste.pocoo.org/show/229739/
[14:09:42] <maksbotan> хм
[14:09:45] <maksbotan> страннота
[14:11:03] <0xd34df00d> Оно прям перед выходом дергается опять.
[14:11:07] <0xd34df00d> Повводи запросы еще туда-сюда.
[14:11:11] <0xd34df00d> У меня оно тоже не сразу начинает работать.
[14:11:15] <maksbotan> =)
[14:14:02] <0xd34df00d> maksbotan: чо кушает json.load?
[14:14:09] <0xd34df00d> Я пытаюсь на кутешных классах это все переписать.
[14:14:20] <maksbotan> оно кушает файлоподобный объект
[14:14:31] <maksbotan> т.е. который имеет метод read()
[14:15:29] <maksbotan> 0xd34df00d: на плюсах чтоли делаешь?
[14:15:34] <maksbotan> или на питоне с кутями?
[14:15:39] <maksbotan> т.е. QtNetwork
[14:16:04] <0xd34df00d> На питоне с кутями.
[14:16:07] <maksbotan> ясно
[14:16:10] <maksbotan> а зачем?
[14:16:17] <maksbotan> не нравятся потоки?
[14:16:57] <0xd34df00d> Нуэ.
[14:16:59] <0xd34df00d> Глюки такие.
[14:17:03] <0xd34df00d> Попробуем все из одного треда звать, чо.
[14:18:18] <maksbotan> ладно
[14:18:26] <maksbotan> мне тут ещё гуглоапи ковырять надо
[14:18:30] <0xd34df00d> Хей.
[14:18:32] <maksbotan> ибо работает все не так как надо
[14:18:35] <0xd34df00d> А прямо байтаррей как ему скормить?
[14:18:44] <maksbotan> ну не знаю
[14:19:00] <maksbotan> подожди пар. сек...
[14:19:47] <0xd34df00d> Это, и еще.
[14:19:51] <0xd34df00d> Как там с массивами работать?
[14:20:46] <maksbotan> вызови не load а loads
[14:20:51] <maksbotan> ему байтаррей можно
[14:21:03] <maksbotan> какими ещё массивами?
[14:21:07] <maksbotan> это питон, мой друг
[14:21:14] <maksbotan> тут списки кортежи и прочая хренота
[14:22:56] <0xd34df00d> Ну список, чо.
[14:23:02] <0xd34df00d> 1. Как добавить элемент в список?
[14:23:06] <0xd34df00d> 2. Как очистить весь список аще.
[14:23:45] <maksbotan> 1. list.append(element)
2. list.clear()
[14:23:52] <maksbotan> вроде бы
[14:29:41] <maksbotan> а, нет
[14:29:46] <maksbotan> 2. list = []
[14:30:22] <maksbotan> а ещё лучше list[:]=[]
[14:31:50] <0xd34df00d> Хм.
[14:31:55] <0xd34df00d> А как глобальные переменные устроены?
[14:32:13] <0xd34df00d> Нужно написать просто global VarName в функции?
[14:32:42] <maksbotan> не стоит этого делать
[14:32:46] <maksbotan> но да. именно так
[14:32:55] <maksbotan> зачем тебе глобальная переменная?
[14:33:08] <maksbotan> захерачь тогда класс свой
[14:33:10] <0xd34df00d> Мне нужно ж хранить список воркеров.
[14:33:13] <0xd34df00d> Менеджер делать лениво.
[14:34:24] <0xd34df00d> maksbotan: хорошо, как сделать у класса статическую переменную?
[14:34:28] <0xd34df00d> Которая у всех одинакова.
[14:34:37] <maksbotan> тупо объяви её в классе
[14:34:51] <maksbotan> т.е. на той же индентации что и методы
[14:34:58] <maksbotan> но безо всяких self
[14:35:05] <maksbotan> т.е.
[14:35:30] <maksbotan> class name:
    var = 'Me'
    def smth(self):
        print self.var
[14:37:36] <maksbotan> 0xd34df00d: щас буду tcpdump`ить хром чтоб понять как он юзает гуглапи
[14:38:14] <0xd34df00d> maksbotan: http://paste.pocoo.org/show/229747/
[14:38:38] <0xd34df00d> maksbotan: почему здесь оно на строчку 19 ругается, что AttributeError: 'NoneType' object has no attribute 'get'?
[14:38:44] <maksbotan> ща
[14:38:45] <0xd34df00d> Init() гарантированно вызывается до всего.
[14:39:15] <maksbotan> эмм
[14:39:29] <maksbotan> кое-что придумал, но надо проверить
[14:41:27] <maksbotan> такс
[14:43:28] <maksbotan> как создать NetworkAccessManager?
[14:44:45] <0xd34df00d> Запросить его у проксика.
[14:44:56] <maksbotan> ну как создать прокси?
[14:44:58] <0xd34df00d> Надо юзать именно тот, который у proxy.GetNetworkAccessManager()
[14:45:04] <0xd34df00d> Никак, он тебе передается сверху )
[14:45:08] <maksbotan> мне нужно в интерпретаторе проверить
[14:45:10] <0xd34df00d> а.
[14:45:12] <maksbotan> любой проксик
[14:45:15] <0xd34df00d> Тогда QNetworkAccessManager.
[14:45:20] <maksbotan> а прокси?
[14:45:22] <0xd34df00d> QtNetwork.QNetworkAccessManager
[14:45:30] <0xd34df00d> А прокси — личкрафтовый класс, без личкрафтов не проверишь.
[14:45:34] <maksbotan> ясно
[14:45:39] <maksbotan> ща чо-нить замучу
[14:48:51] <maksbotan> >>> import urlcomplete
>>> urlcomplete.Init(urlcomplete.Proxy())
>>> urlcomplete.Worker.NAM
<PyQt4.QtNetwork.QNetworkAccessManager object at 0xb743472c>
>>>
[14:48:54] <maksbotan> ЧЯДНТ?
[14:49:08] <maksbotan> class Proxy:
    def GetNetworkAccessManager(self):
        return QtNetwork.QNetworkAccessManager()
[14:49:12] <maksbotan> это заглушка
[14:49:44] <maksbotan> может все-таки Init не вызывается?
[14:51:15] <0xd34df00d> Вызывается, проверял.
[14:51:50] <maksbotan> 0xd34df00d: я хочу тебя расстрелять
[14:51:52] <maksbotan>   File "/home/maks/.leechcraft/plugins/scriptable/python/urlcomplete/urlcomplete.py", line 36
    Worker.NAM = proxy.GetNetworkAccessManager()
    ^
IndentationError: unexpected indent
[14:52:14] <maksbotan> с какого фига?
[14:52:53] <maksbotan> хотя дело не в этом
[14:53:04] <maksbotan> maks@maks-netbook-gentoo ~/.leechcraft/plugins/scriptable/python/urlcomplete $ start-leechcraft.sh
initialized
AttributeError: 'NoneType' object has no attribute 'get'
[14:54:09] <maksbotan> слушай
[14:54:17] <maksbotan> а чем тебе не нравится прокси из хука?
[14:54:57] <0xd34df00d> maksbotan: у меня табы, у тебя пробелы )
[14:55:01] <maksbotan> дада
[14:55:03] <maksbotan> еретик!
[14:55:07] <0xd34df00d> maksbotan: прокси из хука слегка другой прокси.
[14:55:11] <maksbotan> ясно
[14:56:03] <maksbotan> перенастрой вим, чтоле
[14:56:22] <maksbotan> интересненько
[14:56:31] <maksbotan> в хуке Worker.NAM уже пустой
[14:58:01] <0xd34df00d> Хм.
[14:58:08] <0xd34df00d> GetNetworkAccessManager() почему-то возвращает говно.
[14:58:37] <maksbotan> хаха
[14:59:43] <maksbotan> $ start-leechcraft.sh
Initialized in thread 'MainThread'
None
Hook in thread "MainThread"
None
AttributeError: 'NoneType' object has no attribute 'get'
[14:59:47] <maksbotan> странно, да?
[14:59:52] <maksbotan> первый None в Init
[15:00:04] <0xd34df00d> Мне тоже странно.
[15:00:06] <0xd34df00d> Уже выясняю.
[15:00:18] <maksbotan> proxy ты писал или он из кутей?
[15:01:28] <0xd34df00d> Я писал.
[15:01:32] <0xd34df00d> Но он возвращает кутешный класс.
[15:01:35] <0xd34df00d> Который почему-то не врапается.
[15:02:38] <maksbotan> хаха
[15:03:30] <maksbotan> ты сегфолт при выходе не пофиксил ещё?
[15:10:22] <0xd34df00d> Не.
[15:10:25] <0xd34df00d> Еще нет.
[15:11:32] <maksbotan> ладно
[15:11:36] <maksbotan> прокси фиксь
[15:29:35] <maksbotan> 0xd34df00d: слушай
[15:29:47] <maksbotan> а хром нихрена не использует аяксапи
[15:34:29] <maksbotan> я попробую допилить твою реализацию на кутях
[15:34:33] <maksbotan> только прокси почини
[15:35:00] <0xd34df00d> Сделай пока Worker.NAM = QNetworkAccessManager()
[15:35:02] <0xd34df00d> Должно работать.
[15:35:43] <maksbotan> ок
[15:37:21] <maksbotan> нам собственно не то нужно что я сделал\
[15:37:28] <maksbotan> а http://ru.wikipedia.org/wiki/Google_Suggest
[15:40:13] <0xd34df00d> Гггг.
[15:41:22] <maksbotan> ну блин
[15:41:27] <maksbotan> неужели нет доки?
[15:42:04] <maksbotan> придется юзать хакнутый вайршарком урл
[15:48:11] <maksbotan> фак-фак-фак
[15:48:14] <maksbotan> это не JSON
[15:48:19] <maksbotan> и eval его не берет
[15:48:21] <0xd34df00d> Так. я щас ушел в деканат временно.
[15:48:24] <maksbotan> ок
[15:53:07] <maksbotan> так, вроде распарсил
[15:53:10] <maksbotan> но муторно както
[15:53:13] <maksbotan> буду думать
[15:58:33] <maksbotan> 0xd34df00d: если что сможешь на стороне личкрафтов отделить урлы от текста?
[15:58:40] <maksbotan> хотя не, я лучше сам это сделаю
[15:58:43] <maksbotan> регулярки же
[15:59:03] <maksbotan> просто гугл саггест апи кавайный и непонятный
[17:19:42] <0xd34df00d> maksbotan: чочо, не понял.
[17:19:45] 0xd34df00d только вернулся.
[17:19:55] <maksbotan> 0xd34df00d: тото
[17:19:58] <maksbotan> я нашел новый апи
[17:20:02] <maksbotan> но док на него  нет
[17:20:11] <maksbotan> как он работает я понял только через Wireshark
[17:20:27] <maksbotan> так что его могут переделать без предупреждения
[17:20:31] <maksbotan> зато он каваен
[17:20:42] <maksbotan> с ним будет абсолютно как в хроме
[17:21:50] <0xd34df00d> Ну и ништяк.
[17:21:55] <0xd34df00d> Я вон вконтакте реверсил.
[17:21:55] <maksbotan> ок
[17:21:57] <0xd34df00d> Ютуб реверсил.
[17:21:59] <maksbotan> хаха
[17:22:02] <0xd34df00d> Правда. ютуб поломали, надо бы обновить.
[17:22:12] <maksbotan> а я для вконтакте делал поиск по хтмл
[17:22:23] <maksbotan> а дебажил все это тем же вайршарком
[17:22:48] <0xd34df00d> Надо бы это.
[17:22:59] <0xd34df00d> Во вконтакте регексповую выдиралку перевести на DOM.
[17:23:04] <0xd34df00d> Как это ни странно, регекспы тормозят.
[17:23:20] <maksbotan> о_о
[17:24:31] <0xd34df00d> Я пока ходил в деканаты и прочие ректораты (запарили они своими военкоматами, лол), понял, почему оно неправильно работает. Щас буду думать, как пофиксить.
[17:24:45] <maksbotan> и почему же?
[17:25:26] <0xd34df00d> Возвращаемые значения неправильно оборачиваются реализацией пейтона в кроссе, если они не куобджекты.
[17:25:32] <0xd34df00d> И не некоторые «нативные» типы.
[17:25:36] <0xd34df00d> Щас буду впиливать костыль.
[17:26:13] <maksbotan> а не проще наследовать его от куобжекта?
[17:27:07] <0xd34df00d> QNAM и так от куобджекта отнаследован.
[17:27:13] <0xd34df00d> Только реализация пейтона об этом не знает.
[17:27:24] <0xd34df00d> Я вот думаю, как заставить ее об этом знать, не впиливая подобное везде.
[17:28:05] <maksbotan> а почему она не знает?
[17:28:12] <maksbotan> и вообще
[17:28:18] <maksbotan> в чем функция NAM?
[17:29:27] <0xd34df00d> QNetworkAccessManager — это менеджер сетевых соединений.
[17:29:47] <0xd34df00d> Обеспечивает пул соединений, собсна (например, в нашем случае соединения к гуглу будут реюзаться => профит), кеш, кукизы и прочее.
[17:29:49] <maksbotan> — КО
[17:29:57] <maksbotan> ясно
[17:30:07] <maksbotan> гугл такой гугл
[17:30:24] <0xd34df00d> Непередаваемое счастье — разбираться в этом говнокоде.
[17:30:25] <0xd34df00d> Блджад.
[17:30:33] <maksbotan> ты про что?
[17:31:06] <0xd34df00d> Да про поддержку пейтона в кроссе.
[17:31:15] <maksbotan> хаха
[17:31:42] <0xd34df00d> Адский микс из «ой смотрите, я изучил С++ и хочу выебнуться, заюзав любую возможную фичу из них» и «ой смотрите, я тут решил подрочить на лоу-левел работу с памятью C-style».
[17:32:24] maksbotan упал со стула
[17:38:12] <maksbotan> 0xd34df00d: http://marsoft.dyndns.info/fortunes-gentoo-ru/abyss.php
[17:42:24] <0xd34df00d> Ыа.
[17:42:27] <0xd34df00d> У меня личкрафты щас ничо не открываэ.
[17:42:31] <0xd34df00d> Ибо под отладчиком весят.
[17:42:35] <0xd34df00d> s/вес/вис/
[17:42:40] <0xd34df00d> А я любуюсь на отладчик и на трейс.
[17:43:24] <maksbotan> у тебя запасных браузеров нет чтоли?
[17:43:33] <0xd34df00d> Лень запускать.
[17:43:42] <0xd34df00d> FF тяжелый и смотрит на меня своими Gtk-виджетами как на говно.
[17:43:48] <0xd34df00d> Конкерор просто страшен.
[17:44:14] <maksbotan> ты опять вынуждаешь меня идти к марсофту в цитатник
[17:44:25] <maksbotan> а в тамошней бездне уже 2 цитаты с тобой есть
[17:44:54] <maksbotan> поставь уже хром
[17:45:05] <maksbotan> с твоим компом ты его быстро скомпиляешь
[17:45:16] <maksbotan> зато посмотришь на основного конкурента
[17:51:18] <0xd34df00d> Хм.
[17:51:20] <0xd34df00d> Ну надо бы, да.
[17:55:46] <maksbotan> только обязательно 6
[17:55:49] <maksbotan> из дев-ветки
[18:18:40] <0xd34df00d> ХРЕНАСЕ,
[18:18:42] <0xd34df00d> Оно починилось.
[18:18:44] <0xd34df00d> ВНЕЗАПНО блджад.
[18:18:47] <0xd34df00d> И даже не падает пока.
[18:19:12] <0xd34df00d>   File "/home/d34df00d/.leechcraft/plugins/scriptable/python/urlcomplete/urlcomplete.py", line 25, in HandleReply
    json_reply = json.loads(response)
  File "/usr/lib64/python2.6/json/__init__.py", line 307, in loads
    return _default_decoder.decode(s)
  File "/usr/lib64/python2.6/json/decoder.py", line 319, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib64/python2.6/json/decoder.py", line 336, in raw_decode
    obj, end = self._scanner.iterscan(s, **kw).next()
  File "/usr/lib64/python2.6/json/scanner.py", line 55, in iterscan
    rval, next_pos = action(m, context)
  File "/usr/lib64/python2.6/json/decoder.py", line 177, in JSONObject
    key, end = scanstring(s, end, encoding, strict)
TypeError: first argument must be a string or unicode, not QByteArray
[18:19:15] <0xd34df00d> maksbotan: нутыпонел.
[18:19:20] <0xd34df00d> Что мне делать?
[18:19:31] <maksbotan> так, подожди я сам попробую
[18:20:25] <0xd34df00d> Да подожди еще.
[18:20:28] <0xd34df00d> Я не закоммитил даже.
[18:20:47] <maksbotan> а
[18:20:56] <maksbotan> дак это все твою кутевая хуета
[18:21:05] <0xd34df00d> maksbotan: пересобери qrosspython.
[18:21:08] <maksbotan> переделай кубайтэррей в нормальную строку
[18:21:32] <0xd34df00d> Как?
[18:21:37] <maksbotan> ну как нибудь
[18:21:39] <0xd34df00d> Я не знаю, как в этом вашем пейтоне сделать нормальную строку.
[18:21:47] <maksbotan> так, я сам разберусь
[18:21:51] <maksbotan> пили чо посерьезней
[18:23:10] <0xd34df00d> Все, отлично.
[18:23:12] <0xd34df00d> QByteArray.data()
[18:23:28] <0xd34df00d> maksхей.
[18:23:34] <0xd34df00d> maksbotan: хей, то бишь.
[18:23:43] <maksbotan> ладно
[18:23:44] <0xd34df00d> http://paste.pocoo.org/show/229831/ вот это у меня работает ништяк и всегда.
[18:23:53] <maksbotan> мне тут ещё гуглоапи пилить
[18:23:56] <maksbotan> там питономагия
[18:24:19] <0xd34df00d> Запрашивай через кутешные средства.
[18:24:26] <0xd34df00d> Сам видишь, как легче и надежнее все становится )
[18:24:35] <maksbotan> питономагия начинается после получения ответа
[18:24:41] <maksbotan> там хер запарсишь его
[18:24:46] <maksbotan> ибо это код на JS
[18:25:08] <maksbotan> но если чуть-чуть подрезать получается евалируемое выражение
[18:37:51] <maksbotan> СТРАННОТА
[18:37:53] <maksbotan> у меня не работае
[18:38:52] <maksbotan> 0xd34df00d: ^^
[18:39:26] <0xd34df00d> Что?
[18:39:29] <0xd34df00d> Что не работаэ?
[18:39:32] <0xd34df00d> Что говоритэ?
[18:39:59] <maksbotan> тоже самое
[18:40:02] <maksbotan> про NoneType
[18:41:18] <0xd34df00d> Обнови кросца.
[18:41:24] <maksbotan> кроскор?
[18:41:28] <0xd34df00d> Ну и qrosp на всякий случай.
[18:41:33] <0xd34df00d> Кросспитона должно хватить.
[18:41:47] <maksbotan> я уже обновил кроспитон
[18:43:24] <maksbotan> *    updating from commit:    871c4ace3384bdad60f0f238b6ace083c604a2b1
*    to commit:        fa7bae11412e905398176e336afaf6880f8b533f
src/bindings/python/qrosspython/pythonvariant.cpp |   48 ++++++++++----------
1 files changed, 24 insertions(+), 24 deletions(-)
*    branch:             master
*    storage directory:     "/usr/portage/distfiles/git-src/qross-9999"
[18:43:44] <0xd34df00d> Чо оно в консоль говорит?
[18:43:47] <0xd34df00d> Все про NoneType?
[18:44:25] <maksbotan> ога
[18:44:32] <maksbotan> про get() и нонтайп
[18:44:44] <0xd34df00d> ХУИТА.
[18:44:52] <maksbotan> и ты опять понаставил табов в скри пте
[18:45:10] <maksbotan> $ start-leechcraft.sh
None
AttributeError: 'NoneType' object has no attribute 'get'
[18:45:24] <maksbotan> первый нон выводится в ините
[18:45:42] <0xd34df00d> Покажи свой скрипт.
[18:45:56] <maksbotan> я взял твой
[18:46:08] <0xd34df00d> http://paste.pocoo.org/show/229838/
[18:46:11] <0xd34df00d> Вот свежая версия моего.
[18:46:14] <maksbotan> http://paste.pocoo.org/show/229840/
[18:46:22] <maksbotan> вот то что использовал я
[18:46:38] <0xd34df00d> Ну обнови leechcraft-qrosp еже.
[18:46:40] <0xd34df00d> На всякий.
[18:47:04] <0xd34df00d> Подододои.
[18:47:21] <maksbotan> ???
[18:47:38] <0xd34df00d> maksbotan: вот теперь пересобери leechcraft-qrosp )
[18:47:45] <maksbotan> а что ты сделал?
[18:48:01] <0xd34df00d> Забыл закоммитить )
[18:48:21] <maksbotan> хаха
[18:48:50] <maksbotan> если заведется завтра буду копать гуглоапи
[18:54:51] <maksbotan> 0xd34df00d: решил откатить кути?
[18:55:34] <maksbotan> 0xd34df00d:
[18:55:35] <maksbotan> $ start-leechcraft.sh
<PyQt4.QtNetwork.QNetworkAccessManager object at 0xb1df78ac>
NameError: global name 'workers' is not defined
[18:55:40] <maksbotan> как это понимать?
[18:55:54] <0xd34df00d> Заюзай _последнюю_ версию скрипта.
[18:55:59] <maksbotan> ок
[18:56:02] <0xd34df00d> Я там вместо Workers workers написал случайно.
[18:56:23] <maksbotan> ясно
[18:57:09] <maksbotan> так
[18:57:11] <maksbotan> Traceback (most recent call last):
  File "/home/maks/.leechcraft/plugins/scriptable/python/urlcomplete/urlcomplete.py", line 25, in HandleReply
    json_reply = json.loads(response.data())
  File "/usr/lib/python2.6/json/__init__.py", line 307, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python2.6/json/decoder.py", line 319, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib/python2.6/json/decoder.py", line 338, in raw_decode
    raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded
[18:57:23] <0xd34df00d> Это ок, у меня тоже такое случается.
[18:57:36] <maksbotan> случается!!!!!
[18:57:40] <maksbotan> охренеть
[18:58:26] <maksbotan> так, вроде работает
[18:58:35] <maksbotan> завтра продолжу пилить
[18:58:42] <maksbotan> а ты фавиконы почини чтоли
[18:59:17] <0xd34df00d> Нуэ.
[18:59:25] <0xd34df00d> Ты можешь захукать процесс получения фавикона и вставлять туда чо хочешь.
[18:59:39] <0xd34df00d> А так — это known bug вебкита чуть ли не с начала начал, что он с фавиконами хреново работает.
[19:02:06] <maksbotan> тьфу
[19:02:15] <maksbotan> а в 4.7 не фиксед?
[19:02:46] <0xd34df00d> Не особо, но лучше, чем в 4.6.
[19:02:54] <0xd34df00d> А ваще щас запакую кути и  соберу свежие из гитца.
[19:05:13] <maksbotan> ок
[19:19:32] <0xd34df00d> maksbotan: Google Chrome-like search results suggestion.
[19:19:36] <0xd34df00d> maksbotan: идет такое описание?
[19:19:42] <maksbotan> вроде да
[19:40:34] <maksbotan> 0xd34df00d: ты на глагне пишешь про плагин чтоле?
[19:40:40] <0xd34df00d> maksbotan: на какой глагне?
[19:40:41] <0xd34df00d> Ты о чем?
[19:40:50] <maksbotan> на leechcraft.org
[19:40:57] <maksbotan> ты просто про описание спросил
[19:41:07] <0xd34df00d> Нет, я пишу семпловое описание плагина для репоза.
[19:41:12] <0xd34df00d> http://leechcraft.org/wiki/leechcraft/Uainst
[19:41:20] <0xd34df00d> Там ближе к концу формат репоза.
[19:42:10] <maksbotan> PyLC
[19:42:11] <maksbotan> круть
[19:42:31] <0xd34df00d> PyLC не нужен.
[19:42:35] <0xd34df00d> Я его выпилил же уже.
[19:42:39] <0xd34df00d> Надо бы и оттуда выпилить.
[19:46:13] <maksbotan> а в чем была его суть?
[19:46:49] <0xd34df00d> Только поддержка пейтона.
[19:46:51] <0xd34df00d> Через PythonQt.
[19:46:56] <0xd34df00d> Но PythonQt оказался дерьмом.
[19:47:43] <maksbotan> хаха
[20:56:37] NightNord вошёл(а) в комнату
[21:55:30] <maksbotan> 0xd34df00d: ты тут?
[21:56:59] <0xd34df00d> Да.
[21:57:45] <maksbotan> я пилю плагин
[21:57:57] <maksbotan> пошуку передает хидер HTTP-Accept-Language?
[21:59:37] <0xd34df00d> Это зависит.
[21:59:41] <maksbotan> от чего?
[21:59:53] <maksbotan> например в запросе от моего плагина он передается?
[22:00:02] <0xd34df00d> Зависит.
[22:00:12] <maksbotan> ОТ ЧЕГОГ???
[22:00:46] <0xd34df00d> От версии вебкита-куте.
[22:01:25] <maksbotan> хм
[22:01:49] <maksbotan> просто гугл выдает разные результаты в зависимости от этого хидера
[22:02:08] <maksbotan> ты можешь передавать в плагин язык, чтоб я его в запрос вставил?
[22:04:13] <0xd34df00d> Ты можешь его узнать из proxy.GetLocaleName()
[22:04:44] <maksbotan> ясно
[22:04:45] <maksbotan> спасибо
[22:04:58] <maksbotan> он возвращает ru или ru_RU?
[22:05:15] <0xd34df00d> Скорее второе.
[22:05:19] <maksbotan> хм
[22:05:22] <maksbotan> нехорошоо
[22:07:28] <0xd34df00d> Ну бери первые две буквы, чо.
[22:07:35] <maksbotan> ясно
[22:07:43] <maksbotan> я тут задумал регэкспы применить
[22:07:44] <maksbotan> можно?
[22:12:14] <0xd34df00d> Ну, можно.
[22:13:34] <maksbotan> ну, спасибо
[22:46:50] <maksbotan> слушай
[22:47:07] <maksbotan> объект регулярки лучше вместе с NAM создавать?
[23:01:04] <maksbotan> 0xd34df00d: ну что
[23:01:13] <maksbotan> первое испытание новой версии плагина
[23:04:04] <0xd34df00d> maksbotan: ящетаю, что пофиг, когда создавать.
[23:04:07] <0xd34df00d> maksbotan: и чо, как оно?
[23:05:41] <maksbotan> 0xd34df00d: ну как тебе сказать
[23:05:50] <maksbotan> в общем я умудрился снова повесить личкрафты
[23:06:09] <maksbotan> ща дам трейс и скрипт
[23:06:39] <maksbotan> http://paste.pocoo.org/show/229946/
[23:06:43] <maksbotan> это скрипт
[23:06:50] <maksbotan> но ты его вряд ли поймешь
[23:06:59] <0xd34df00d> Бггг.
[23:07:04] <0xd34df00d> Щя, пуникод пофикшу.
[23:07:05] <0xd34df00d> http://imagebin.ca/img/HYChnv.jpg
[23:07:28] <maksbotan> слушай извини
[23:07:42] <maksbotan> это я опять несчастный стринг за пределами хука мучаю
[23:09:27] <maksbotan> так, нужно долго и нудно дебажить регэкс
[23:09:32] <maksbotan> завтра этим займусь
[23:12:53] <0xd34df00d> Ну окей.
[23:15:40] <0xd34df00d> maksbotan: кстати.
[23:15:47] <maksbotan> ?
[23:15:54] <0xd34df00d> Ты можешь дальше юзать объекты, переданные тебе, если сделаешь deep copy.
[23:15:59] <0xd34df00d> import copy
copy.deepcopy
[23:16:29] <maksbotan> учту
[23:16:34] <maksbotan> но оно мне не особо надо
[23:16:41] <maksbotan> я ступил просто
[23:17:03] <0xd34df00d> Ну это какбе на будущее.
[23:18:17] <maksbotan> ясно
[23:21:25] <maksbotan> слушай
[23:21:36] <maksbotan> а response.data() это обычная питонострока?
[23:22:29] <0xd34df00d> Да.
[23:22:35] <0xd34df00d> Если response — QByteArray.
[23:22:41] <maksbotan> хмм
[23:22:50] <maksbotan> чойто регулярка не работает
[23:23:23] <maksbotan> копирую её в интерпретатор и там она работает
[23:23:25] <maksbotan> ладно
[23:23:29] <maksbotan> пойду спать
[23:32:04] <maksbotan> 0xd34df00d: он уже немножко работает
[23:32:08] <maksbotan> теперь точно спать
[23:33:03] <0xd34df00d> maksbotan: круто.
[23:33:06] <0xd34df00d> Поздравляю же.
[23:33:08] <0xd34df00d> Ты молодец и аще
[23:48:27] maksbotan вышел(а) из комнаты
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!