Skip to content
A personal assistant
Python JavaScript CSS HTML
Failed to load latest commit information.
clients Match URLs better (were collection trailing '<') Mar 13, 2016
data Convert function_list_items.item to TEXT field (from VARCHAR) Aug 16, 2015
functions functions/habit.py: Fix misspelled variable Feb 18, 2016
interfaces Remove last part of Firefox service client Aug 16, 2015
kernel kernel/kernel.py: improve function/action not found errors Jun 29, 2015
.dockerignore Add Docker support for running Jarvis Nov 3, 2015
.gitignore Add ability to define a context in a response May 30, 2015
Dockerfile
LICENSE LICENSE: Add GPL v3.0 license Mar 10, 2015
README.md Add Docker support for running Jarvis Nov 3, 2015
config_example.py Implement GCM interface, and prefer it when sending reminders Jul 5, 2015
cron.py cron.py: Use virtualenv environment Jan 21, 2015
jarvis.service
requirements.txt Implement GCM interface, and prefer it when sending reminders Jul 5, 2015
start_server.py README.md: Simplify pip instructions Feb 28, 2015
test-requirements.txt Move test requirements into their own file Jul 5, 2015
test.py interfaces/web.py: Don't require a password in test environments Feb 14, 2015

README.md

Jarvis

Jarvis is a very simple personal assistant. It's probably not much use to anyone but me at the moment!

Jarvis is a Python daemon which communicates with it's clients via a REST interface.

It's clients include:

Docker

Jarvis can be run inside docker. It uses a mysql installation outside of the docker. See included files (Dockerfile, jarvis.service)

Dependencies:

  • Python 2.x
  • MySQL

Installation:

# Install packages
sudo apt-get install python-pip libmysqld-dev python-dev libcurl4-openssl-dev

# Install virtualenv
sudo pip install virtualenv

# Setup virtualenv for this project
cd ~/code/jarvis-src
virtualenv .

# Install requirements
bin/pip install -r requirements.txt

# Create database and database user

# Create config file
cp config_example.py config.py

# Edit config file
vim config.py

# Set up cron (fix user and pathname)
echo "* * * * * jarvisuser ~/code/jarvis-src/cron.py" >> /etc/cron.d/jarvis

Running

# Run Jarvis
cd ~/code/jarvis-src
./start_server.py

Database tables will be installed on first run.

Testing:

# Install testing requirements
bin/pip install -r test-requirements.txt

# Invoke test suite
bin/nosetests

# Invote test suite with coverage calculations
bin/nosetests --with-coverage --cover-package=clients,data,functions,interfaces,kernel

Twitter setup:

Visit the Twitter developer page and create a new application:

https://dev.twitter.com/apps/new

This will get you a consumer key and consumer secret. Performing the "oauth dance" gets you an oauth key and secret that authenticates yourself with Twitter.

Add them all to your config (follow the examples in the example config).

Something went wrong with that request. Please try again.