gary7 / kino-bot

Personal Assistant Based on Slack Bot for Developer, Suitable for personal or small teams

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Personal Assistant Based on Slack Bot for Developer
Suitable for personal or small teams

Project Introduction Project Introduction Project Introduction
build status Requirements Status Dependency Status
Codecov Codacy

kino-bot

Kino is a personal assistant based on Slack Bot. It was developed as a personal project to improve my life quality by automatically quantified self. Various Tracking Tools (cf. RescueTime, Toggl, Todoist) and various third-party (cf. Github, DarkSky, Gbus and etc..) are customized as kino's skill. In addition, kino can automate the parts in everyday life and work. I will also use machine learning and deep learning to grow beyond simple bot to become a smart assistant.

Kino is getting smarter! Pull requests are always welcome. :D

Blog

Article - Title English Korean
Personal Assistant Kino Part 1 — Overview. Medium Github page
Personal Assistant Kino Part 2 - Skill & Scheduler. Medium Github page
Personal Assistant Kino Part 3 - T3. Medium Github page

Feature

  • Support mutiple languages (Korean and English)
  • Skill : make your own skill and simply register skill writing function's doc.
  • Scheduler : jobs(skill) running in background
  • Automatic Tracking
    • Sleep Time
    • Working Hour
    • Tasks
    • Happy & Attention Score
  • Notify latest Feed & Popular Tweet
    • Automatically save to Pocket based on your activity (Feed Catogory Classifier)
  • Integrate with Giphy
  • Customize Webhook for IFTTT or Zapier

Prerequisites

Quick Start

First, install requirements

pip install -r requirements.txt

Second, fill the config.yml (Minimal config)

bot:
  MASTER_NAME: <name>
  BOT_NAME: Kino
  LANG_CODE: en
  TRIGGER:
    - hey kino
    - 키노야
  ONLY_DIRECT: false   // text startswith Trigger or @kino, or Direct Message
  GIPHY_THRESHOLD: 85  // all responses are random pick number (1~100) to use giphy

slack:
  TOKEN: <token>
  channel:
    DEFAULT: "#general"

Finally, just run python main.py.

Current Skills

kino-bot has 27 skills.

  • 🏭 air_quality : Air quality forecast. (can use only Korea airkoreaPy)
  • ✍️ attention_question : Attention survey after do task.
  • ✍️ attention_report : Attention Report.
  • 🚍 bus_stop : Bus arrival information. (can use only Korea (gbus api))
  • 🌞 forecast : Weather forecast. (using darksky)
  • :octocat: github_commit : Check Github push count.
  • 😄 happy_question : Happiness survey.
  • 😄 happy_report : Happiness Report.
  • 🍯 honeyjam : Easter Egg - Korea Azae Humor (using honeyjam).
  • 🏗️ jenkins_build : Build a registered project for Jenkins.
  • 📋 kanban_sync : Todoist's tasks and Kanban board's card Syncing.
  • :thinking_face: keep_idea : Keep idea in Trello board's inbox list.
  • :scales: maxim_nietzsche : Nietzsche's Maxim.
  • :thinking_face: remind_idea : Remind Trello's inbox card randomly pick.
  • 📈 rescuetime_efficiency : RescueTime Efficiency Chart
  • 🎼 samhangsi : I am thinking about the Samhangsi with the kor ballad! (using char-rnn-tensorflow)
  • 💬 send_message : Send a text message.
  • 🌆 today_briefing : Today Briefing - brief Todoist tasks
  • 🌃 today_summary : Today summary - todoist_feedback, toggl_report, rescuetime_efficiency, happy_report, attention_report, github_commit
  • 📝 todoist_feedback : Feedback from Todoist activity.
  • 📃 todoist_remain : Show todoist's remaining tasks.
  • 🔔 toggl_checker : Toggl time checker Every 30 minutes.
  • 📊 toggl_report : Toggl task Report.
  • toggl_timer : Toggl Timer.
  • 💹 total_chart : Overall chart - weekly productivity, happiness, overall score chart.
  • 💹 total_score : Overall score - Productivity (RescueTime, Github Commit, Todoist, Toggl), Mean happiness, mean attention, Exercise, Diary.
  • 🔮 translate : Language translation using Naver Papago api.

Work in progress

  • conversation-tensorflow : A neural chatbot using sequence to sequence model with attentional decode
  • text-classification-tensorflow : filtering module that using feed's title
    • Kino tells me that all of the feeds that interest me are saved in the pocket. Data is automatically accumulating.
    • feed : all training data
    • pocket : label 1 (true) data

for Developer

if you want develop your own bot, clone base branch and implements skills.

License

See the LICENSE file for license rights and limitations (MIT).

About

Personal Assistant Based on Slack Bot for Developer, Suitable for personal or small teams

License:MIT License


Languages

Language:Python 100.0%