Coder Social home page Coder Social logo

dude's Introduction

logo

dude

Build Status License Project status Code Triagers Badge

Personal assistant based on the command line

Installation

Requirements

How to run

# clone this repo
$ git clone https://github.com/dude-pa/dude

# create a virtualenv
$ virtualenv venv  

# activate the virtualenv
$ . venv/bin/activate

# Install the package! In case you want to edit the source code
# use 'pip install --editable .' so that you don't need to install again and again
$ pip install .

# run it!
$ dude
# to exit the virtualenv, just type 'deactivate' without quotes

How to use this package

setup

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

# To create a configuration
$ dude setup new

# To delete a configuration
$ dude setup delete

# To check current configuration
$ dude setup check

chat

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

$ dude chat hi!
Dude says: Howdy.

# Simply write messages with more than one word
$ dude chat how are you?
Dude says: Lovely, thanks.

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
$ dude speedtest
Speed test results:
Ping: 3.04 ms
Download: 144.90 MB/s
Upload: 203.13 MB/s
  • url
# URL shortener and expander
$ dude url shorten manparvesh.com
Here\'s your shortened URL:
https://goo.gl/EVVPzK
$ dude 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
$ dude diary nn
Input your entry for note:
hey there

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

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

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

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

# view tasks
$ dude 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                                                              

love

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

# create configuration
$ dude love setup

# view config
$ dude love status

# write a note for them
$ dude love note

# view notes
$ dude love notes

money

This is for tracking money.

# create configuration
$ dude money setup

# view config
$ dude money status

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

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

learn

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

  • vocabulary: For enhancing your vocabulary and tracking your progress.
# get a random word
$  dude 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
$  dude vocabulary accuracy
Words asked in the past:
sinecure-- times used: 8 accuracy: 50.0
squalid-- times used: 6 accuracy: 66.0
# create new set (remember to keep the name to one word)
$  dude flashcards sets new english

# modify set
$  dude flashcards sets modify english

# list all sets
$  dude flashcards sets list

# select a study set
$  dude flashcards select english

# create new card in selected set (card name length can be more than 1 word)
$  dude flashcards cards new Oxford comma

# Know which set is selected and its information
$  dude flashcards status

# study the selected study set. This will show you all the cards in a study set
# one by one. 
$  dude 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.
$  dude 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

Simple thingy that shows a link to create an issue in the github repository

$  dude 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/dude-pa/dude/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
  • Canva: for creating the logo

Contributing

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

dude's People

Contributors

manparvesh avatar rishabh3 avatar

Watchers

James Cloos avatar Sunil Kumar Koiri 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.