• ↓
  • ↑
  • ⇑
 
Записи пользователя: Скептичный циник (список заголовков)
20:49 

1С Битрикс - Как отправлять почту по событию в Битрикс?

Скептичный циник
Миру - мир. А Вам - пломбир!
Доброго времени суток!

В наличии Битрикс (Корпоративный портал 14.9.3.).

В настройках уведомлений пользователя везде установлены галочки "отправлять по email" (cl.ly/Xx56)
При новых комментариях или лайках на сайте уведомления появляются, однако почта не приходит. Отправка других email (например, восстановление пароля) работает.

Каким образом добавить обработчик события, который бы отправлял на почту это уведомление? Чтобы обновление ничего не сломало.

Пробовал сделать в init.php примерно такое:

Но увы, код внутри коллбека не выполняется. Нашёл пост на оффоруме без единого ответа от 12 года и только.

Далее, внутри bitrix/modules/im/classes/general/im_mail.php есть метод MailMessageAgent(), внутри которого есть строка:

Но она всегда возвращает пустое количество сообщений ибо к моменту данного запроса уведомление новое уже отправлено и установлен флаг успеха.

Куда копать далее не представляю ):

@темы: боль, Битрикс, PHP

02:26 

RegexGuru wanted

Скептичный циник
Миру - мир. А Вам - пломбир!
Доброго времени суток, сообщники!

Хотите немного ненормального программирования? :3 Нет, я не буду пытаться парсить html. Всё чуточку проще.

tl;dr: смотреть сюда, там понятны как регексп, так и задание плюс автоматически можно играться/проверять.

Подробнее.
Дано
Некоторый текст, в котором находится номер телефона в различных вариантах. Список:


Надо
Регекспами (PCRE) сматчить номер, но только в том случае, если он не московский и только если он не обёрнут в тег с определённым классом "foobar":


Упрощаем жизнь
Перед номером может быть всего два кода (812 или 495) или никакого вообще (пустой
считать питерским).
Обёртка находится всегда вплотную (достаточно искать строку класса в теге перед номером).


Усложняем бытие
Код города (и только он) может быть обёрнут в пустой span и/или быть в скобках.


В чём проблема?
Отрицание для группы (?!495) работает странно даже в паттернах типа /((?!495).*)/gui – не матчит четвёрку, но строку с ней считает найденной. Отсюда два вопроса:
1. Как сделать так, чтобы регексп вообще пропустил всю строку, где есть 495?
2. Почему регексп отрицает только первую цифру 4, а не все остальные?
3. Общие пожелания для улучшения регекспа тоже принимаются.

Сам регексп можно посмотреть и автоматически затестить вот здесь.

Спасибо и have fun!

@настроение: o.0

@темы: regex, pcre, PHP, Computer Science, *nix

14:12 

Авторизация на hh.ru с помощью PHP+cURL – как?

Скептичный циник
Миру - мир. А Вам - пломбир!
Доброго времени суток!

В наличии php 5.4, apache 2.4, мой личный аккаунт на hh.ru.

Задача: получить доступ к страницам hh.ru из-под авторизованного пользователя. Никакого взлома или чужих аккаунтов не нужны – авторизация под своим собственным аккаунтом.

Пробовал решить так:
Смотреть код

Однако, вижу страницу для авторизации.
Доступ к кукам есть:
$ sudo chmod 1777 cookie.txt
В них есть несколько токенов и строка с "hhrole anonymous", что не ест гут.

В какую сторону копать? Почему cURL не может авторизоваться и как это исправить?

Спасибо.

@темы: PHP

23:35 

[Решено?] Удалённый доступ к MySQL: bash может, PHP не может – почему?

Скептичный циник
Миру - мир. А Вам - пломбир!
Доброго времени суток!

В наличии два сервера в сети /24: 2 и 88 соответственно.

Задача: из PHP приложения на 88 забирать данные из MySQL с обоих серверов.

tl;dr:
– bash успешно коннектится и забирает правильные данные
– PDO+стандартный dsn и MySQLi валятся с "Permission denied"
– PDO+socket коннектится, но к локальной базе

Ничто лучше не опишет ситуацию как небольшие тесты:
1. Bash:

[trogwar@centos ~]$ mysql --host="42.42.42.2" --user="foobar" --password='blowfish'
# ... credits ...
mysql> use cooldb
Database changed
mysql> select count(*) from rem_tests;
+----------+
| count(*) |
+----------+
| 98 |
+----------+
1 row in set (0.00 sec)
mysql>


2. PHP + PDO + default dsn:

try {
$dbh = new PDO(
'mysql:host=42.42.42.2;dbname=cooldb',
'foobar',
'blowfish'
);
$sql = 'SELECT COUNT(*) FROM rem_tests'; // Таблица существует только на удалённом сервере
$stmt = $dbh->prepare($sql);
$status = $stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
} catch (PDOException $exception) {
echo $exception->getMessage();
}
var_dump($result); // PDOException: SQLSTATE[HY000] [2002] Permission denied
die();


3. PHP + PDO + sockets:

// ... тот же самый код ...
'mysql:unix_socket=/var/lib/mysql/mysql.sock;dbname=cooldb',
// ... тот же самый код ...
var_dump($result); // PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'coldb.rem_tests' doesn't exist
die();


Вопросы:
1. В чём разница между PHP и Bash в плане коннекта к мускулу? (о.0)
2. Есть идеи получить доступ из пыха?

Спасибо!

@темы: База данных, remote, PHP, PDO, MySQL, *nix

18:26 

Оставлять активным рабочий стол при отключении с сохранением разрешения – как?

Скептичный циник
Миру - мир. А Вам - пломбир!
Доброго времени суток!

Дано: сервер (WinXP) и клиент (Win7) к которым есть полный доступ.
Задача: на сервере запускается софт, для которого критично важно непрерывное наличие рабочего стола с постоянным стабильным конкретным разрешением экрана.
Проблема: соединяюсь с ним по rdp, всё работает. После отключения – софт падает с ошибками (видимо, отрубается рабочий стол).

Вопрос: как оставить работать сервер без внешних подключений, но с активным рабочим столом и конкретном стабильном разрешении экрана?

Спасибо!

@темы: Вопрос, Windows, RDP

18:28 

[Решено] Русские языковые модели для CMU Sphinx4. Или альтернативы.

Скептичный циник
Миру - мир. А Вам - пломбир!
Доброго времени суток, сообщники!

Задача: слать аудио разговора в магический чёрный ящик, а в ответ получать текстовое представление разговора. На чём оно будет работать внутри и платформа – не особо важно, поэтому выбор инструмента ограничивается только бесплатностью (или хотя бы наличием демо-версии) и качеством распознавания.

Много букв – подробное описание ситуации. Для ответа на насущные вопросы №2 читать не обязательно.

Что пробовал. Без особых хлопот скомпилил полную версию (не pocketsphinx), запустил английские демки (HelloWorld.jar и Transcriber.jar) – работают. Ок, с помощью скриптов из sphinxtrain создал проект, скачал русские "acoustic models russian" с voxforge (в архиве я увидел только словари и языковые модели, без wav'ок для тренировки), закинул эти файлы в созданный проект.

Теперь вопросы:
1. Возможно, есть какие-нибудь API или системы, которые я не нашёл? Порекомендуете?
2. Допиливание Sphinx4:
2.1. Как скаченную с voxforge языковую модель добавить в Sphinx4?
2.2. Как собрать своё приложение, чтобы по переданной wav'ке отдавало текст по аналогии с демкой Transcriber.jar?
Или хотя бы киньтесь ссылкой на user-friendly мануал: в readme такого не нашёл, а гуглорезультаты старше 2010 года уже не актуальны. Знания java откровенно слабые.

Спасибо!

UPD. Ещё немного потыкался и напоролся на следующую проблему.

Что делал далее:
1. Файлы из акустической модели от voxforge скопировал в "sphinx4-1.0beta6/models/acoustic/wsj"
2. В конфиге "sphinx4-1.0beta6/src/apps/edu/cmu/sphinx/demo/transcriber/config.xml" изменил dictionaryPath и fillerPath компонента dictionary как описано в мануале
3. Собрал проект ant'ом
Теперь при запуске Transcriber.jar ловлю исключение:"SEVERE wsj Can't find HMM for d".

Порылся в исходниках и увидел, что в "sphinx4-1.0beta6/models/acoustic/wsj/" есть директория "dict" с какими-то файлами (морфемы и слова?). Не видел такого в мануалах, но попробовал использовать "text2dict/dict2transcript.pl" из ru4sphinx от zamiron'а, но скрипт морозится без каких-либо ошибок и вывода после строки "Dictionary tire_word.txt loaded" (а это не последний txt в директории) и ничего нового не генерируется.

Я так понял, мне нужно словарь поместить в "sphinx4-1.0beta6/models/acoustic/wsj/dict"? Но как его сгенерить автоматически из какой-нибудь уже готовой модели русского языка? В моделях с voxforge ничего похожего на нужное не видать.
запись создана: 25.01.2014 в 21:15

@темы: Вопрос, speech, recognition, Java, Computer Science, CMU Sphinx, *nix

ru_programming

главная