Архив слабых каналов после 4 месяцев последнего сообщения в канале - PullRequest
0 голосов
/ 18 января 2019

Я ищу способ архивации слабых каналов после 4 месяцев последнего сообщения в канале.

Я посмотрел на приложения в магазине и слабые функции. Для моего запроса не было решения. Мне нужно сделать это самому, но я не уверен, что мне нужно сделать бота или приложение с API.

Идея состоит в том, когда имя канала имеет расширения, например, proj-имя, и последнему сообщению в этом канале 4 месяца. Этот канал должен быть архивом.

1 Ответ

0 голосов
/ 18 января 2019

Возможный образец в питоне

Это не официальный пример приложения Slack API или чего-то еще, но он очень похож на то, что вы описываете - Destalinator

Написание базового сценария для достижения этого

На высоком уровне то, что вы хотите сделать, очень возможно и не должно быть слишком сложным.

Получение списка каналов

То, что вы хотите сделать, - это запланированное задание на вашем сервере, которое пингует conversations.list. Эта конечная точка вернет массив каналов в рабочей области. Вы можете исключить уже заархивированные каналы, чтобы сделать список более управляемым. Как только у вас будет этот список, я бы предложил удалить каналы, которым created меньше 4 месяцев, еще раз обрезав ваш список.

Получение времени последнего сообщения

После того, как у вас есть урезанный список каналов, вы захотите итерировать по нему, пинг conversations.history на каждом канале с аргументом oldest, установленным на ваш предпочтительный период времени, в этом случае 4 месяца.

Если ответ для данного канала содержит пустой массив messages, то канал не получил никакого нового контента с момента, указанного в oldest. Сохраните этот идентификатор канала где-нибудь на потом.

После того, как вы перебрали все возможные каналы, у вас должен быть меньший массив, который теперь содержит только идентификаторы каналов без контента за последние 4 месяца.

Архивация "устаревших" каналов

Единственный оставшийся шаг - заархивировать их, и мы сделаем это, используя конечную точку conversations.archive. Единственными аргументами здесь являются token и channel. Поэтому перебирайте каналы для архивирования массива, нажимая эту конечную точку для каждой записи.

С этим все готово!

...