Краткое описание RCM
Добавлен RCM
Класс бота изменен таким образом, что данные и все остальные конфигурации он получает от RCM
Удален BotPool
Все асинхронные методы переименованы в async_run
Список сообщений в задаче бота - список строк
Все асинхронные методы, которые должны работать на протяжении всей жизни приложени запускаются при старте системы
В RCM отключено sqlalchemy кэширование запросов
Немного отформатирован код.
Добавлена синхронизация потоков. А именно: Потоки бота при старте дожидаются снятия блокировки от имени RCM(это означает, что боты могут запуститься, и иметь доступ к конфигурациям)
Добавлено немного логирования
Изменен формат логов
Все time.sleep (привычка) переведены на gevent.sleep
Сессии sqlalchemy создаются для каждого бота, RCM и GlobalState отдельно. Создана соответствующая функция открытия сессии
Форматирование кода
Удален BotPool
Все асинхронные методы переименованы в async_run
Список сообщений в задаче бота - список строк
Все асинхронные методы, которые должны работать на протяжении всей жизни приложени запускаются при старте системы
Дополнена модель Reply
Вывод полной таблицы твитов на странице списка ответов
Для модели бота добавлено поле "задержка перед ответом"
Поле bot.text переименовано в bot.tweet_text
Класс состояния заменен на использование RCM
Добавлены комментарии в код
Конфигурация ботов в RCM переименована
RCM теперь отвечает за проверку твитов на предмет повтора, соответсвенно сам обновляет свое состояние
Добавлены assert проверки в метод регистрации твитов
Для бота теперь не критично отсутсвие списка ресурсов у задания
Регистрация твита в БД и в состоянии происходит в любом случае
Класс GlobalState удален(см. выше)
Автоматическая генерация timestamp при добавлении новой записи в reply
Багфикс с функцией reduce
Добавлена функция конвертации модеи sqlalchemy в словарь
Merge branch 'master' of https://github.com/kazhuravlev/PyTwitterBot