GithubHelp home page GithubHelp logo

toc-project-2017's Introduction

TOC Project 2017

A telegram bot based on a finite state machine.

Setup

Prerequisite

  • Python 3

Install Dependency

pip install -r requirements.txt

Secret Data

API_TOKEN and WEBHOOK_URL in app.py MUST be set to proper values. Otherwise, you might not be able to run your code.

Run Locally

You can either setup https server or using ngrok as a proxy.

ngrok would be used in the following instruction

ngrok http 5000

After that, ngrok would generate a https URL.

You should set WEBHOOK_URL (in app.py) to your-https-URL/hook.

Run the sever

python3 app.py

Finite State Machine

fsm

Usage

The initial state when chatting is set to user. Moreover, I designed an actual initial state init that accepts any input text to enter user state, in order to wake up the chatbot.

So you can simply wake the chatbot up by sending anythins like Hello! , 嗨~.

Assume we're now in user state. Next, my bot will prompt a welcome message. After that, user can input +1, +2, +3 to chat with the bot.

Let's talk about the function of +2 first, which is also the primary function of the bot. It's for fortune analysis based on constellation and Chinese zodiac/animal sign. User can choose one of the both when chatting with the bot.

I write a crawler to parse the fortune analysis website to get the corresponding response for different user. Also use reply_photo() to interact with the users.

As for the function of +1 or +3 in user state, User can interact with the bot for fun.

Author

Ryan Wang

toc-project-2017's People

Contributors

lee-w avatar ryanwang522 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.