DOU Проектор: NewsKit — Telegram-бот для фільтрування новин, створений 11-класниками
Усім привіт! Мене звати Дмитро Лопушанський, мені 16 років. Я — МАНівець і учень 11 класу СЗШ № 8 м. Львова з поглибленим вивченням німецької мови. Займаюся програмуванням майже 3 роки і за цей час створив вже декілька проектів. Зараз розвиваю NewsKit — чат-бот у Telegram, який надсилає добірку свіжих фільтрованих новин у зручний час з обраних новинних веб-сайтів.
Ідея
Під час навчання в IT-школі GoITeens на курсах Back-End та Front-End розробки 1 рік тому в мене з'єднання явилася ідея створити помічника, який бі сортував новини, які я люблю читати з цікавих мені сайтів. Я читаю переважно про нові гаджети, технології та ІТ-світ. Щоденне відвідування безлічі сайтів, які публікують цікаві новини на ці тими, стало вже моєю звичкою. Альо постійний моніторинг новинних сайтів і блогів забирав багато часу. Часто траплялося так, що на цих веб-сайтах з'єднання являлися зовсім недоречні або просто нецікаві статті. Тоді виникла ідея створити проект, який би вирішував цю проблему і допоміг багатьом іншим людям, які теж хотіли б читати всі найцікавіші для них новини з різних сайтів в одному місці.
Так виникла ідея NewsKit, і головним фішкою мого майбутнього проекту стала ідея фільтрації. Марк Ластовський, 16-річний учень 11 класу Львівської академічної гімназії, з яким ми разом вчилися на IT-курсах, теж приєднався до проекту.
Марк Ластовський і Дмитро Лопушанський
NewsKit — чат-бот у Telegram, який надсилає добірку свіжих фільтрованих новин у зручний час з обраних новинних веб-сайтів.
Чат-бот підтримує на цей момент понад 40 веб-сайтів та будь-які ключові слова користувача. Він може надсилати персоналізований новинний дайджест в будь-який час з точністю до хвилини. Завдяки постійному моніторингу новинних сайтів, бот допоможе не пропустити жодної новини і дасть змогу дізнатися про появу свіжої статті одразу ж після її публікації на веб-ресурсі.
DOU теж підтримується, і не треба щогодини оновлювати стрічку. NewsKit це зробить замість вас і повідомить, коли знайде щось новеньке та цікаве :)
Як працює бот
Спочатку користувач обирає мову спілкування, їх є поки що три: українська, російська та англійська, скоро стане доступна також німецька. Далі юзер має вибрати тематику новин, яка його цікавить (якщо цікавить щось особливе, то всі такі ключові слова можна одразу додати до свого переліку). Після цього обирається мова новин (мова статей, які надсилаються і які користувач може зрозуміти, новини не перекладаються). Потрібно також зверни сайти, з яких ви хочете читати новини. Наприкінці вибираєте годину отримання новин. У звичайній версії NewsKit — це 9:00,12:00, 21:00, щогодини та одразу після публікації.
Цей бот буде також мати платну Преміум-версію, яку ми випустимо вже незабаром. Детальніше про неї буде далі.
Після першого налаштування можна також додати ліміт новин у підбірці, додати сайти, з яких приходитимуть новини без фільтрації, змінити часовий пояс чи вказати особистий час отримання новин. Також можна змінити будь-які параметри, які було вказано раніше.
Фічі
Запросивши 2-х друзів, можна отримувати новинні добірки в будь-яку годину. Можна вказати 07:21, 09:15, 22:10 — немає ніяких обмежень.
Про людей, які від'їжджають за кордон чи живуть не в Україні, ми теж подумали. Доступна функція зміни часового поясу. Бот добирає новини з українських, російських, англійських та німецьких сайтів.
Тими
NewsKit — це рішення як для любителів новин, так і для професіоналів (наприклад, журналістів). Тими «Технології» та «Програмування» у нас є одними з найбільш детально опрацьованих.
Або чи допустима, що бухгалтеру важливо постійно відслідковувати останні зміни у поважному законодавстві. Достатня зайти в NewsKit та зверни потрібні тими.
На цей момент усі найпопулярніші запити щодо тим підтримуються. Проте, якщо ви не знайшли те, що вас цікавить, ви завжди можете додати ключові слова власноруч за допомогою простого слова-команди «Додай». Виглядає це таким чином: «Додай податки, пдв, закон». Після того, як опублікується нова стаття за цими ключовими словами, користувач її отримає в раніше завдань ним годину.
На всі питання та поради ми завжди відповідаємо. Тож, якщо користувач чогось не розуміє, то можна написати боту, він це перешле нам, а ми з радістю допоможемо!
Premium-підписка
Зараз відбувається важлива розробка, яка стане основою платної Premium-підписки, яка буде коштувати 29 грн/міс. Це сортування та аналіз контенту соцмереж та платформи Telegram. Як це буде виглядати?
Багато людей підписані на велику кількість Telegram-каналів, Facebook-сторінок, які постійно «спамлять» стрічку. Проте відписуватися від них не хочеться, бо інколи трапляються цікаві пости. Що ж тоді можна буде зробити? Користувач з Premium-підпискою NewsKit зможе надіслати боту посилання на потрібні канали чі сторінки, і весь контент звідти почне аналізуватися. NewsKit надішле людині лише ті пости, які підійдуть їй за обраними темами і ключовими словами. Це значно зекономить час і полегшить життя.
Також Premium-підписка дасть можливість користувачам читати 70% новин офлайн, отримувати новини в особисто встановлений час та змінювати вигляд новинної підбірки (наприклад, отримувати одним повідомленням). Ціна є досить невеликою, тому всі, хто хоче підтримати розробників і кому подобається NewsKit, зможуть собі дозволити Premium :)
Реалізація
NewsKit ми розробляємо вже майже 1 рік. Бот написаний мовою Python 3. Ми використовуємо базу даних Postgres та бібліотеку psycopg2 для роботи з нею. На нинішньому етапі код NewsKit складається з чотирьох частин:
- bot.py — відповідає за роботу самого бота у Telegram. Відбувається постійна взаємодія з Telegram Bot Api. Програма отримує запити методом getUpdates і відповідає на них.
- parse.py — кожні 10 хв парсити всі сайти, які ми підтримуємо, визначає нові статті на цих сайтах, записує їх у базу даних та розсилає деяким користувачам (годину отримання яких — «Одразу»).
- timesend.py — щохвилини перевіряє, кому потрібно надіслати новини, переводячи годину отримання новин шкірного користувача в локальний годину (NewsKit підтримує різні часові зони, тому ми написали спеціальні функції, які визначають локальний годину).
- app.py — наша Flask-аплікація для переадресації під час переходу на новинну статтю та форми для переадресації на оплату Premium-підписки.
Для парсингу статей використовуємо бібліотеку bs4, яка дозволяє швидко витягувати контент зі статичних сайтів. Зараз працюємо над додаванням підтримки динамічних сайтів, парсинг яких відбуватиметься через Selenium та Chrome webdriver. Сподіваємося незабаром додати можливість парсингу основних соцмереж (груп та профілів користувачів).
Паралельно працюємо над тим, щоб витримувати ще більшу кількість запитів. Поступово хочемо перевести серверну частину на вебхук і додати воркери, які розбиратимуть запити із сформованої черги способом FIFO.
Premium-підписка реалізована через сервіс LiqPay.
Піар-кампанія
Над NewsKit ми працюємо вже майже рік, проте лише декілька тижнів тому ми почали активно розкручувати та поширювати бот.
Насамперед ми пишемо журналістам та іншим людям, які працюють з новинами. Розказуємо про NewsKit у радіо - та телеефірах, пітчимо на конкурсах стартапів. Про NewsKit було вже опубліковано декілька статей на українських веб-ресурсах. Запускаємо рекламу в соцмережах, плануємо брати участь у конкурсах чат-ботів.
Конкуренти
Ми вважаємо, що це додатки Flipboard, Google News, Apple News, Feedly, сайт ukr.net та RSS-стрічки. На ринку ботів та новинних асистентів нам вдалося знайті лише боти, які спеціалізуються суто на певному сайті (наприклад, TechCrunch асистент та бот ABC News). Вони не є прямими конкурентами, адже працюють лише в межах одного веб-ресурсу.
Щодо названих вище додатків, їхня українська локалізація дуже обмежена. На мою думку,новинним додатком, який найкраще локалізований для України, є Google News, який хоча б підтримує кілька десятків українських сайтів. Нашою перевагою на цьому етапі є якраз нішевість — робота на українському ринку. Окрім цього, ми пропонуємо можливість пошуку за ключовими словами та можливість відстежування конкретних слів на всіх медіаресурсах, які ми підтримуємо. Такого функціоналу немає у названих вище додатків.
Альо такі можливості має сайт ukr.net. Як NewsKit може конкурувати з українським медіагігантом? Персоналізація новин. Укрнет — це довга стрічка новин, розсортованих за тематикою. Прочитати всі новини, які пропонує укрнет до цікавих тем, неможливо, оскільки статей надто багато. NewsKit, залежно від поставленого ліміту, обиратиме головні новини і надсилатиме їх користувачеві, щоб той не лише не пропустивши важливого, але й одночасно не був перенасичений хвилею новин (мі постійно покращуємо цей алгоритм).
Багато людей також підписані на RSS-стрічки. Проблема RSS полягає у надмірній кількості новин, знову ж — без фільтрації. Альо це не означає, що NewsKit не може надсилати великий обсяг інформації. Якщо користувач так захоче, то командою /chooseall завжди можна налаштувати потрібне.
Плани на майбутнє
Мі щодня додаємо новий функціонал і покращуємо тієї, що вже існує. До найближчих планів належать:
- Підтримка соцмереж (планується фільтрування постів у соцмережах), завершення функції Premium.
- Фільтрування Telegram-каналів (майже на обраних каналах теж будуть фільтруватися і надсилатися, звичайно, з посиланням на першоджерело).
- Розділ «Популярні новини».
- Вибрані новини (позначені зірочкою, для перегляду чи прочитання пізніше).
- Створення ланцюжка подібних новин (наприклад, написаних з приводу однієї і тієї ж події).
- Вихід на міжнародний ринок.
- Підтримка ще більшої кількості веб-сайтів.
- Додавання нових функцій до Premium-підписки.
Також думаємо над виходом з платформи Telegram та створенням сайту, звичайно, зі збереженням нашого функціоналу.
Плануємо монетизовувати проект через трафік, який ми спрямовуємо на новинні сайти, а також через Premium-підписку.
І насамкінець...
Наша невелика команда буде справді вдячна всім, хто спробує покористуватися NewsKit, а також усім тим, хто допоможе, щоб про наш проект дізналися більше людей.
Ми намагаємося створити крутий продукт, який би допоміг багатьом людям. Переконані, що є ще багато можливостей для вдосконалення. Ми тішимося з шкірного відгуку: як позитивного, так і конструктивного негативного. На кожен відгук відповідаємо та розглядаємо всі побажання щодо функціоналу продукту.
Можливі шляхи співпраці можна обговорити особисто з нами або ж командою /feedback безпосередньо в боті.
NewsKit доступний за посиланням: t.me/newskit_bot
Опубліковано: 26/02/19 @ 11:00
Розділ Безпека Блоги
Рекомендуємо:
Що має знаті Senior PHP Developer. Результати аналізу вакансій в Україні та Каліфорнії
Просів трафік після змін на сайті НИМ – як відновити?
Information Security дайджест #13: Лллакинамбур
Hello World у Computer Vision: визначаємо швидкість руху авто на кордоні з Польщею
Віра в ідею, culture fit і самонавчання: що вимагають від кандидатів каліфорнійські стартапи