Giter Site home page Giter Site logo

coffeerecommendationbot's Introduction

CoffeeRecommendationBot

Recommends a coffee to Twitterusers in need !
Build Status

You can see a version of this bot running here. I'm still struggling with the automatic responses, but the daily coffee tweet is working great !

Screenshot of CoffeeRecommendationBot in action

Features

  • Responds to direct mentions
  • Likes / Retweets indirect mentions
  • Can tweet a "Coffee of the Day" style tweet
  • Updates it's beverages from Starbucks (Thanks to @emorres25 !)
  • Manages drinks in easy-to-edit JSON format (Thanks to @tsonnen !)
  • Constant quality checks with Travis-CI (Thanks to @Twista !)
  • Well maintained code, written with lot's of love (Thanks to everyone !)

Setup

Install the requirements with pip install -r requirements.txt

Create a keys.py file with the required tokens:

consumer_key=""
consumer_secret=""
access_token_key=""
access_token_secret=""

Testing

Configuration for Travis CI can be found inside .travis.yml. The demo version of this bot runs on Python 2.7.

If you want travis to use other Python versions like 3.3 you can simply change the python: line inside .travis.yml

.travis.yml Python 3.3 Sample

language: python

python:
  - 3.3

install:
  - pip install -r requirements.txt
  - pip install pep8 flake8
  - pip list

script:
  - flake8 .

You can even test for multiple Python environments (2.7 & 3.3 in the sample below):smile:

.travis.yml Python 2.7 & 3.3 Sample

language: python

python:
  - 2.7
  - 3.3

install:
  - pip install -r requirements.txt
  - pip install pep8 flake8
  - pip list

script:
  - flake8 .

Contribution Guidelines

Thanks for the interest ! Contributing guidelines are available in 'CONTRIBUTING.md'

License

This project is licensed under the terms of the MIT license. The full license text is available in the LICENSE file.

coffeerecommendationbot's People

Contributors

carloscuesta avatar choyiny avatar deastiny avatar defcon-007 avatar dependabot[bot] avatar juliawong avatar junquera avatar karldreher avatar qzsg avatar raj454raj avatar rosssmyth avatar sbshah97 avatar shauryachawla avatar sig1nt avatar subhrajyotisen avatar techworm21 avatar tsonnen avatar twista avatar zombiefied avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

coffeerecommendationbot's Issues

Add any of the following

Improve drink generation algorithm
SPAM MORE
Add more drinks
Provide customized drinks
Add some documentation
Clean up the mess

Updating documentation

add background and update the README.md, and seeing if I can contribute to the documentation updated in #15

Merging scripts

It isn't really neccessary to have two different scripts, merging them would make this a bit more pythonistic ;)

Providing customized drinks

Just a heads up, this is my first time contributing to a project, so please bear with me.

I'm looking at adding a feature to provide customized drink options! My thought process behind the implementation is creating a console menu with options to either send a randomly generated tweet or to customize one of the attributes of the drink itself.

From the second option, another menu would be displayed to choose which attribute to change. After selecting the attribute, the user would be able to enter in their own text, return to the customization menu and finally send the tweet. So they can customize as much, or as little, as they want.

As far as the implementation of the code, i'm looking at having the code flow like below.

main_menu()-->customize_order_menu()-->customize_attribute-->go back to customize_order_menu()-->make_tweet()-->send_tweet()

So the program will end up behaving a bit differently when I'm done. If anyone has any thoughts or suggestions, I'd love to hear them.

Creation of "popular" and "roasts" categories

I feel it would be a great idea to allow a twitter user to ask the CoffeeBot for a current popular coffee type.

"roasts" category was added as a certain type of hot coffee to order. Not sure what to do with this category though.

This could possibly be implemented by tweeting to a random follower a popular coffee every once in a while. What do you guys think?

Build failing on Python 3 Environments after PR#34

@DeastinY Please merge my incoming pull request before merging any other prs.

This issue fixes build failing after merging in pull request #34 which solves issue #16

Build for all Python 3 env fails as xrange has been replaced with range

My pr contains a dirty workaround to make builds pass (hopefully the workaround works)

Moving from urllib2 to requests

Hey @DeastinY
Kudos on making this bot.

While reading the code of the crawler "coffe_crawler.py", I find that we are using urllib2 for our HTTP connections. However, its API is a bit broken and too tedious at times. I would like to suggest that we move to Requests library. Here is a discussion on the three libraries: http://stackoverflow.com/questions/2018026/what-are-the-differences-between-the-urllib-urllib2-and-requests-module

Let me know what you think about this. I would be more than happy to make the changes.

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.