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/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