Skip to content

dclems93/yoda

 
 

Repository files navigation

yoda

Personal assistant, based on the command line. Herh herh


Build status Codecov License Project status

Install, how to

Requirements

  • python2
  • virtualenv (only for testing and development)
  • python-dev package (if using Ubuntu)
  • Visual C++ 9.0 for Python (If using Windows)
  • python-devel package (If using MacOS/OSX: link)

Run, how to

# Clone this repo, you should.
$ git clone https://github.com/yoda-pa/yoda

# Change directory into the cloned repository
$ cd yoda

# create a virtualenv with python2
# The path and the name of the executable may be different depending on your OS
$ virtualenv -p /usr/bin/python2 venv

# activate the virtualenv
$ . venv/bin/activate

# Install the package, you must! In case you want to edit the source code
# use 'pip install --editable .'
$ pip install .

# the time has come
$ yoda
# to exit the virtualenv, just type 'deactivate' without quotes

Use this package, how to

setup

This command helps to create a setup configuration for you to save some information locally. Your password is saved in the config file after encrypting, so you need not worry about it.

# To create a configuration
$ yoda setup new

# To delete a configuration
$ yoda setup delete

# To check current configuration
$ yoda setup check

chat

This package contains a simple chatbot as well! The chat command can be used to chat with it

# Simply write messages with more than one word
$ yoda chat who are you
Yoda speaks:
Here to make your life easier than ever, I am.

$ yoda chat how are you
Yoda speaks:
Could be better not.  Yeesssssss.

You can test the chat functionality on api.ai agent website here

dev

This command group contains some sub-commands that may be helpful for developers and tech-geeks.

  • speedtest
# run a speed test for your internet connection
$ yoda speedtest
Speed test results:
Ping: 3.04 ms
Download: 144.90 MB/s
Upload: 203.13 MB/s
  • url
# URL shortener and expander
$ yoda url shorten manparvesh.com
Here's your shortened URL:
https://goo.gl/EVVPzK
$ yoda url expand https://goo.gl/EVVPzK
Here's your original URL:
http://manparvesh.com/

diary

This command can be used to maintain a personal diary, roughly based on the concept of Bullet Journal.

# new note
$ yoda diary nn
Input your entry for note:
hey there

# view notes
$ yoda diary notes
Today's notes:
----------------
  Time  | Note
--------|-----
12:54:22| hey there
12:54:45| hi, this is the yoda

# new task
$ yoda diary nt
Input your entry for task:
go office

# view tasks
$ yoda diary tasks
Today's agenda:
----------------
Status |  Time   | Text
-------|---------|-----
   O   | 15:50:48: go office
----------------

Summary:
----------------
Incomplete tasks: 1
Completed tasks: 0

# view tasks
$ yoda diary ct
Today's agenda:
----------------
Number |  Time   | Task
-------|---------|-----
   1   | 15:50:48: go office
Enter the task number that you would like to set as completed
1

# analyze current month tasks
$ yoda diary analyze 

love

This command can be used to maintain a profile of someone.

# create configuration
$ yoda love setup

# view config
$ yoda love status

# write a note for them
$ yoda love note

# view notes
$ yoda love notes

money

For tracking money, this is.

# create configuration
$ yoda money setup

# view config
$ yoda money status

# add an expense using natural language
$ yoda money exp
spent 30 dollars on shoes

# view expenses
$ yoda money exps
2017-05-04 16:06:00 SGD 30 shoes

Idea list

For creating list of ideas, type

# To add idea
$ yoda ideas add --task <task_name> --inside <project_name>

# To show list of ideas
$ yoda ideas show

# To remove a task from idea
$ yoda ideas remove --task <task_name> --inside <project_name>

# To remove an idea completely
$ yoda ideas remove --project <project_name>

learn

This command group contains commands that, helpful in learning new things, will be. Yeesssssss.

  • vocabulary: For enhancing your vocabulary and tracking your progress.

    # get a random word
    $  yoda vocabulary word
    sinecure:
    <Enter> to show meaning
    a job that pays a salary but requires little work
    Did you know / remember the meaning?
    no
    
    # view your progress
    $  yoda vocabulary accuracy
    Words asked in the past:
    sinecure-- times used: 8 accuracy: 50.0
    squalid-- times used: 6 accuracy: 66.0
    
  • flashcards: for learning anything! (inspiration)

    # create new set (remember to keep the name to one word)
    $  yoda flashcards sets new english
    
    # modify set
    $  yoda flashcards sets modify english
    
    # list all sets
    $  yoda flashcards sets list
    
    # select a study set
    $  yoda flashcards select english
    
    # create new card in selected set (card name length can be more than 1 word)
    $  yoda flashcards cards new Oxford comma
    
    # Know which set is selected and its information
    $  yoda flashcards status
    
    # study the selected study set. This will show you all the cards in a study set
    # one by one.
    $  yoda flashcards study
    
  • define: to get different meanings of a word. This definition search will be automatically saved, so that while you are working on your vocabulary, you can come through the new word as well.

    $ yoda define car
    A few definitions of the word "car" with their parts of speech are given below:
    #---------------------------------
    noun: a motor vehicle with four wheels; usually propelled by an internal combustion engine
    noun: the compartment that is suspended from an airship and that carries personnel and the cargo and the power plant
    noun: where passengers ride up and down
    noun: a wheeled vehicle adapted to the rails of railroad
    noun: a conveyance for passengers or freight on a cable railway
    

feedback

To create an issue in the github repository simple thing that shows a link. Yeesssssss.

$  yoda feedback
For:
    1. reporting a bug
    2. For suggesting a feature
    3. Any general suggestion or question
Please create an issue in the Github repository:
https://github.com/yoda-pa/yoda/issues/new

Packages and services used

  • Click: for building command line application
  • pychalk: Colors in terminal
  • apiai: api-ai for natural language understanding
  • pyyaml: for parsing yaml files
  • emoji: emojis!
  • lepl: for formatted parsing
  • pycrypto: To encrypt / decrypt your password
  • pyspeedtest: To test network bandwidth
  • forex-python: Foreign exchange rates and currency conversion
  • dulwich: for git
  • PyGithub: for using Github API v3
  • Gravit: for creating the logo
  • Yoda's illustration SVG was taken from here

Contribute, you must

Please refer to the contributing guidelines for contributing to this project.

About

Personal assistant, based on the command line. Herh herh

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%