jared 0.0.7a3 → 0.0.7a4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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/lib/jared.rb CHANGED
@@ -1,77 +1,86 @@
1
- #!/bin/ruby
2
-
3
- require 'faster_require'
4
- require 'sqlite3'
5
- require 'active_record'
6
-
7
- unless File.exist?("#{Dir.home}/.jared.sqlite3")
8
- puts "Setting up database."
9
- ActiveRecord::Base.establish_connection(:adapter => 'sqlite3', :database => "#{Dir.home}/.jared.sqlite3")
10
- ActiveRecord::Migration.verbose = false
11
-
12
- # Create Database table for Tasks
13
- ActiveRecord::Schema.define do
14
- create_table :tasks do |t|
15
- t.column :title, :string
16
- t.column :desciption, :string
17
- t.column :due, :datetime
18
- t.timestamps
19
- end
20
- end
21
-
22
- # Create table table for Ifos
23
- ActiveRecord::Schema.define do
24
- create_table :musics do |t|
25
- t.column :status, :string
26
- t.column :now_playing, :string
27
- t.column :now_playing_album, :string
28
- t.column :album_image, :string
29
- t.column :now_playing_author, :string
30
- t.column :author_url, :string
31
- t.column :music_url, :string
32
- t.column :album_url, :string
33
- t.timestamps
34
- end
35
- end
36
-
37
- # Create Database table for User
38
- ActiveRecord::Schema.define do
39
- create_table :users do |t|
40
- t.column :name, :string
41
- t.column :zip, :string
42
- t.column :mail_username, :string
43
- t.column :mail_password, :string
44
- t.column :mail_provider, :string
45
- t.column :music, :string
46
- t.timestamps
47
- end
48
- end
49
- end
50
-
51
- require_relative "jared/lib.rb"
52
- Lib.db
53
- if User.first.blank?
54
- require 'green_shoes'
55
- new_user = User.new(:name => "#{Etc.getlogin}", :zip => "10001", :music => 'classical')
56
- new_user.save
57
- c=confirm "Setup Jared?"
58
- if c == true
59
- require 'jared/helpers/config'
60
- Helpers.config
61
- else
62
- alert "Run: 'jared config' to setup later."
63
- end
64
- end
65
-
66
- if Music.first.blank?
67
- require 'green_shoes'
68
- jrd = Music.new(:status => "Ready", :now_playing => "", :now_playing_author => "")
69
- jrd.save
70
- if jrd
71
- puts 'Ready.'
72
- else
73
- puts 'Failed to create Music!'
74
- end
75
- end
76
-
77
- require_relative "jared/jared.rb"
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 **long** ways down the road, starting Jared small and working slowly up to the end goal of a voice-activated house control A.I.
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
- ### Whatis
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.7a3
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: 2012-10-09 00:00:00.000000000 Z
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: thor
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/helpers/calculator.rb
269
- - lib/jared/helpers/calendar.rb
270
- - lib/jared/helpers/clock.rb
271
- - lib/jared/helpers/config.rb
272
- - lib/jared/helpers/create.rb
273
- - lib/jared/helpers/date.rb
274
- - lib/jared/helpers/deamon.rb
275
- - lib/jared/helpers/define.rb
276
- - lib/jared/helpers/greeting.rb
277
- - lib/jared/helpers/jamendo.rb
278
- - lib/jared/helpers/mail.rb
279
- - lib/jared/helpers/map.rb
280
- - lib/jared/helpers/notfound.rb
281
- - lib/jared/helpers/player.rb
282
- - lib/jared/helpers/stock.rb
283
- - lib/jared/helpers/task.rb
284
- - lib/jared/helpers/weather.rb
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/lib.rb
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,8 +0,0 @@
1
- class Helpers
2
- # Not yet implemented.
3
- #
4
- # Calculates.
5
- def self.calc
6
- puts "Calc(ulator) is not yet available."
7
- end
8
- end
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -1,8 +0,0 @@
1
- class Helpers
2
- #TODO: Get this functional.
3
- #
4
- # Googles the definition of the word.
5
- def self.define(word)
6
- puts "this function is unavailable. Word: #{word}"
7
- end
8
- end
@@ -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