Телеграмм бот на Java. Часть 6
Доброго времени суток уважаемые Голосяне!
Спешу вас обрадовать, что работа над ботом не прекращается. Бот потихоньку обрастает новыми функциями. Процесс идет долго, потому как я всего лишь новичок в Java.
На этот раз, к перечисленным в предыдущем посте, добавилась функция отслеживания открытия и закрытия ордера на бирже. Бот делает запрос на биржу раз в минуту (чаще не получается, сервер блокирует более частые запросы) и потом сверяет ордера из базы данных со списком полученным с биржи. Для этого я создал отдельный класс CheckOrdersService.java, который располагается в папке service. Если схематично, то работа класса состоит из следующих шагов:
- Запрашиваем список ордеров с биржи
- Запрашиваем список сохраненных ордеров из БД, отсортированных по колонке closed.
- Сравниваем эти ордера по uuid, ищем новые и старые ордера
- Новые ордера заносим в БД
- Закрытые ордера метим в БД как закрытые
В класс DataBaseService.java добавлен метод для обновления БД:
public void uprdateDb(String uuid, String closed)
throws ClassNotFoundException, SQLException {
if (connection != null) {
Statement statement = null;
try {
statement = connection.createStatement();
statement.execute("UPDATE bittrex SET closed='"
+ closed + "' WHERE order_uuid='" + uuid + "';");
} catch (Exception e) {
System.out.println(e.getMessage());
} finally {
if (statement != null) {
statement.close();
}
}
} else {
System.out.println("Error writeDb is null");
}
}
Пока что это все усовершенствования в моем боте. Следующим шагом будет выдача сообщений от закрытии/открытии ордеров в чат телеграмм, пока что эти сообщения выводятся в консоль.
Исходный код выложен на GitHub для всех желающих. Код периодически обновляется мной и @onixred. За что ему большое спасибо. Без его помощи я бы еще долго топтался на месте :)
Всем спасибо за внимание и не забывайте подписываться на мой блог!
PS В исходниках еще много мусора и много закомментировано. Периодически стараюсь избавляться от мусора, но бывает что он нужен для отладки .