keshanchik | Телеграм-бот с нуля и капелька литкода

  • Гость, поучаствуй в создании лаунчера! Напиши те скрипты, которые считаешь базой для удобной игры. Принять участие!
  • МАЙСКАЯ ЛОТЕРЕЯ
    С 1 по 11 мая проходит майская лотерея: первое место — 5000 рублей или кошелёк Steam, второе и третье — Telegram Premium на год и полгода соответственно.
    За каждый отыгранный час игрок получает один билет, увеличивая шансы на победу и гарантированный доступ к альфа и бета-тестам лаунчера.

keshanchik

Новичок
Автор темы
17
689
Пора чёт сюда выкладывать.
Для практики на setInterval/setTimeout и т.д. за 5 минут запилил возможность начинать отсчёт на заданное время с уведомлениями об оставшемся времени через каждые 10 секунд (завтра сделаю условие, при котором этот интервал будет больше для соответственно большего значения заданного времени).
1695739279396.png
Как раз завтра сделаю удобный старт этого отсчёта по кнопке, докину команду в меню команд и начну заниматься возможностью создавать сразу несколько задач, в целом для чего и задумывался этот бот. Надеюсь, что с моим расписанием дня я за месяц смогу эту тему сделать, потому что идеи есть, но я в них не уверен, хотя и должны в теории сработать.
 

grailed

Новичок
2
8
хз как ты тут растянул настолько времени, за день можно управиться, максимум дня 3.
ну лад молодец, в любом случае лучше что-то, чем нечего.
 
  • Нравится
Реакции: keshanchik

keshanchik

Новичок
Автор темы
17
689
хз как ты тут растянул настолько времени, за день можно управиться, максимум дня 3.
ну лад молодец, в любом случае лучше что-то, чем нечего.
На написание то почти времени не ушло, больше всего потратил на то, чтобы разобраться с этим планировщиком задач, потому что по тому, что мне нужно было, на русском ничего не было и на английском не всё я нашёл. Ну и в день я мало времени на всё это тратил
 
872
6,304
Здраво. Сам готовлю проект на олимпиаду на тему обучения финансовой грамотности при помощи бота и искусственного интеллекта.
Удачи в дальнейшем!
 
  • Нравится
Реакции: keshanchik

keshanchik

Новичок
Автор темы
17
689
Если кому интересно, то пока я ничего не делаю с предпоследнего поста. Не разобрался, как написать возможность добавления несколько задач, хотя идеи были, но почему-то не работало ничего. Скоро продолжу, если время появится
 
  • Нравится
Реакции: spikedev

keshanchik

Новичок
Автор темы
17
689
1708790480192.png
1708790499543.png
Всё это время с прошлого поста учился и, не без помощи нейронки, наконец закончил всё, что изначально хотел. Работает идеально, список задач функционирует без проблем, с ним и были основные проблемы проекта. Осталось поработать над внешним видом, удобством пользования и в целом - всё. Конечно, ещё есть куча идей, но я не думаю, что я смогу их реализовать, но попробовать стоит.

На фотографиях пример применения бота.
 
  • Нравится
Реакции: PaddingtonBaby

keshanchik

Новичок
Автор темы
17
689
Доделал основное из того, что планировал изначально. Все функции бота на данный момент на скриншоте:
1713716138433.png

Добавил кнопку для получения информации о точном времени. Не знаю, будет ли она играть какую-то роль, но как будто с ним бот выглядит серьёзней.
1713716549879.png


Поставил для себя такие задачи:
1. Добавление возможности создания расписания дня.
2. Добавление возможности создания заметок с регулярными напоминаниями
3. Упрощение добавления задач в целом

Стабильно раз в 3 месяца появляюсь
 

keshanchik

Новичок
Автор темы
17
689
Криво и неудобно до жути, но накидал расписание дня. По сути, это тот же /list_tasks, но намного удобнее, если нужно добавить задачи сразу на весь день
1.PNG
Начал делать интерактивное управление задачами, потыкав и попользовавшись понял, что каждый раз вводить команду довольно неудобно2.PNG3.PNG
Единственная проблема сейчас в том, что у меня почему-то все эти кнопки не работают, ну думаю я где-то туплю
 

keshanchik

Новичок
Автор темы
17
689
Криво и неудобно до жути, но накидал расписание дня. По сути, это тот же /list_tasks, но намного удобнее, если нужно добавить задачи сразу на весь день
Посмотреть вложение 3679887
Начал делать интерактивное управление задачами, потыкав и попользовавшись понял, что каждый раз вводить команду довольно неудобноПосмотреть вложение 3679888Посмотреть вложение 3679889
Единственная проблема сейчас в том, что у меня почему-то все эти кнопки не работают, ну думаю я где-то туплю
Спустя десятки часов и потраченные на это апи нервы у меня всё заработало правильно
 

keshanchik

Новичок
Автор темы
17
689
рр.PNG
Так сейчас выглядит работа бота с расписаниями. Пока это не работает на уровне изменения задачи, тут нужно дописать удаление всей задачи для расписания и создание новой, но с изменением только одной. Выглядит ужасно, но потом будет вместо выбора вводом отдельного этапа клавиши, как я делал с /list_tasks выше

Что касается того, что я сделал с /list_tasks - вот
а.PNG
Тут как раз мне пришлось делать так, чтобы задача полностью удалялась и создавалась новая. Интересный факт, когда я делал сначала команды /edit_time, /edit_task - всё работало. Примерно через месяц они перестали работать, кстати где-то в середине того, как я начал делать вот эту тему с /list_tasks. Оказывается, что-то в этой апишке изменилось и стало невозможным изменение задачи на уровне выполнения напоминания. Проблема была в том, что я менял массив, в котором хранились все задачи, в /list_tasks это изменение отображалось, но задача выполнялась та, которую поставили изначально
Тогда, после тысячи проб и ошибок я решил просто удалять ту задачу, которая создавалась изначально и создавать новую с изменениями, благо это было возможно сделать. Тогда всё заработало.

Но не работало это изменение с /list_tasks. Если честно, я абсолютно без понятия, почему оно не работало, я всё тысячу раз переписывал и каждый раз мне казалось, что я делаю всё идеальнее и идеальнее, но оно не работало (именно редактирование времени и текста задачи). В последний момент я забил, всунул во все эти кнопки команды /edit_task и /edit_time и всё заработало

По сути с расписаниями дня всё то же самое, только каждое расписание это отдельный /list_tasks. И да, мне пока впадлу делать изменение дня недели для задач, сделанных через /on_day
 

keshanchik

Новичок
Автор темы
17
689
1719139698656.pngСделал вот такую удобную менюшку (заметки ещё не сделал)

1719139835084.png
Что касается расписания - сделано почти всё, только нужно чтобы каждый этап можно было выбирать кликом
По сути, осталось только сделать изменение дня недели в /list_tasks для задач, где он выбирался, затем сделать кликабельными задачи в расписаниях, сделать заметки и можно начинать заниматься удобностью и внешним видом
 
  • Нравится
Реакции: ccthief

keshanchik

Новичок
Автор темы
17
689
Пока думаю и по чуть-чуть пытаюсь писать интерактивный выбор этапа расписания дня(пока не получается, какой-то конфликт из-за индекса расписания) , параллельно тактично вернулся в C++, потому что мазохист он уже в сердечке и вообще решил, что изучение его мне даст намного больше профита, нежели изучение JS, на котором кроме написания ботов (и то из JS там только тип файла) я больше ничего писать не собираюсь
 

keshanchik

Новичок
Автор темы
17
689
Телеграм всё таки снова урезал апи ботов и теперь часовой пояс не даётся разработчику вместе со всей информацией. Не без гитхаба и не без нейросети сделал такую тему, что пользователю после ввода команды /start даётся возможность открыть сайт, на котором определяется его часовой пояс и отправляется в самого бота

1720341176164.png
Заняла конечно оч много сил такая маленькая деталь. Но из хороших новостей, на сервер бот уже загружен и по кнопке я его включу, но там будет работать только с UTC(локальное время сервера)
Осталось вложить этот часовой пояс в каждую функцию, отвечающую за отправку уведомлений и в целом останется то, что я писал в конце поста на 23 июня
 

keshanchik

Новичок
Автор темы
17
689
1720705271222.png

Так работает изменение дня недели для задач. Кроме этого:

Теперь пользователь может нажать по ссылке -> его перекинет и сразу вернёт -> определится его часовой пояс -> он будет использоваться во всех задачах -> при следующей команде '/start' его не будет просить определить часовой пояс
Собственно, осталось только доделать выбор этапа, но проблема в том что во-первых я ничего не понимаю, а во-вторых я пытался пофиксить около получаса через нейросеть, но в итоге она пришла к тому, что проблема в чём-то другом. Да я и сам видел, что по логам всё норм, ошибок никаких нет, просто 3й вызов клавиатуры с действиями изменения этапа не приходит в действие. Хз как это фиксить, наверное всё-таки оставлю письменный выбор номера этапа на время
(если ч там 20:09 потому что мой бот работает наперёд и уведомление приходит в 20:09:59, хз потом пофикшу мб)
 
  • Нравится
Реакции: ccthief

keshanchik

Новичок
Автор темы
17
689
1720931473184.png


Теперь всё работает, проблема я так и не понял в чём была, я уже в тильте сидел перебирал варианты которые чатгпт накидывал и в моменте заработало, пофиксил его баги и вот такой результат
В целом, бота уже можно запускать на сервере, но я доделаю до самого конца и поделюсь с миром, когда он будет готов
Что по планам
1. Есть идейка сделать возможность одному человеку добавлять задачи для другого, но у меня есть сомнения в том, что это не будет лишним среди скромного функционала, да и сложно это оч. Мне кажется реализация этого сложнее чем реализация всего функционала который сейчас есть вместе взятого
2. Заметки. Я уже придумал концепт и, по идее, это должна быть бесполезная хрень, потому что как по мне люди какую-то важную информацию, чтобы о чём-то не забыть, например, оставляют в избранных, я и сам так делаю. Поэтому хз, как будто можно было бы и вообще их не делать, но чем-то разбавить функционал хочется
3. Оформление, внешний вид бота, оптимизация кода
4. Предварительные уведомления (за час, например, до выполнения задачи). Это оч просто реализовать, но я пока не знаю, надо или нет

Вообще, если тут есть небезразличные, то можете что-то предлагать, что вам может облегчить жизнь и что можно реализовать в боте. Хотя, мечтать, конечно, тоже можно, я вот например хотел бы встроить в бота нейросеть, которая могла бы планировать день, но пока это вряд ли смогу реализовать при всех усилиях
 

keshanchik

Новичок
Автор темы
17
689
Идеи просто летят в голову, на сервере бот будет, когда доделаю всё и приведу в идеальный вид

По идеям:
1. Названия для расписаний дня (уже реализовано, результат ниже)
2. Вместо заметок - функция контроля целей и достижений с возможностью добавления этапов для их исполнения
3. Вместо одинаковых напоминаний - добавление ряда фраз, с помощью которых будет происходить напоминание
4. Возможность добавления для задачи предварительного уведомления
5. Удаление всех задач одной кнопкой

Названия для расписаний реализованы уже сейчас, пользователь сам выбирает это название в начале создания
Было:
1722254919501.png
Стало:
1722254944339.png

Хорошо отдохнул и нахватался идей, поэтому уже начинаю работать над 4й идеей (буду делать 1-4-5-3-2)