• Miranda HPP xjuick well... Теперь мой плагин понимает следущее:
    TabSRMM: Default, IEView, History++, History++ emulated IEView
    Scriver: Default, IEView, History++ emulated IEView
    SRMM: Default

    ...честно говоря, я больше никаких сочетаний и не знаю. Смею сказать: теперь работает везде. Причём, ничего настраивать не нужно, после переоткрытия окна чата плагин сам сообразит что установлено. Можно практически налету в настройках менять.
    Версию-таки увеличил. Всё же, хпп отъела у меня изрядный кусок времени. Теперь 0.0.5. Ссылка там же: coding.xa0c.net

    P.S. Как только theMIROn пожрёт свою лень и починит свой SVN, historypp.dll из архива уберу. :)

Replies (46)

  • @xa0c, Со Scriver таки не работает. :(
    Убил мне всю хистори Juick'а (вместе с контактом). Абыдно.
  • @nibb13, Должен работать. Всё, что выше описАл на себе опробовал.
    Как это вообще выглядело?
  • @xa0c, Отцепил окно, получил Unknown Contact и сообщение "GetContactInfo() -> Null ID". Грохнул окно — грохнулось вместе с Juick'ом...

    Кажется я нашёл причину: у меня база была битая. После того, как прошёлся dbtool'ом, плагин стал работать правильно. Сам дурак, в общем. :)

    Сейчас пытаюсь импортировать хистори Juick'а из вчерашнего бэкапа базы — Миранда скипает всю хистори, как будто к juick@juick.com она не относится. Ты не в курсе, случаем, если контакт удалить, а потом добавить — Миранда их как разные контакты внутри себя идентифицирует? Чего она скипает хистори, которая есть только в старом профиле?
  • @nibb13, Если контакт удалить, то он вместе с хистори удалится. А насчёт импорта-экспорта: mContacts, имхо, зебест. Другие способы не пробовал.
  • @xa0c, Ух ты, не успел сказать что всё работает, как... ;)

    === Exception dump ===
    System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
  • @nibb13, Жесть эксепшен. Либо там где-то рекурсия, либо... Блин. Без стэктрейса нифига не понятно.
    Посмотри в папке с аватарами — есть там файл размером 0 байт?
  • @xa0c, Нема. Причём, упало именно на твоём сообщении. Оно ни в окно ни в хистори не попало.
    Про память, конечно же, врёт безбожно. Весь процесс — 18 метров, явной утечки не вижу. Или у hyphen'а какие-то свои bound'ы?
  • @nibb13, Аут оф мемори не только из-за недостатка памяти возникать может. Когда кривой bmp пытаешься загрузить — то же самое. Повторить сможешь? :)
  • @xa0c, Хмм... Сейчас Миранда вообще молча рухнула. Вообще ничего не сказав. Но сообщение в хистори сохранилось.

    Повторить сложно, поскольку баг не в ответ на активные действия. Если будет повторяться — буду искать закономерности.
  • @nibb13, Дебаг версия. Наверное полезней будет: coding.xa0c.net
  • @xa0c, Ок, дебаг воткну. За mContacts отдельное огромное спасибо — на официальном сайте с аддонами его нет, а я плагины только оттуда беру. Всю жизнь мучился с хистори. Теперь моя Миранда приблизилась к Нирване! :)
  • @xa0c, Чистая 0.8.15 с оф. сайта, tabsrmm 3.0.0.16, ieview 1.2.0.1. При старте
    === Exception dump ===
    System.IndexOutOfRangeException: Index was outside the bounds of the array.
    at System.Globalization.DateTimeFormatInfo.InsertHash(TokenHashValue[] hashTable, String str, TokenType tokenType, Int32 tokenValue)
    at System.Globalization.DateTimeFormatInfo.CreateTokenHashTable()
    at System.Globalization.DateTimeFormatInfo.Tokenize(TokenType TokenMask, TokenType& tokenType, Int32& tokenValue, __DTString& str)
    at System.__DTString.GetSeparatorToken(DateTimeFormatInfo dtfi)
    at System.DateTimeParse.Lex(DS dps, __DTString& str, DateTimeToken& dtok, DateTimeRawInfo& raw, DateTimeResult& result, DateTimeFormatInfo& dtfi)
    at System.DateTimeParse.TryParse(String s, DateTimeFormatInfo dtfi, DateTimeStyles styles, DateTimeResult& result)
    at System.DateTimeParse.Parse(String s, DateTimeFormatInfo dtfi, DateTimeStyles styles)
    at System.DateTime.Parse(String s)
    at Virtuoso.Miranda.Plugins.Infrastructure.DatabaseEventInfo.GetEventInfo(DBEVENTINFO dbEventInfo, IntPtr eventHandle, InteropBuffer blobBuffer, DatabaseEventType& type, DatabaseEventProperties& flags, String& data, Protocol& owningModule, DateTime& timestamp)
    at Virtuoso.Miranda.Plugins.Infrastructure.DatabaseEventInfo.MarshalEventInfo(IntPtr pDbEventInfo)
    at Virtuoso.Miranda.Plugins.Infrastructure.MirandaDatabase.RaiseDbEvent(MirandaEventHandler`1 handler, Boolean raw, UIntPtr wParam, IntPtr lParam)
    at Virtuoso.Miranda.Plugins.Infrastructure.MirandaDatabase.<add_BeforeEventAdded>b__2(UIntPtr wParam, IntPtr lParam)
    at Virtuoso.Miranda.Plugins.Infrastructure.HookDescriptor.SafeCallbackStub(UIntPtr wParam, IntPtr lParam)
  • @NetMoose, Рухнула совсем. Пытается отправить письмо с заголовком "Hyphen crashed" и текстом "System.InvalidOperationException: Form that is already visible cannot be displayed as a modal dialog box. Set the form's visible property to false before calling showDialog. at System.Windows.Forms.Form.ShowDialog(IWin32Window owner) at System.Windows.Forms.Form.ShowDialog() at Virtuoso.Miranda.Plugins.Forms.PluginErrorDialog.BindAndShow(Exception exception, String message, Boolean canCancel) at Virtuoso.Miranda.Plugins.MirandaPlugin.UnknownPlugin.HandleException(PluginDescriptor descriptor, Exception ex) at Virtuoso.Miranda.Plugins.Infrastructure.HookDescriptor.SafeCallbackStub(UIntPtr wParam, IntPtr lParam) at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG"
  • @NetMoose, Что-то я думал, что 3.х табсрмм с 0.8 мирандой не работает...
  • @xa0c, Я перетащил из 0.9. Возможно в этом проблема. Попробую постарее.
  • @xa0c, tabsrmm 2.2.1.17 При попытке открыть окно с жуйкой сообщение "Cant find LOG window of 'tabSRMM' Links highlighting will be disabled". При попытке отправить сообщение Hyphen крашится также, как в прошлый раз. Перед этим окошко с сообщением вылезает как в #558586/13
  • @NetMoose,
    .) TabSRMM настроен на использование IEView
    ..) Hpp НЕ в режиме эмуляции IEView
    ...) IEView установлен
    всё так?
  • @xa0c, Специально снес всё. Поставил миранду 0.8.15, tabsrmm 2.2.1.17, ieview не ставил, xjuick 0.0.5.0 При старте ничего. При открытии окна жуйка "=== Exception dump ===
    System.IndexOutOfRangeException: Index was outside the bounds of the array.
    at System.Globalization.DateTimeFormatInfo.InsertHash(TokenHashValue[] hashTable, String str, TokenType tokenType, Int32 tokenValue)
    at System.Globalization.DateTimeFormatInfo.CreateTokenHashTable()
    at System.Globalization.DateTimeFormatInfo.Tokenize(TokenType TokenMask, TokenType& tokenType, Int32& tokenValue, __DTString& str)
    at System.__DTString.GetSeparatorToken(DateTimeFormatInfo dtfi)
    at System.DateTimeParse.Lex(DS dps, __DTString& str, DateTimeToken& dtok, DateTimeRawInfo& raw, DateTimeResult& result, DateTimeFormatInfo& dtfi)
    at System.DateTimeParse.TryParse(String s, DateTimeFormatInfo dtfi, DateTimeStyles styles, DateTimeResult& result)
    at System.DateTimeParse.Parse(String s, DateTimeFormatInfo dtfi, DateTimeStyles styles)
    at System.DateTime.Parse(String s)
    at Virtuoso.Miranda.Plugins.Infrastructure.DatabaseEventInfo.GetEventInfo(DBEVENTINFO dbEventInfo, IntPtr eventHandle, InteropBuffer blobBuffer, DatabaseEventType& type, DatabaseEventProperties& flags, String& data, Protocol& owningModule, DateTime& timestamp)
    at Virtuoso.Miranda.Plugins.Infrastructure.DatabaseEventInfo.MarshalEventInfo(IntPtr pDbEventInfo)
    at Virtuoso.Miranda.Plugins.Infrastructure.MirandaDatabase.RaiseDbEvent(MirandaEventHandler`1 handler, Boolean raw, UIntPtr wParam, IntPtr lParam)
    at " При отправке наверное опять рухнет.
  • @NetMoose, Так и есть ;)
  • @NetMoose, Что-то даже не могу придумать из-за чего. Можешь дб-тулом проверить профиль на ошибки?
    Плюс, поставь дебаг-версию (с pdb) из #558586/11 (там больше информации в эксепшене должно быть)
  • @xa0c, dbtool ошибок не нашел, да и откуда им взяться на пустом профиле. А то, что в доке написано, что должен появиться файл с настройками, а он не появляется — это нормально?
  • @NetMoose, Дока для 0.0.3 версии. В текущей конфиг лежит в \plugins\xJuick\config.xml
  • @xa0c, Ясно. С дебагом ситуация не изменилась, т.е. чисто визуально сообщение об ошибке не изменилось. Теряюсь в догадках и скорблю :( Может попробовать скриншотами проиллюстрировать?
  • @NetMoose, Пока не нужно. Сегодня забей. Завтра я попробую повторить это на чистом профиле и с абсолютно пустой мирандой. Может получится.
    Сейчас немного другим занят.
    ...мне бы сильно помогло наличие на каком-либо файлообменнике той сборки, с которой ты тестишь (без профиля, естестно :)
  • @xa0c, narod.ru Тут положил. Без профиля само-собой.
  • @NetMoose, Запустил твою сборку, создал аккаунт, залогинился, поменял в настройках модель на tabSRMM, закрыл миранду.
    Запустил миранду, открыл окно чата, получил мессагу "Cant find tabsrmm log window", удивился. Посмотрел что за окно использует tabSRMM, оказалось, что History++. Ещё раз удивился. Полез в настройки, смотрю: у Hpp галка "эмулировать IEView" НЕ стоит, в настройках tabSRMM логом установлен IEView. Т.е., смею предположить, это бага tabSRMM.

    Поставил в tabSRMM "лог по умолчанию", переоткрыл окно, плагин заработал. На сообщения не падает.
    Вернулся в настройки, установил IEView галку напротив только что созданного протокола, прописАл путь к своему шаблону, переоткрыл окно. Выпала ошибка яваскрипта (надо будет подумать), но плагин продолжил работать...

    Ммм... ЧЯСНТ?
  • @xa0c, Так. Походу дело не в плагине и миранде. Что-то с .net. Что понять не могу, ибо некомпетентен. А жаль. На работе попробую.
  • @xa0c, Ну, скорее, не "закрыть", а удалить все псевдоконтакты из контактлиста. ЗаписАл, попробую повторить.
  • @xa0c, По одному должно быть можно (DEL'ом).
    Еще на всякий случай (когда повторять буду): когда ты кнопкой хотел удалить эти контакты, сколько их было? И открыто ли было окно с каким-либо из них?
  • @xa0c, Ещё раз, для точности: было несколько "псевдоконтактов", один из которых был открыт?
  • @xa0c, ну у тебя автофорк = true значит
  • @xa0c, Это значит, что ты тыкнул-таки на кнопочку "мне нужны псевдоконтакты ваще для всех постов" (она рядом с той, с крестиком, которая эти псевдоконтакты удаляет)
  • @xa0c, Тыкнуть на неё ещё раз. %)
    Когда она "утоплена", тогда окна создаются автоматически для всех постов.
    Когда "отжата", тогда только для тех, которые указал явно.
  • @xa0c, Продолжает рэндомно падать. Похоже, что в форковых тредах. Падает совсем молча: просто завершается процесс.

    В этом треде получил /39, потом, вероятней всего, на /40 упала (сообщение не сохранилось), сразу после загрузки ещё раз упала. При следующей пришло /44, т.е. 4 сообщения в хистори не сохранились. Подозреваю в них причину падения.
  • @nibb13, У тебя autofork true или чисто на #558586 форк поставил?
  • @xa0c, Автофорк выключен. Только на этот тред форк вручную сделан.
  • @nibb13, Ок. Тоже, пожалуй, выделю его. Посмотрим... :)
  • @nibb13, Блин. Потрясно. Выделил отправил предыдущее сообщение и получил аж две ошибки сразу. Да, проблема есть, но если юзаешь дебаг-версию, то "просто молча упасть" не должно было.
    Хорошо, подумаю.
  • @xa0c, Самое гадское — виндовый JIT даже не вякнул. :(
    Поставил "Ольгу" JIT'ом, поглядим... Хотя, толку от неё с .NET'ом будет не много, думаю...
  • @nibb13, Исходники последней 0.0.5 в svn есть. Если большое желание, можно прям в вижуалстудии под дебагом запустить (я, собсно, так и запускаю всё время, дабы сразу ошибку локализовать, если появится)
  • @xa0c, У меня студии нет. Я её философии не понимаю. :)
  • @nibb13, Так, вроде что-то пофиксил. Перескачай дебаг-версию, проверь? coding.xa0c.net
  • @xa0c, Ок, поставил. Будем посмотреть...
  • @xa0c, Исправлено. Там же, в дебаг-версии.
  • @xa0c, Ну ты всё равно этим не пользовался, если верить #558586/39 :)
  • @xa0c, Пока не до него