jared 0.0.7a3 → 0.0.7a4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. data/.gitignore +10 -8
  2. data/jared.gemspec +35 -35
  3. data/lib/jared/core/clock/init.rb +15 -0
  4. data/lib/jared/core/clock/lib/clock.rb +23 -0
  5. data/lib/jared/core/configure/init.rb +15 -0
  6. data/lib/jared/core/configure/lib/config.rb +60 -0
  7. data/lib/jared/core/create/init.rb +16 -0
  8. data/lib/jared/core/create/lib/create.rb +33 -0
  9. data/lib/jared/core/daemon/daemon.rb +104 -0
  10. data/lib/jared/core/daemon/init.rb +15 -0
  11. data/lib/jared/core/date/init.rb +15 -0
  12. data/lib/jared/core/date/lib/date.rb +45 -0
  13. data/lib/jared/core/greeter/init.rb +15 -0
  14. data/lib/jared/core/greeter/lib/greeting.rb +26 -0
  15. data/lib/jared/core/jamendo/init.rb +17 -0
  16. data/lib/jared/core/jamendo/lib/jamendo.rb +88 -0
  17. data/lib/jared/core/mail/init.rb +15 -0
  18. data/lib/jared/core/mail/lib/mail.rb +45 -0
  19. data/lib/jared/core/map/New File +0 -0
  20. data/lib/jared/core/map/init.rb +15 -0
  21. data/lib/jared/core/map/lib/map.rb +12 -0
  22. data/lib/jared/core/player/init.rb +15 -0
  23. data/lib/jared/core/player/lib/player.rb +33 -0
  24. data/lib/jared/core/stock/init.rb +17 -0
  25. data/lib/jared/core/stock/lib/stock.rb +34 -0
  26. data/lib/jared/core/tasks/init.rb +15 -0
  27. data/lib/jared/core/tasks/lib/task.rb +42 -0
  28. data/lib/jared/core/weather/init.rb +17 -0
  29. data/lib/jared/core/weather/lib/weather.rb +70 -0
  30. data/lib/jared/database.rb +59 -0
  31. data/lib/jared/jared.rb +22 -141
  32. data/lib/jared/logg.rb +15 -0
  33. data/lib/jared/models/task.rb +5 -5
  34. data/lib/jared/plugin.rb +35 -0
  35. data/lib/jared/plugins.rb +92 -0
  36. data/lib/jared/version.rb +2 -2
  37. data/lib/jared.rb +86 -77
  38. data/readme.md +14 -18
  39. metadata +34 -22
  40. data/lib/jared/helpers/calculator.rb +0 -8
  41. data/lib/jared/helpers/calendar.rb +0 -15
  42. data/lib/jared/helpers/clock.rb +0 -19
  43. data/lib/jared/helpers/config.rb +0 -46
  44. data/lib/jared/helpers/create.rb +0 -27
  45. data/lib/jared/helpers/date.rb +0 -41
  46. data/lib/jared/helpers/deamon.rb +0 -100
  47. data/lib/jared/helpers/define.rb +0 -8
  48. data/lib/jared/helpers/greeting.rb +0 -22
  49. data/lib/jared/helpers/jamendo.rb +0 -58
  50. data/lib/jared/helpers/mail.rb +0 -38
  51. data/lib/jared/helpers/map.rb +0 -10
  52. data/lib/jared/helpers/notfound.rb +0 -14
  53. data/lib/jared/helpers/player.rb +0 -29
  54. data/lib/jared/helpers/stock.rb +0 -21
  55. data/lib/jared/helpers/task.rb +0 -114
  56. data/lib/jared/helpers/weather.rb +0 -68
  57. data/lib/jared/lib.rb +0 -13
data/.gitignore CHANGED
@@ -1,8 +1,10 @@
1
- *.gem
2
- .bundle
3
- .yardoc
4
- Gemfile.lock
5
- pkg/*
6
- *.*~
7
- doc/*
8
- .project
1
+ *.gem
2
+ .bundle
3
+ .yardoc
4
+ Gemfile.lock
5
+ pkg/*
6
+ *.*~
7
+ doc/*
8
+ .project
9
+ ._redcar
10
+ lib/jared/drb/
data/jared.gemspec CHANGED
@@ -1,36 +1,36 @@
1
- # -*- encoding: utf-8 -*-
2
- $:.push File.expand_path("../lib", __FILE__)
3
- require "jared/version"
4
-
5
- Gem::Specification.new do |s|
6
- s.name = "jared"
7
- s.version = Jared::VERSION
8
- s.authors = ["Cyber"]
9
- s.email = ["matthewlikesrobots@gmail.com"]
10
- s.homepage = "https://github.com/cyberarm/jared"
11
- s.summary = "Ruby powered digital assistant"
12
- s.description = "Ruby powered digital assistant"
13
-
14
- s.rubyforge_project = "jared"
15
-
16
- s.files = `git ls-files`.split("\n")
17
- s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
- s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
- s.require_paths = ["lib", "bin"]
20
-
21
- s.add_runtime_dependency "stock_quote"
22
- s.add_runtime_dependency "green_shoes"
23
- s.add_runtime_dependency "gstreamer"
24
- s.add_runtime_dependency "thor"
25
- s.add_runtime_dependency "chronic"
26
- s.add_runtime_dependency "sys-uname"
27
- s.add_runtime_dependency "activerecord"
28
- s.add_runtime_dependency "sqlite3"
29
- s.add_runtime_dependency "launchy"
30
- s.add_runtime_dependency 'weatherboy'
31
- s.add_runtime_dependency 'area'
32
- s.add_runtime_dependency 'gmail'
33
- s.add_runtime_dependency 'gibberish'
34
- s.add_runtime_dependency 'faster_require'
35
- s.add_runtime_dependency 'json'
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "jared/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "jared"
7
+ s.version = Jared::VERSION
8
+ s.authors = ["Cyber"]
9
+ s.email = ["matthewlikesrobots@gmail.com"]
10
+ s.homepage = "https://github.com/cyberarm/jared"
11
+ s.summary = "Ruby powered digital assistant"
12
+ s.description = "Ruby powered digital assistant"
13
+
14
+ s.rubyforge_project = "jared"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.require_paths = ["lib", "bin"]
20
+
21
+ s.add_runtime_dependency "stock_quote"
22
+ s.add_runtime_dependency "green_shoes"
23
+ s.add_runtime_dependency "gstreamer"
24
+ s.add_runtime_dependency "versionomy"
25
+ s.add_runtime_dependency "chronic"
26
+ s.add_runtime_dependency "sys-uname"
27
+ s.add_runtime_dependency "activerecord"
28
+ s.add_runtime_dependency "sqlite3"
29
+ s.add_runtime_dependency "launchy"
30
+ s.add_runtime_dependency 'weatherboy'
31
+ s.add_runtime_dependency 'area'
32
+ s.add_runtime_dependency 'gmail'
33
+ s.add_runtime_dependency 'gibberish'
34
+ s.add_runtime_dependency 'faster_require'
35
+ s.add_runtime_dependency 'json'
36
36
  end
@@ -0,0 +1,15 @@
1
+ require "jared/plugin"
2
+
3
+ plugin=Jared::Plugin.config do |plugin|
4
+ plugin.name = "Clock"
5
+ plugin.description = "Shows a clock."
6
+ plugin.author = "Cyberarm"
7
+ plugin.homepage = "http://github.com/cyberarm/jared"
8
+ plugin.sourcecode = "http://github.com/cyberarm/jared"
9
+ plugin.command = "clock"
10
+ plugin.usage = "clock"
11
+ plugin.version = "0.4.0"
12
+ plugin.main_require = "lib/clock"
13
+ plugin.jared_version = "0.0.7a4"
14
+ plugin.platform = :ruby
15
+ end
@@ -0,0 +1,23 @@
1
+ class Action
2
+ # _jared_ _clock_ Opens a digital clock in a Green Shoes app.
3
+ class Clock
4
+ def initialize
5
+ begin
6
+ require "green_shoes"
7
+ Shoes.app width: 400, height: 70, title: "Jared Clock" do
8
+ @clock = stack do
9
+ title "#{Time.now.strftime("%I:%M:%P")}"
10
+ end
11
+ every 0.5 do
12
+ @clock.clear do
13
+ title "#{Time.now.strftime("%I:%M:%S%P")}"
14
+ end
15
+ end
16
+ end
17
+ rescue LoadError
18
+ end
19
+ end
20
+ end
21
+ end
22
+
23
+ Action::Clock.new
@@ -0,0 +1,15 @@
1
+ require "jared/plugin"
2
+
3
+ Jared::Plugin.config do |plugin|
4
+ plugin.name = "Configure"
5
+ plugin.description = "Configure Jared."
6
+ plugin.author = "Cyberarm"
7
+ plugin.homepage = "http://github.com/cyberarm/jared"
8
+ plugin.sourcecode = "http://github.com/cyberarm/jared"
9
+ plugin.command = "config"
10
+ plugin.usage = "config"
11
+ plugin.version = "0.4.0"
12
+ plugin.main_require = "lib/config"
13
+ plugin.jared_version = "0.0.7a4"
14
+ plugin.platform = :ruby
15
+ end
@@ -0,0 +1,60 @@
1
+ require 'green_shoes'
2
+
3
+ class Action
4
+ class Configure
5
+ Lib.db
6
+ # Opens a Green Shoes window to configure your name, zipcode, gmail username, gmail password.
7
+ def config
8
+ require 'gibberish'
9
+ require "json"
10
+ require "open-uri"
11
+
12
+ Shoes.app title: "Jared - Configuration", height: 300, width: 500 do
13
+ @radios = open("http://api.jamendo.com/get2/id+name/radio/json/?n=all").read
14
+ @music_array = []
15
+ JSON.parse(@radios).each do |radio|
16
+ @music_array << radio['name']
17
+ end
18
+ background "#333".."#666"
19
+ tagline "Configure Jared to your person"
20
+ @user = User.first
21
+ if @user.blank?
22
+ button "Create profile" do
23
+ new_user = User.new(:name => "#{Etc.getlogin}", :zip => "10001")
24
+ new_user.save
25
+ if new_user == true
26
+ close
27
+ Helpers.config
28
+ else
29
+ alert "Failed. Retry."
30
+ end
31
+ end
32
+ else
33
+ para 'Your name:'
34
+ @name = edit_line "#{@user.name}"
35
+ para 'Your zipcode (For weather)'
36
+ @zip = edit_line "#{@user.zip}"
37
+ para 'Prefered music genre (For jamendo)'
38
+ @music = list_box items: @music_array.sort
39
+ para 'Your Gmail email address (For email checking)'
40
+ @mail = edit_line "#{@user.mail_username}"
41
+ para 'Your Gmail password (Will be encrypted)'
42
+ @password = edit_line "", secret: true
43
+ button "Save" do
44
+ cipher = Gibberish::AES.new(@mail.text)
45
+ @secret = cipher.enc(@password.text)
46
+ update_user = @user.update_attributes(:name => @name.text, :zip => @zip.text, :music => @music.text, :mail_username => @mail.text, :mail_password => @secret)
47
+ if update_user
48
+ alert "Saved."
49
+ close
50
+ else
51
+ alert "failed to save."
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end
59
+
60
+ Action::Configure.new.config
@@ -0,0 +1,16 @@
1
+ require "jared/plugin"
2
+
3
+ Jared::Plugin.config do |plugin|
4
+ plugin.name = "Create"
5
+ plugin.description = "Create files and folders, as well as project skeleton files."
6
+ plugin.author = "Cyberarm"
7
+ plugin.homepage = "http://github.com/cyberarm/jared"
8
+ plugin.sourcecode = "http://github.com/cyberarm/jared"
9
+ plugin.command = "create"
10
+ plugin.usage = "create folder infos_project"
11
+ plugin.arguments = "TYPE, NAME"
12
+ plugin.version = "0.4.0"
13
+ plugin.main_require = "lib/create"
14
+ plugin.jared_version = "0.0.7a4"
15
+ plugin.platform = :ruby
16
+ end
@@ -0,0 +1,33 @@
1
+ class Action
2
+ class Create
3
+ # Creates a File or Folder.
4
+ #
5
+ # Usage:
6
+ #
7
+ # <em>jared create file/folder/dir</em>
8
+ def create
9
+ if defined?(ARGV[1].length)
10
+ begin
11
+ if ARGV[1].downcase == "folder"
12
+ FileUtils.mkdir "#{ARGV[2]}"
13
+ puts "New Folder is at: #{Dir.pwd}/#{ARGV[2]}"
14
+ elsif ARGV[1].downcase == "dir"
15
+ FileUtils.mkdir "#{ARGV[2]}"
16
+ puts "New Directory is at: #{Dir.pwd}/#{ARGV[2]}"
17
+ elsif ARGV[1].downcase == "file"
18
+ File.open("#{ARGV[2]}", 'w') do |file|
19
+ file.puts "Hello World"
20
+ end
21
+ puts "New file is at: #{Dir.pwd}/#{ARGV[2]}"
22
+ else
23
+ puts "Don't know how-to create that."
24
+ end
25
+ rescue NoMethodError
26
+ puts "Folder/File name can't be blank."
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+
33
+ Action::Create.new.create
@@ -0,0 +1,104 @@
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
+
12
+ # TODO: add appointments to deamon
13
+ #
14
+ # NOTE: Research Google Calendar
15
+ def self.appointment
16
+ puts "Jared Calendar"
17
+ puts "0 Appointments occurring today."
18
+ puts "Google Calendar"
19
+ puts "x Appointments occurring today"
20
+ end
21
+
22
+ # Actually checks mail.
23
+ def self.message
24
+ begin
25
+ @user = User.first
26
+ if @user.mail_username.blank?
27
+ puts "Jared is not configured to check email."
28
+ puts "Please run, 'jared config'"
29
+ Kernel.exit
30
+ elsif @user.mail_password.blank?
31
+ puts "Jared is not configured to check email."
32
+ puts "Please run, 'jared config'"
33
+ Kernel.exit
34
+ else
35
+ cipher = Gibberish::AES.new(@user.mail_username)
36
+ password = cipher.dec(@user.mail_password)
37
+ Gmail.connect(@user.mail_username, password) do |gmail|
38
+ if gmail.logged_in?
39
+ if gmail.inbox.count(:unread) == 0
40
+ else
41
+ puts "Google Mail"
42
+ puts gmail.inbox.count(:unread).to_s + " Unread messages."
43
+ gmail.inbox.emails(:unread).first(15).each do |email|
44
+ email.unread!
45
+ print "From:",email.sender[0].mailbox,"@", email.sender[0].host, ", Subject:",email.subject
46
+ puts
47
+ puts
48
+ end
49
+ end
50
+ else
51
+ puts "Failed to login."
52
+ Kernel.exit
53
+ end
54
+ end
55
+ end
56
+ end
57
+ rescue => e
58
+ if e.to_s.include?("mail_")
59
+ puts "Jared is not configured to check email."
60
+ puts "Please run, 'jared config' or click 'OK' on the popup."
61
+ Kernel.exit
62
+ end
63
+ end
64
+ end
65
+ # end
66
+
67
+ class Action
68
+ class Daemon
69
+ # Checks every 60 seconds for, Tasks, Appointments, Emails.
70
+ #
71
+ # Usage: <em>jared deamon (task/cal/mail)</em>
72
+ def deamon
73
+ if ARGV[1] == nil
74
+ Helpers.mail
75
+ loop do
76
+ Deamon.message
77
+ Deamon.task
78
+ Deamon.appointment
79
+ puts
80
+ puts
81
+ sleep(60)
82
+ end
83
+ elsif ARGV[1] == "cal" || ARGV[1] == "calendar"
84
+ loop do
85
+ Deamon.appointment
86
+ puts
87
+ sleep(60)
88
+ end
89
+ elsif ARGV[1] == 'mail'
90
+ Helpers.mail
91
+ loop do
92
+ Deamon.message
93
+ sleep(60)
94
+ end
95
+ elsif ARGV[1] == "task"
96
+ loop do
97
+ Deamon.task
98
+ puts
99
+ sleep(60)
100
+ end
101
+ end
102
+ end
103
+ end
104
+ end
@@ -0,0 +1,15 @@
1
+ require "jared/plugin"
2
+
3
+ Jared::Plugin.config do |plugin|
4
+ plugin.name = "Daemon"
5
+ plugin.description = "Shows a clock."
6
+ plugin.author = "Cyberarm"
7
+ plugin.homepage = "http://github.com/cyberarm/jared"
8
+ plugin.sourcecode = "http://github.com/cyberarm/jared"
9
+ plugin.command = "daemon"
10
+ plugin.usage = "clock"
11
+ plugin.version = "0.4.0"
12
+ plugin.main_require = "lib/clock"
13
+ plugin.jared_version = "0.0.7a4"
14
+ plugin.platform = :ruby
15
+ end
@@ -0,0 +1,15 @@
1
+ require "jared/plugin"
2
+
3
+ Jared::Plugin.config do |plugin|
4
+ plugin.name = "Date"
5
+ plugin.description = "Shows current date."
6
+ plugin.author = "Cyberarm"
7
+ plugin.homepage = "http://github.com/cyberarm/jared"
8
+ plugin.sourcecode = "http://github.com/cyberarm/jared"
9
+ plugin.command = "date"
10
+ plugin.usage = "date"
11
+ plugin.version = "0.4.0"
12
+ plugin.main_require = "lib/date"
13
+ plugin.jared_version = "0.0.7a4"
14
+ plugin.platform = :ruby
15
+ end
@@ -0,0 +1,45 @@
1
+ class Action
2
+ class Date
3
+ # Date and Time
4
+ #
5
+ # _jared_ _time_ returns the current time.
6
+ #
7
+ #e.g.
8
+ #
9
+ #02:33:19pm
10
+ #
11
+ # _Jared_ _date_ returns the current date.
12
+ #
13
+ #e.g.
14
+ #
15
+ #Tuesday the 1st of May 2012
16
+ #
17
+ #(05/01/2012)
18
+ def date
19
+ st = "#{Time.now.strftime("%A the %dst of %B %Y")}"
20
+ nd = "#{Time.now.strftime("%A the %dnd of %B %Y")}"
21
+ rd = "#{Time.now.strftime("%A the %drd of %B %Y")}"
22
+
23
+ if Time.now.strftime("%d") == "02"
24
+ puts nd.gsub("0", "")
25
+ elsif Time.now.strftime("%d") == "22"
26
+ puts nd
27
+ elsif Time.now.strftime("%d") == "03"
28
+ puts rd
29
+ elsif Time.now.strftime("%d") == "33"
30
+ puts rd
31
+ elsif Time.now.strftime("%d") == "21"
32
+ puts st
33
+ elsif Time.now.strftime("%d") == "31"
34
+ puts st
35
+ elsif Time.now.strftime("%d") == "01"
36
+ puts st.gsub("0", "")
37
+ else
38
+ puts "#{Time.now.strftime("%A the %dth of %B %Y")}"
39
+ end
40
+ puts "(#{Time.now.strftime("%m/%d/%Y")})"
41
+ end
42
+ end
43
+ end
44
+
45
+ Action::Date.new.date
@@ -0,0 +1,15 @@
1
+ require "jared/plugin"
2
+
3
+ Jared::Plugin.config do |plugin|
4
+ plugin.name = "Greeter"
5
+ plugin.description = "Shows a clock."
6
+ plugin.author = "Cyberarm"
7
+ plugin.homepage = "http://github.com/cyberarm/jared"
8
+ plugin.sourcecode = "http://github.com/cyberarm/jared"
9
+ plugin.command = "greet"
10
+ plugin.usage = "clock"
11
+ plugin.version = "0.4.0"
12
+ plugin.main_require = "lib/greeting"
13
+ plugin.jared_version = "0.0.7a5"
14
+ plugin.platform = :ruby
15
+ end
@@ -0,0 +1,26 @@
1
+ class Action
2
+ class Greet
3
+ Lib.db
4
+ # Dynamically greets the user by time when <em>jared hi/hello</em> is run.
5
+ def greet
6
+ if Time.now.strftime("%H").to_i < "04".to_i
7
+ puts "Go tee bed."
8
+ elsif Time.now.strftime("%H").to_i < "07".to_i
9
+ puts "Yawn Zzzz"
10
+ elsif Time.now.strftime("%H").to_i < "12".to_i
11
+ puts "Morning, #{User.first.name.capitalize}"
12
+ elsif Time.now.strftime("%H").to_i < "16".to_i
13
+ puts "Afternoon, #{User.first.name.capitalize}"
14
+ elsif Time.now.strftime("%H").to_i < "20".to_i
15
+ puts "Evening, #{User.first.name.capitalize}"
16
+ elsif Time.now.strftime("%H").to_i < "22".to_i
17
+ puts "Ummm, good night, #{User.first.name.capitalize}"
18
+ puts "Its getting late, consider getting some rest."
19
+ elsif Time.now.strftime("%H").to_i < "24".to_i
20
+ puts "Zzzz"
21
+ end
22
+ end
23
+ end
24
+ end
25
+
26
+ Action::Greet.new.greet
@@ -0,0 +1,17 @@
1
+ require "jared/plugin"
2
+
3
+ Jared::Plugin.config do |plugin|
4
+ plugin.name = "Jamendo"
5
+ plugin.description = "Streams prefered music from Jamendo. Experimental."
6
+ plugin.author = "Cyberarm"
7
+ plugin.author_email = "matthewlikesrobots@gmail.com"
8
+ plugin.homepage = "http://github.com/cyberarm/jared-core-plugins"
9
+ plugin.sourcecode = "http://github.com/cyberarm/jared-core-plugins"
10
+ plugin.command = "jamendo"
11
+ plugin.arguments = "ACTION"
12
+ plugin.usage = "jamendo play", "Now playing: title, by: composer (1 minute 30 seconds)"
13
+ plugin.version = "0.4.0"
14
+ plugin.main_require = "lib/jamendo"
15
+ plugin.jared_version = "0.0.7a4"
16
+ plugin.platform = :ruby
17
+ end
@@ -0,0 +1,88 @@
1
+ require "json"
2
+ require 'gst'
3
+
4
+ class Action
5
+ class Jamendo
6
+ attr_accessor :playloop, :playbin
7
+ def length(l)
8
+ @m="#{l.to_i.divmod(60)[0]} minutes"
9
+ if defined?(l.to_i.divmod(60)[1])
10
+ @s="#{l.to_i.divmod(60)[1]} seconds"
11
+ else
12
+ @s=nil
13
+ end
14
+ return "#{@m} #{@s}"
15
+ end
16
+
17
+ def player(n=0)
18
+ puts "Now playing: #{@data['name']}, By: #{@data['artist_name']} (#{length(@data['duration'])})"
19
+ @playbin = Gst::ElementFactory.make('playbin2')
20
+ @playbin.ready
21
+ @playloop = GLib::MainLoop.new(nil, false)
22
+ @playbin.bus.add_watch {|bus, message|
23
+ case message.type
24
+ when Gst::Message::EOS
25
+ @playloop.quit
26
+ when Gst::MessageError
27
+ @playloop.quit
28
+ @playbin.stop
29
+ end
30
+ true}
31
+ @playbin.uri = @data['stream']
32
+ @playbin.play
33
+ begin
34
+ @playloop.run
35
+ rescue Interrupt
36
+ ensure
37
+ @playbin.stop
38
+ end
39
+ end
40
+
41
+ # at_exit do
42
+ # require_relative 'lib.rb'
43
+ # Lib.db
44
+ # @jared = Music.first
45
+ # @jared.update_attributes(:author_url => "", :music_url => "", :album_image => "", :album_url => "", :now_playing => "", :now_playing_author => "", :now_playing_album => "")
46
+ # end
47
+
48
+ def jamendo(mode='play')
49
+ mode=mode.downcase
50
+ Lib.db
51
+ @jared = Music.first
52
+ @user = User.first
53
+ require 'gtk2'
54
+ require 'open-uri'
55
+ require 'json'
56
+ require 'gst'
57
+ @user.music
58
+
59
+ @radios = open("http://api.jamendo.com/get2/id+name/radio/json/?n=all").read
60
+ @radio_id = 0
61
+ @radio_data=JSON.parse(@radios)
62
+ @radio_data.select do |radio|
63
+ next unless radio['name'] == @user.music
64
+ @radio_id = radio['id']
65
+ end
66
+
67
+ sleep 1
68
+
69
+ @list = open("http://api.jamendo.com/get2/name+url+stream+album_name+album_url+album_image+artist_name+artist_url+duration/track/json/track_album+album_artist/?radioid=#{@radio_id}&n=100&streamencoding=ogg2").read
70
+ @d = JSON.parse(@list)
71
+ if mode == 'play'
72
+ puts 'Starting loop, use CTRL-Pause(Break) to stop.'
73
+ (@d.count-1).times do |v|
74
+ p (@d.count-1)
75
+ # v = Random.rand(0..@d.count-1)
76
+ @data = @d[v]
77
+ @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']}")
78
+ player(v)
79
+ end
80
+ elsif mode == 'help'
81
+ puts 'loop|once'
82
+ end
83
+ end
84
+ end
85
+ end
86
+
87
+ a=Action::Jamendo.new.jamendo
88
+ p a
@@ -0,0 +1,15 @@
1
+ require "jared/plugin"
2
+
3
+ Jared::Plugin.config do |plugin|
4
+ plugin.name = "Gmail"
5
+ plugin.description = "Check you Gmail for new messages."
6
+ plugin.author = "Cyberarm"
7
+ plugin.homepage = "http://github.com/cyberarm/jared"
8
+ plugin.sourcecode = "http://github.com/cyberarm/jared"
9
+ plugin.command = "mail"
10
+ plugin.usage = "mail"
11
+ plugin.version = "0.4.0"
12
+ plugin.main_require = "lib/mail"
13
+ plugin.jared_version = "0.0.7a4"
14
+ plugin.platform = :ruby
15
+ end
@@ -0,0 +1,45 @@
1
+ require 'gmail'
2
+ require 'gibberish'
3
+
4
+ class Action
5
+ class Mail
6
+ Lib.db
7
+ # Checks Email on demand.
8
+ def mail
9
+ require 'gibberish'
10
+ begin
11
+ @user = User.first
12
+ if @user.mail_username.blank?
13
+ puts "Jared is not configured to check email."
14
+ puts "Please run, 'jared config'"
15
+ elsif @user.mail_password.blank?
16
+ puts "Jared is not configured to check email."
17
+ puts "Please run, 'jared config'"
18
+ else
19
+ cipher = Gibberish::AES.new(@user.mail_username)
20
+ password = cipher.dec(@user.mail_password)
21
+ Gmail.connect(@user.mail_username, password) do |gmail|
22
+ if gmail.logged_in?
23
+ puts "Google Mail"
24
+ puts gmail.inbox.count(:unread).to_s + " Unread messages."
25
+ gmail.inbox.emails(:unread).each do |email|
26
+ email.unread!
27
+ print "From:",email.sender[0].mailbox,"@", email.sender[0].host, ", Subject:",email.subject
28
+ puts
29
+ end
30
+ else
31
+ puts "Not logged in."
32
+ end
33
+ end
34
+ end
35
+ rescue => e
36
+ if e.to_s.include?("mail_")
37
+ puts "Jared is not configured to check email."
38
+ puts "Please run, 'jared config' or click 'OK' on the popup."
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
44
+
45
+ Action::Mail.new.mail
File without changes
@@ -0,0 +1,15 @@
1
+ require "jared/plugin"
2
+
3
+ Jared::Plugin.config do |plugin|
4
+ plugin.name = "Google Maps"
5
+ plugin.description = "Shows a clock."
6
+ plugin.author = "Cyberarm"
7
+ plugin.homepage = "http://github.com/cyberarm/jared"
8
+ plugin.sourcecode = "http://github.com/cyberarm/jared"
9
+ plugin.command = "map"
10
+ plugin.usage = "map 'location, io'"
11
+ plugin.version = "0.4.0"
12
+ plugin.main_require = "lib/map"
13
+ plugin.jared_version = "0.0.7a4"
14
+ plugin.platform = :ruby
15
+ end