Как стать автором
Обновить
9
0

Пользователь

Отправить сообщение

Автоматизация сбора купонов для бесплатной литературы

Время на прочтение5 мин
Количество просмотров4.5K

Предыстория


На ЛитРес есть система бонусов и купонов, которые появляются с завидной регулярностью. Чтобы сделать приятное жене, да и в целом может найти себе интересную книжку, начал мониторить сайт в котором появляются свежие купоны и скидывал их в телеграм. Но буквально спустя несколько дней мне это дело надоело и я решил автоматизировать данный процесс так, чтобы он мог быть доступен всем кто этого хочет.


Реализация


Так как я постоянно постил новые купоны в телеграм, да и в целом мне нравится этот инструмент, решил создать еще одного бота для телеграма, благо дело для него уже создано достаточное количество библиотек. Возьмем в качестве языка golang и библиотеку telegram-bot-api. Так же нам нужно выбрать ресурс с которого можно было бы тянуть информацию, у меня на примете было несколько сайтов и я думал в целом написать универсальный парсер, но в какой-то момент мне стало лень, и я решил остановить свой выбор на одном ресурсе. Для того чтобы хранить купоны даже после рестарта, решил воспользоваться простой базой sqlite3. В ней будем хранить информацию о купонах, а так же информацию о зарегистрированных пользователях в телеграм боте, так же информацию о том какие купоны пользователь уже получил и какие ещё нет.


Выглядит это примерно так


image

Читать дальше →
Всего голосов 18: ↑16 и ↓2+14
Комментарии5

Вырываемся в top10. Бот для игры в телеграме

Время на прочтение5 мин
Количество просмотров9.3K

Вырываемся в top10. Бот для игры в Telegram


Предыстория


Все началось с того, что мне прислали ссылку на бота в Telegram с предложением поиграть.
Выглядит он примерно так.



После моей первой игры я заработал 28 балов, не сильно впечатляющий результат. Значит нужно всего ничего — программа, которая находит слова из букв исходного слова и база существительных русских слов.


Поехали


Для базы решил использовать sqlite3, он мобильный и для этой задачи самое то.


Структура базы выглядит так.


CREATE TABLE IF NOT EXISTS words (
    word VARCHAR(225) UNIQUE NOT NULL,
    length INTEGER NOT NULL
);

  • word — из название понятно, что это хранимое буквенное значение слова.
  • length — символьная длина.

Структура есть, для ее заполнения воспользовался списком существительных русских слов.


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


Так же само создание файла базы и создание таблицы реализовываются в init()


func init() {
    var err error
    connection, err = sql.Open("sqlite3", "./words.db")
    if err != nil {
        log.Fatalf("Failed connection: %v", err)
    }
    _, err = connection.Exec(`CREATE TABLE IF NOT EXISTS words (word VARCHAR(225) UNIQUE NOT NULL, length INTEGER NOT NULL);`)
    if err != nil {
        log.Fatalf("Failed create database table words: %v", err)
    }
}
Читать дальше →
Всего голосов 20: ↑18 и ↓2+16
Комментарии12

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность