jared 0.0.7a3 → 0.0.7a4
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +10 -8
- data/jared.gemspec +35 -35
- data/lib/jared/core/clock/init.rb +15 -0
- data/lib/jared/core/clock/lib/clock.rb +23 -0
- data/lib/jared/core/configure/init.rb +15 -0
- data/lib/jared/core/configure/lib/config.rb +60 -0
- data/lib/jared/core/create/init.rb +16 -0
- data/lib/jared/core/create/lib/create.rb +33 -0
- data/lib/jared/core/daemon/daemon.rb +104 -0
- data/lib/jared/core/daemon/init.rb +15 -0
- data/lib/jared/core/date/init.rb +15 -0
- data/lib/jared/core/date/lib/date.rb +45 -0
- data/lib/jared/core/greeter/init.rb +15 -0
- data/lib/jared/core/greeter/lib/greeting.rb +26 -0
- data/lib/jared/core/jamendo/init.rb +17 -0
- data/lib/jared/core/jamendo/lib/jamendo.rb +88 -0
- data/lib/jared/core/mail/init.rb +15 -0
- data/lib/jared/core/mail/lib/mail.rb +45 -0
- data/lib/jared/core/map/New File +0 -0
- data/lib/jared/core/map/init.rb +15 -0
- data/lib/jared/core/map/lib/map.rb +12 -0
- data/lib/jared/core/player/init.rb +15 -0
- data/lib/jared/core/player/lib/player.rb +33 -0
- data/lib/jared/core/stock/init.rb +17 -0
- data/lib/jared/core/stock/lib/stock.rb +34 -0
- data/lib/jared/core/tasks/init.rb +15 -0
- data/lib/jared/core/tasks/lib/task.rb +42 -0
- data/lib/jared/core/weather/init.rb +17 -0
- data/lib/jared/core/weather/lib/weather.rb +70 -0
- data/lib/jared/database.rb +59 -0
- data/lib/jared/jared.rb +22 -141
- data/lib/jared/logg.rb +15 -0
- data/lib/jared/models/task.rb +5 -5
- data/lib/jared/plugin.rb +35 -0
- data/lib/jared/plugins.rb +92 -0
- data/lib/jared/version.rb +2 -2
- data/lib/jared.rb +86 -77
- data/readme.md +14 -18
- metadata +34 -22
- data/lib/jared/helpers/calculator.rb +0 -8
- data/lib/jared/helpers/calendar.rb +0 -15
- data/lib/jared/helpers/clock.rb +0 -19
- data/lib/jared/helpers/config.rb +0 -46
- data/lib/jared/helpers/create.rb +0 -27
- data/lib/jared/helpers/date.rb +0 -41
- data/lib/jared/helpers/deamon.rb +0 -100
- data/lib/jared/helpers/define.rb +0 -8
- data/lib/jared/helpers/greeting.rb +0 -22
- data/lib/jared/helpers/jamendo.rb +0 -58
- data/lib/jared/helpers/mail.rb +0 -38
- data/lib/jared/helpers/map.rb +0 -10
- data/lib/jared/helpers/notfound.rb +0 -14
- data/lib/jared/helpers/player.rb +0 -29
- data/lib/jared/helpers/stock.rb +0 -21
- data/lib/jared/helpers/task.rb +0 -114
- data/lib/jared/helpers/weather.rb +0 -68
- data/lib/jared/lib.rb +0 -13
data/lib/jared.rb
CHANGED
@@ -1,77 +1,86 @@
|
|
1
|
-
#!/bin/ruby
|
2
|
-
|
3
|
-
require
|
4
|
-
require '
|
5
|
-
require
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
1
|
+
#!/bin/ruby
|
2
|
+
s=Time.now
|
3
|
+
require "json"
|
4
|
+
require 'logger'
|
5
|
+
require "open-uri"
|
6
|
+
require 'fileutils'
|
7
|
+
require 'versionomy'
|
8
|
+
require_relative 'jared/version'
|
9
|
+
|
10
|
+
if File.exists?("#{Dir.home}/.jared") && File.directory?("#{Dir.home}/.jared")
|
11
|
+
else
|
12
|
+
FileUtils.mkdir("#{Dir.home}/.jared")
|
13
|
+
end
|
14
|
+
|
15
|
+
if File.exists?("#{Dir.home}/.jared/logs") && File.directory?("#{Dir.home}/.jared/logs")
|
16
|
+
else
|
17
|
+
FileUtils.mkdir("#{Dir.home}/.jared/logs")
|
18
|
+
end
|
19
|
+
|
20
|
+
if File.exists?("#{Dir.home}/.jared/db") && File.directory?("#{Dir.home}/.jared/db")
|
21
|
+
else
|
22
|
+
FileUtils.mkdir("#{Dir.home}/.jared/db")
|
23
|
+
end
|
24
|
+
|
25
|
+
if File.exists?("#{Dir.home}/.jared/plugins") && File.directory?("#{Dir.home}/.jared/plugins")
|
26
|
+
else
|
27
|
+
FileUtils.mkdir("#{Dir.home}/.jared/plugins")
|
28
|
+
end
|
29
|
+
|
30
|
+
require_relative "jared/logg"
|
31
|
+
include Logg
|
32
|
+
|
33
|
+
log.info "Loaded logger."
|
34
|
+
log.info "Using Jared version: #{Jared::VERSION}"
|
35
|
+
Thread.new do
|
36
|
+
info=open("http://rubygems.org/api/v1/gems/jared.json").read
|
37
|
+
json=JSON.parse(info)
|
38
|
+
current_version = Versionomy.parse(Jared::VERSION)
|
39
|
+
|
40
|
+
web_version = Versionomy.parse(json['version'])
|
41
|
+
if current_version < web_version
|
42
|
+
log.info "A new version of Jared is available on RubyGems."
|
43
|
+
puts "A new version of Jared is available on RubyGems."
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
require_relative "jared/database"
|
48
|
+
log.info "Loading Database..."
|
49
|
+
Lib.db
|
50
|
+
log.info "Loaded Database."
|
51
|
+
|
52
|
+
require_relative "jared/plugins"
|
53
|
+
log.info "Loading plugins..."
|
54
|
+
@plugins=Plugins::Load.new.load_all
|
55
|
+
log.info "Loaded plugins."
|
56
|
+
|
57
|
+
if User.first.blank?
|
58
|
+
require 'green_shoes'
|
59
|
+
new_user = User.new(:name => "#{Etc.getlogin}", :zip => "10001", :music => 'classical')
|
60
|
+
log.info "Creating new user: #{new_user.inspect}"
|
61
|
+
new_user.save
|
62
|
+
log.info "Created new user: #{new_user.inspect}"
|
63
|
+
c=confirm "Setup Jared?\nSetting up Jared will enable it\n to retrieve personalized data for you."
|
64
|
+
if c == true
|
65
|
+
require 'jared/core/config'
|
66
|
+
Action::Configure.new.config
|
67
|
+
else
|
68
|
+
alert "Run: 'jared config' to setup later."
|
69
|
+
log.info "Skipped initial setup."
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
if Music.first.blank?
|
74
|
+
jrd = Music.new(:status => "Ready", :now_playing => "", :now_playing_author => "")
|
75
|
+
jrd.save
|
76
|
+
if jrd
|
77
|
+
else
|
78
|
+
log.error 'Failed to create Music!'
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
f=Time.now
|
83
|
+
@load_time = f-s
|
84
|
+
log.info "Main dependencies took #{@load_time} seconds to load."
|
85
|
+
|
86
|
+
require_relative "jared/jared"
|
data/readme.md
CHANGED
@@ -1,8 +1,16 @@
|
|
1
1
|
# Jared - Ruby Powered Digital Assistant (RDA)
|
2
2
|
## What is Jared?
|
3
|
+
Jared is a ruby program that in the hopefully near future will be useful for:
|
4
|
+
* Creating and managing your tasks
|
5
|
+
* Checking your email
|
6
|
+
* Playing your preferred music
|
7
|
+
* Creating skeleton project files
|
8
|
+
* Understand spoken commands (in the distant future)
|
9
|
+
* Other miscellaneous actions
|
10
|
+
|
3
11
|
Jared's goal is to be a reality of Jarvis from the film, Ironman.
|
4
12
|
|
5
|
-
However, thats a
|
13
|
+
However, thats a _long_ ways down the road.
|
6
14
|
## Install Jared
|
7
15
|
You can get the lasest stable release on RubyGems via *gem install jared*
|
8
16
|
|
@@ -13,13 +21,6 @@ You can get the lasest stable release on RubyGems via *gem install jared*
|
|
13
21
|
|
14
22
|
Usage: jared clock
|
15
23
|
|
16
|
-
### Cal
|
17
|
-
<span style="color:red;">Not yet implemented.</span>
|
18
|
-
|
19
|
-
Manage your appointments.
|
20
|
-
|
21
|
-
Usage: jared cal
|
22
|
-
|
23
24
|
### Day
|
24
25
|
Puts current day.
|
25
26
|
|
@@ -67,21 +68,16 @@ You can get the lasest stable release on RubyGems via *gem install jared*
|
|
67
68
|
|
68
69
|
Usage: jared weather (today/tomorrow/forecast)
|
69
70
|
|
70
|
-
|
71
|
-
<span style="color:red;">Not yet implemented.</span>
|
72
|
-
|
73
|
-
Google's the definition of the word.
|
74
|
-
|
75
|
-
Usage: jared whatis glass
|
76
|
-
|
71
|
+
|
77
72
|
### Whereis
|
78
73
|
Opens Gmaps in default browser.
|
79
74
|
|
80
|
-
Usage: jared whereis
|
81
|
-
|
82
|
-
Search Gmaps for > Walmart
|
75
|
+
Usage: jared whereis "Mt. st helens"
|
83
76
|
|
84
77
|
### View
|
85
78
|
Opens the file in the system viewer.
|
86
79
|
|
87
80
|
Usage: jared view jared.rb
|
81
|
+
|
82
|
+
## Contribute
|
83
|
+
[Wiki](http://github.com/cyberarm/jared/wiki/Contribute)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jared
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7a4
|
5
5
|
prerelease: 5
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-01-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: stock_quote
|
@@ -60,7 +60,7 @@ dependencies:
|
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
|
-
name:
|
63
|
+
name: versionomy
|
64
64
|
requirement: !ruby/object:Gem::Requirement
|
65
65
|
none: false
|
66
66
|
requirements:
|
@@ -265,28 +265,41 @@ files:
|
|
265
265
|
- bin/jared
|
266
266
|
- jared.gemspec
|
267
267
|
- lib/jared.rb
|
268
|
-
- lib/jared/
|
269
|
-
- lib/jared/
|
270
|
-
- lib/jared/
|
271
|
-
- lib/jared/
|
272
|
-
- lib/jared/
|
273
|
-
- lib/jared/
|
274
|
-
- lib/jared/
|
275
|
-
- lib/jared/
|
276
|
-
- lib/jared/
|
277
|
-
- lib/jared/
|
278
|
-
- lib/jared/
|
279
|
-
- lib/jared/
|
280
|
-
- lib/jared/
|
281
|
-
- lib/jared/
|
282
|
-
- lib/jared/
|
283
|
-
- lib/jared/
|
284
|
-
- lib/jared/
|
268
|
+
- lib/jared/core/clock/init.rb
|
269
|
+
- lib/jared/core/clock/lib/clock.rb
|
270
|
+
- lib/jared/core/configure/init.rb
|
271
|
+
- lib/jared/core/configure/lib/config.rb
|
272
|
+
- lib/jared/core/create/init.rb
|
273
|
+
- lib/jared/core/create/lib/create.rb
|
274
|
+
- lib/jared/core/daemon/daemon.rb
|
275
|
+
- lib/jared/core/daemon/init.rb
|
276
|
+
- lib/jared/core/date/init.rb
|
277
|
+
- lib/jared/core/date/lib/date.rb
|
278
|
+
- lib/jared/core/greeter/init.rb
|
279
|
+
- lib/jared/core/greeter/lib/greeting.rb
|
280
|
+
- lib/jared/core/jamendo/init.rb
|
281
|
+
- lib/jared/core/jamendo/lib/jamendo.rb
|
282
|
+
- lib/jared/core/mail/init.rb
|
283
|
+
- lib/jared/core/mail/lib/mail.rb
|
284
|
+
- lib/jared/core/map/New File
|
285
|
+
- lib/jared/core/map/init.rb
|
286
|
+
- lib/jared/core/map/lib/map.rb
|
287
|
+
- lib/jared/core/player/init.rb
|
288
|
+
- lib/jared/core/player/lib/player.rb
|
289
|
+
- lib/jared/core/stock/init.rb
|
290
|
+
- lib/jared/core/stock/lib/stock.rb
|
291
|
+
- lib/jared/core/tasks/init.rb
|
292
|
+
- lib/jared/core/tasks/lib/task.rb
|
293
|
+
- lib/jared/core/weather/init.rb
|
294
|
+
- lib/jared/core/weather/lib/weather.rb
|
295
|
+
- lib/jared/database.rb
|
285
296
|
- lib/jared/jared.rb
|
286
|
-
- lib/jared/
|
297
|
+
- lib/jared/logg.rb
|
287
298
|
- lib/jared/models/music.rb
|
288
299
|
- lib/jared/models/task.rb
|
289
300
|
- lib/jared/models/user.rb
|
301
|
+
- lib/jared/plugin.rb
|
302
|
+
- lib/jared/plugins.rb
|
290
303
|
- lib/jared/version.rb
|
291
304
|
- readme.md
|
292
305
|
- spec/spec_helper.rb
|
@@ -324,4 +337,3 @@ signing_key:
|
|
324
337
|
specification_version: 3
|
325
338
|
summary: Ruby powered digital assistant
|
326
339
|
test_files: []
|
327
|
-
has_rdoc:
|
@@ -1,15 +0,0 @@
|
|
1
|
-
class Helpers
|
2
|
-
# Not yet implemented.
|
3
|
-
#
|
4
|
-
# _jared_ _cal_ Manage your appointments in a Green Shoes app.
|
5
|
-
def self.cal
|
6
|
-
require "green_shoes"
|
7
|
-
Shoes.app do
|
8
|
-
title "Calendar Events"
|
9
|
-
events = ["Sidney", "Call Bob"]
|
10
|
-
events.each do |e|
|
11
|
-
para e
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
data/lib/jared/helpers/clock.rb
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
class Helpers
|
2
|
-
# _jared_ _clock_ Opens a digital clock in a Green Shoes app.
|
3
|
-
def self.clock
|
4
|
-
begin
|
5
|
-
require "green_shoes"
|
6
|
-
Shoes.app width: 400, height: 70, title: "Jared Clock" do
|
7
|
-
@clock = stack do
|
8
|
-
title "#{Time.now.strftime("%I:%M:%P")}"
|
9
|
-
end
|
10
|
-
every 0.5 do
|
11
|
-
@clock.clear do
|
12
|
-
title "#{Time.now.strftime("%I:%M:%S%P")}"
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
rescue LoadError
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
data/lib/jared/helpers/config.rb
DELETED
@@ -1,46 +0,0 @@
|
|
1
|
-
class Helpers
|
2
|
-
Lib.db
|
3
|
-
# Opens a Green Shoes window to configure your name, zipcode, gmail username, gmail password.
|
4
|
-
def self.config
|
5
|
-
require 'gibberish'
|
6
|
-
Shoes.app title: "Jared - Configuration", height: 300, width: 500 do
|
7
|
-
background "#333".."#666"
|
8
|
-
tagline "Configure Jared to your person"
|
9
|
-
@user = User.first
|
10
|
-
if @user.blank?
|
11
|
-
button "Create profile" do
|
12
|
-
new_user = User.new(:name => "#{Etc.getlogin}", :zip => "10001")
|
13
|
-
new_user.save
|
14
|
-
if new_user == true
|
15
|
-
exit
|
16
|
-
Helpers.config
|
17
|
-
else
|
18
|
-
alert "Failed. Retry."
|
19
|
-
end
|
20
|
-
end
|
21
|
-
else
|
22
|
-
para 'Your name:'
|
23
|
-
@name = edit_line "#{@user.name}"
|
24
|
-
para 'Your zipcode (For weather)'
|
25
|
-
@zip = edit_line "#{@user.zip}"
|
26
|
-
para 'Prefered music genre (For jamendo)'
|
27
|
-
@music = list_box items: ['classical', 'rock', 'jazz', 'electro', 'hiphop'].sort
|
28
|
-
para 'Your Gmail email address (For email checking)'
|
29
|
-
@mail = edit_line "#{@user.mail_username}"
|
30
|
-
para 'Your Gmail password (Will be encrypted)'
|
31
|
-
@password = edit_line "#{@user.mail_password}", secret: true
|
32
|
-
button "Save" do
|
33
|
-
cipher = Gibberish::AES.new(@mail.text)
|
34
|
-
@secret = cipher.enc(@password.text)
|
35
|
-
update_user = @user.update_attributes(:name => @name.text, :zip => @zip.text, :music => @music.text, :mail_username => @mail.text, :mail_password => @secret)
|
36
|
-
if update_user
|
37
|
-
alert "Saved."
|
38
|
-
close
|
39
|
-
else
|
40
|
-
alert "failed to save."
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
data/lib/jared/helpers/create.rb
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
class Helpers
|
2
|
-
# Creates a File or Folder.
|
3
|
-
#
|
4
|
-
# Usage:
|
5
|
-
#
|
6
|
-
# <em>jared create file/folder/dir</em>
|
7
|
-
def self.create
|
8
|
-
begin
|
9
|
-
if ARGV[1].include?("folder")
|
10
|
-
FileUtils.mkdir "#{ARGV[2]}"
|
11
|
-
puts "New Folder is at: #{Dir.pwd}/#{ARGV[2]}"
|
12
|
-
elsif ARGV[1].include?("dir")
|
13
|
-
FileUtils.mkdir "#{ARGV[2]}"
|
14
|
-
puts "New Directory is at: #{Dir.pwd}/#{ARGV[2]}"
|
15
|
-
elsif ARGV[1].include?("file")
|
16
|
-
File.open("#{ARGV[2]}", 'w') do |file|
|
17
|
-
file.puts "Hello World"
|
18
|
-
end
|
19
|
-
puts "New file is at: #{Dir.pwd}/#{ARGV[2]}"
|
20
|
-
else
|
21
|
-
puts "Don't know how-to create that."
|
22
|
-
end
|
23
|
-
rescue NoMethodError
|
24
|
-
puts "Folder/File name can't be blank."
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
data/lib/jared/helpers/date.rb
DELETED
@@ -1,41 +0,0 @@
|
|
1
|
-
class Helpers
|
2
|
-
# Date and Time
|
3
|
-
#
|
4
|
-
# _jared_ _time_ returns the current time.
|
5
|
-
#
|
6
|
-
#e.g.
|
7
|
-
#
|
8
|
-
#02:33:19pm
|
9
|
-
#
|
10
|
-
# _Jared_ _date_ returns the current date.
|
11
|
-
#
|
12
|
-
#e.g.
|
13
|
-
#
|
14
|
-
#Tuesday the 1st of May 2012
|
15
|
-
#
|
16
|
-
#(05/01/2012)
|
17
|
-
def self.date
|
18
|
-
st = "#{Time.now.strftime("%A the %dst of %B %Y")}"
|
19
|
-
nd = "#{Time.now.strftime("%A the %dnd of %B %Y")}"
|
20
|
-
rd = "#{Time.now.strftime("%A the %drd of %B %Y")}"
|
21
|
-
|
22
|
-
if Time.now.strftime("%d") == "02"
|
23
|
-
puts nd.gsub("0", "")
|
24
|
-
elsif Time.now.strftime("%d") == "22"
|
25
|
-
puts nd
|
26
|
-
elsif Time.now.strftime("%d") == "03"
|
27
|
-
puts rd
|
28
|
-
elsif Time.now.strftime("%d") == "33"
|
29
|
-
puts rd
|
30
|
-
elsif Time.now.strftime("%d") == "21"
|
31
|
-
puts st
|
32
|
-
elsif Time.now.strftime("%d") == "31"
|
33
|
-
puts st
|
34
|
-
elsif Time.now.strftime("%d") == "01"
|
35
|
-
puts st.gsub("0", "")
|
36
|
-
else
|
37
|
-
puts "#{Time.now.strftime("%A the %dth of %B %Y")}"
|
38
|
-
end
|
39
|
-
puts "(#{Time.now.strftime("%m/%d/%Y")})"
|
40
|
-
end
|
41
|
-
end
|
data/lib/jared/helpers/deamon.rb
DELETED
@@ -1,100 +0,0 @@
|
|
1
|
-
# == Deamon
|
2
|
-
#
|
3
|
-
# Functions for deamon command.
|
4
|
-
class Deamon
|
5
|
-
Lib.db
|
6
|
-
# TODO: Add tasks to deamon
|
7
|
-
def self.task
|
8
|
-
puts "Jared Tasks"
|
9
|
-
puts "0 Tasks due today."
|
10
|
-
end
|
11
|
-
# TODO: add appointments to deamon
|
12
|
-
#
|
13
|
-
# NOTE: Research Google Calendar
|
14
|
-
def self.appointment
|
15
|
-
puts "Jared Calendar"
|
16
|
-
puts "0 Appointments occurring today."
|
17
|
-
puts "Google Calendar"
|
18
|
-
puts "x Appointments occurring today"
|
19
|
-
end
|
20
|
-
# Actually checks mail.
|
21
|
-
def self.message
|
22
|
-
begin
|
23
|
-
@user = User.first
|
24
|
-
if @user.mail_username.blank?
|
25
|
-
puts "Jared is not configured to check email."
|
26
|
-
puts "Please run, 'jared config'"
|
27
|
-
Kernel.exit
|
28
|
-
elsif @user.mail_password.blank?
|
29
|
-
puts "Jared is not configured to check email."
|
30
|
-
puts "Please run, 'jared config'"
|
31
|
-
Kernel.exit
|
32
|
-
else
|
33
|
-
cipher = Gibberish::AES.new(@user.mail_username)
|
34
|
-
password = cipher.dec(@user.mail_password)
|
35
|
-
Gmail.connect(@user.mail_username, password) do |gmail|
|
36
|
-
if gmail.logged_in?
|
37
|
-
if gmail.inbox.count(:unread) == 0
|
38
|
-
else
|
39
|
-
puts "Google Mail"
|
40
|
-
puts gmail.inbox.count(:unread).to_s + " Unread messages."
|
41
|
-
|
42
|
-
gmail.inbox.emails(:unread).first(15).each do |email|
|
43
|
-
email.unread!
|
44
|
-
print "From:",email.sender[0].mailbox,"@", email.sender[0].host, ", Subject:",email.subject
|
45
|
-
puts
|
46
|
-
puts
|
47
|
-
end
|
48
|
-
end
|
49
|
-
else
|
50
|
-
puts "Failed to login."
|
51
|
-
Kernel.exit
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
56
|
-
rescue => e
|
57
|
-
if e.to_s.include?("mail_")
|
58
|
-
puts "Jared is not configured to check email."
|
59
|
-
puts "Please run, 'jared config' or click 'OK' on the popup."
|
60
|
-
Kernel.exit
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
class Helpers
|
66
|
-
# Checks every 60 seconds for, Tasks, Appointments, Emails.
|
67
|
-
#
|
68
|
-
# Usage: <em>jared deamon (task/cal/mail)</em>
|
69
|
-
def self.deamon
|
70
|
-
if ARGV[1] == nil
|
71
|
-
Helpers.mail
|
72
|
-
loop do
|
73
|
-
Deamon.message
|
74
|
-
Deamon.task
|
75
|
-
Deamon.appointment
|
76
|
-
puts
|
77
|
-
puts
|
78
|
-
sleep(60)
|
79
|
-
end
|
80
|
-
elsif ARGV[1] == "cal" || ARGV[1] == "calendar"
|
81
|
-
loop do
|
82
|
-
Deamon.appointment
|
83
|
-
puts
|
84
|
-
sleep(60)
|
85
|
-
end
|
86
|
-
elsif ARGV[1] == 'mail'
|
87
|
-
Helpers.mail
|
88
|
-
loop do
|
89
|
-
Deamon.message
|
90
|
-
sleep(60)
|
91
|
-
end
|
92
|
-
elsif ARGV[1] == "task"
|
93
|
-
loop do
|
94
|
-
Deamon.task
|
95
|
-
puts
|
96
|
-
sleep(60)
|
97
|
-
end
|
98
|
-
end
|
99
|
-
end
|
100
|
-
end
|
data/lib/jared/helpers/define.rb
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
class Helpers
|
2
|
-
Lib.db
|
3
|
-
# Dynamically greets the user by time when <em>jared hi/hello</em> is run.
|
4
|
-
def self.greeting
|
5
|
-
if Time.now.strftime("%H").to_i < "04".to_i
|
6
|
-
puts "Go tee bed."
|
7
|
-
elsif Time.now.strftime("%H").to_i < "07".to_i
|
8
|
-
puts "Yawn Zzzz"
|
9
|
-
elsif Time.now.strftime("%H").to_i < "12".to_i
|
10
|
-
puts "Morning, #{User.first.name.capitalize}"
|
11
|
-
elsif Time.now.strftime("%H").to_i < "16".to_i
|
12
|
-
puts "Afternoon, #{User.first.name.capitalize}"
|
13
|
-
elsif Time.now.strftime("%H").to_i < "20".to_i
|
14
|
-
puts "Evening, #{User.first.name.capitalize}"
|
15
|
-
elsif Time.now.strftime("%H").to_i < "22".to_i
|
16
|
-
puts "Ummm, good night, #{User.first.name.capitalize}"
|
17
|
-
puts "Its getting late, consider getting some rest."
|
18
|
-
elsif Time.now.strftime("%H").to_i < "24".to_i
|
19
|
-
puts "Zzzz"
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
@@ -1,58 +0,0 @@
|
|
1
|
-
class Helpers
|
2
|
-
|
3
|
-
def self.player(n=0)
|
4
|
-
puts "Now playing: #{@data['name']}, By: #{@data['artist_name']} (#{n})"
|
5
|
-
@playbin = Gst::ElementFactory.make('playbin2')
|
6
|
-
@playbin.uri = @data['stream']
|
7
|
-
loop = GLib::MainLoop.new(nil, false)
|
8
|
-
bus = @playbin.bus
|
9
|
-
bus.add_watch {|bus, message|
|
10
|
-
case message.type
|
11
|
-
when Gst::Message::EOS
|
12
|
-
loop.quit
|
13
|
-
end
|
14
|
-
true}
|
15
|
-
@playbin.play
|
16
|
-
begin
|
17
|
-
loop.run
|
18
|
-
rescue Interrupt
|
19
|
-
ensure
|
20
|
-
@playbin.stop
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
def self.jamendo(mode='once')
|
25
|
-
Lib.db
|
26
|
-
@jared = Music.first
|
27
|
-
@user = User.first
|
28
|
-
require 'gtk2'
|
29
|
-
require 'open-uri'
|
30
|
-
require 'json'
|
31
|
-
require 'gst'
|
32
|
-
@list = open("http://api.jamendo.com/get2/name+url+stream+album_name+album_url+album_image+artist_name+artist_url/track/json/track_album+album_artist/?n=25&order=ratingmonth_desc&tag_idstr=#{@user.music}").read
|
33
|
-
@d = JSON.parse(@list)
|
34
|
-
@data = @d[2]
|
35
|
-
|
36
|
-
if mode == 'loop'
|
37
|
-
puts 'Starting loop, use CTRL-Pause(Break) to stop.'
|
38
|
-
loop do
|
39
|
-
v = Random.rand(0..24)
|
40
|
-
@data = @d[v]
|
41
|
-
@jared.update_attributes(:author_url => "#{@data['artist_url']}", :album_image => "#{@data['album_image']}", :music_url => "#{@data['url']}", :album_url => "#{@data['album_url']}", :now_playing => "#{@data['name']}", :now_playing_author => "#{@data['artist_name']}", :now_playing_album => "#{@data['album_name']}")
|
42
|
-
Helpers.player(v)
|
43
|
-
end
|
44
|
-
elsif mode == 'once'
|
45
|
-
v = Random.rand(0..49)
|
46
|
-
@data = @d[v]
|
47
|
-
@jared.update_attributes(:author_url => "#{@data['artist_url']}", :album_image => "#{@data['album_image']}", :music_url => "#{@data['url']}", :album_url => "#{@data['album_url']}", :now_playing => "#{@data['name']}", :now_playing_author => "#{@data['artist_name']}", :now_playing_album => "#{@data['album_name']}")
|
48
|
-
Helpers.player(v)
|
49
|
-
elsif mode == 'help'
|
50
|
-
puts 'loop|once'
|
51
|
-
else
|
52
|
-
v = mode.to_s.to_i
|
53
|
-
@data = @d[v]
|
54
|
-
@jared.update_attributes(:author_url => "#{@data['artist_url']}", :album_image => "#{@data['album_image']}", :music_url => "#{@data['url']}", :album_url => "#{@data['album_url']}", :now_playing => "#{@data['name']}", :now_playing_author => "#{@data['artist_name']}", :now_playing_album => "#{@data['album_name']}")
|
55
|
-
Helpers.player(mode.to_s.to_i)
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|