10.6.12. Класс cerebro.events.BeforeEventChangingOfMessages

class cerebro.events.BeforeEventChangingOfMessages(event_type, event_id)[исходный код]
Базовые классы: cerebro.events.EventChangingOfMessages

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

Примечание

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

Методы

Предупреждение

Этот класс используется при редактировании большинства свойств, но есть и исключения. При редактировании некоторых свойств, например тегов задачи, используются другие классы. Смотрите весь список классов событий.

Объект класса передается в функции before_event и error_event (в случаи возникновения ошибки) модуля event.

def before_event(event):        
        if event.event_type() == event.EVENT_CHANGING_OF_MESSAGE_APPROVED:
                ...

См.также

AfterEventChangingOfMessages.

new_value()[исходный код]
Результат:новое значение редактируемого свойства.

Тип возвращаемого значения зависит от редактирумого свойства. Для определения нужного типа смотрите методы класса cerebro.aclasses.Message по получению значений аналогичных свойств.

Примечание

Чтобы узнать текущие значения, возпользуйтесь соответствующими методами редактируемых задач tasks().

def before_event(event):        
        if event.event_type() == event.EVENT_CHANGING_OF_MESSAGE_HASHTAGS: # хэштеги будут изменены
        
                messages = event.messages()
                for message in messages:
                        print('Имя сообщения', message.name())
                        print('Предыдущие хэштеги', message.hashtags())
                
                print('Новые хэштеги', event.new_value())                                       
set_new_value(val)[исходный код]
Параметры:val – значение свойства.

Устанавливает новое значение редактируемого свойства.

Тип нового значения зависит от редактируемого свойства. Для определения нужного типа смотрите методы класса cerebro.aclasses.Message по установке значений аналогичных свойств.

if event.type() == event.EVENT_CHANGING_OF_MESSAGE_HASHTAGS:
        hashtags = event.new_value()
        if len(hashtags) > 1:
                event.set_new_value(hashtags[0]) # устанавливаем только первый хэштег