ra_events 0.0.5 → 0.0.6

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2b73936f62724eb100bade025ab74a22b078d955
4
- data.tar.gz: 8a756a52598179effeb9176cff2e21cda9546d12
3
+ metadata.gz: 8ae17676f288c0d714600718b8e0894af795f8f6
4
+ data.tar.gz: 3b9c44d7e29dc7a922828b366e68680df61ff376
5
5
  SHA512:
6
- metadata.gz: b4d8823a713e23ce13572368ee3e1bf99be09c49df89e3bd8e4e94a848f1c948b0e79ac92d956e10beb3c3fe06aba6e24d81f79af1d27a84bed2b9848ef11d58
7
- data.tar.gz: 727edd037bf7eb4885464651183741b7fa2fd2e398528f2f6ea9aff57e6d251279c6d068e56fa050e87be53d33107248f963bc51813a29a00b19a567e6eae4b2
6
+ metadata.gz: 478285ff42881d57c325fd3c339946b85d4507c8aaa11551d11121c03edfd1a33391c9d5a10cd20ad92146bde591bb64bad921b1650aec63c5f72e394ab11fbf
7
+ data.tar.gz: 75728efe498e6d5d37d07f9b3045115e4d80b461dc91ff7aa6ce0f84f3ff5300db89f4e91202902c4845e8135f8eac83ea824be1c93f5ae51ba7e52a0064682b
data/lib/ra_events.rb CHANGED
@@ -2,5 +2,3 @@ require_relative "./ra_events/version"
2
2
  require_relative './ra_events/cli'
3
3
  require_relative './ra_events/scraper'
4
4
  require_relative './ra_events/event'
5
-
6
- require 'nokogiri'
data/lib/ra_events/cli.rb CHANGED
@@ -9,7 +9,6 @@ URL_BASE = "https://www.residentadvisor.net"
9
9
  welcome
10
10
  list_events(user_inputs_state)
11
11
  goto_event_url
12
- exit_program
13
12
  end
14
13
 
15
14
  def welcome
@@ -28,34 +27,49 @@ URL_BASE = "https://www.residentadvisor.net"
28
27
  end
29
28
 
30
29
  def list_events(user_inputs_state)
31
-
32
30
  display_events_this_week_text
33
31
 
34
- Event.create_from_collection(Scraper.scrape_events_page(user_inputs_state))
32
+ events_by_week = Scraper.scrape_events_page(user_inputs_state)
33
+ Event.create_from_collection(events_by_week)
35
34
  Event.all.each.with_index(1) do |event, i|
36
- i -= 1
37
- if event.title != "" && event.location != ""
35
+
36
+ if event.no_events_listed == true
37
+ puts "There are currently no events listed for this date range in this region."
38
+ puts
39
+ clear_events
40
+ call
41
+ else
38
42
  puts "#{i}. #{event.title} "
39
43
  puts "Location: #{event.location} " unless event.artists.nil?
40
44
  puts "Artists: #{event.artists}" unless event.artists.nil?
41
- puts "Date: #{event.date.gsub("T00:00", "")}"
45
+ puts "Date: #{event.date.gsub("T00:00", "")}"
42
46
  puts
43
47
  end
44
48
  end
45
49
  end
46
50
 
47
51
  def goto_event_url
48
- input = nil
49
- while input != "exit"
50
- puts "Type 1-#{Event.all.count} to view event page in your browser or type exit:"
51
- input = gets.strip
52
- if input.to_i > 0 && input.to_i < Event.all.count
52
+ puts "Type the event # you'd like to view in your browser, 'menu' or 'exit':"
53
+ input = gets.strip.downcase
54
+
55
+ if input.to_i > 0 && input.to_i <= Event.all.count
53
56
  puts "Opening residentadvisor.net..."
54
- event = Event.all[input.sub("goto ", "").to_i]
55
- URL_BASE + event.url
57
+ event = Event.all[input.to_i - 1]
58
+ puts "#{URL_BASE + event.url}"
56
59
  `open #{URL_BASE + event.url}`
60
+ goto_event_url
61
+ elsif input == "exit"
62
+ exit_program
63
+ elsif input == "menu"
64
+ main_menu
65
+ else
66
+ puts "Invalid"
67
+ goto_event_url
57
68
  end
58
- end
69
+ end
70
+
71
+ def main_menu
72
+ call
59
73
  end
60
74
 
61
75
  def display_events_this_week_text
@@ -69,7 +83,13 @@ URL_BASE = "https://www.residentadvisor.net"
69
83
  end
70
84
 
71
85
  def exit_program
72
- puts "Bye, See you on the dance floor!"
86
+ clear_events
87
+ puts "Bye, see you on the dance floor!"
88
+ exit
89
+ end
90
+
91
+ def clear_events
92
+ Event.clear
73
93
  end
74
94
 
75
95
  end
@@ -2,7 +2,7 @@ require 'pry'
2
2
 
3
3
  class Event
4
4
 
5
- attr_accessor :date, :title, :location, :artists, :url
5
+ attr_accessor :date, :title, :location, :artists, :url, :no_events_listed
6
6
 
7
7
  @@all = []
8
8
 
@@ -23,4 +23,8 @@ class Event
23
23
  def self.all
24
24
  @@all
25
25
  end
26
+
27
+ def self.clear
28
+ self.all.clear
29
+ end
26
30
  end
@@ -19,50 +19,33 @@ class Scraper
19
19
  end
20
20
 
21
21
  state_event_page_url
22
- binding.pry
23
22
  end
24
23
 
25
24
  def self.scrape_events_page(url)
26
25
  ra_events_page = Nokogiri::HTML(open(url))
27
26
 
28
27
  events = []
28
+ events << {no_events_listed: true} if self.is_real_event?(ra_events_page)
29
+
30
+ ra_events_page.css("#items").each do |event_listings|
31
+ event_listings.css('li').each do |event|
32
+ event_date = event.css('time').text
33
+ event_title = event.css('div h1 a').text.gsub("#{event.css('span a').text}", "")
34
+ event_location = event.css('span a[1]').text + " " + event.css('a[2]').text unless event.css('span a').text.empty?
35
+ event_artists = event.css('div div').text unless event.css('div div').text.empty?
36
+ event_url = event.css('a').attr('href').text
37
+
38
+ if event_title != "" && event_location != ""
39
+ events << {date: event_date, title: event_title, location: event_location, artists: event_artists, url: event_url}
40
+ end
41
+ end
42
+ end
29
43
 
30
- ra_events_page.css("#items").each do |event_listing|
31
-
32
- event_listing.css('li').each do |date| #until date.css('a').text == "Submit event"
33
- # binding.pry
34
- event_date = date.css('time').text
35
- event_title = date.css('div h1 a').text.gsub("#{date.css('span a').text}", "")
36
- event_location = date.css('span a').text unless date.css('span a').text.empty?
37
- event_artists = date.css('div div').text unless date.css('div div').text.empty?
38
- event_url = date.css('a').attr('href').text
39
-
40
- events << {date: event_date, title: event_title, location: event_location, artists: event_artists, url: event_url}
41
- # binding.pry
42
-
43
- end
44
+ events
45
+ end
44
46
 
45
- end
46
- events.compact
47
- # binding.pry
47
+ def self.is_real_event?(ra_events_page)
48
+ ra_events_page.css('.pr8').first.text.include?("no events")
48
49
  end
49
50
 
50
51
  end
51
-
52
-
53
- # This will grab the Date of all of the listed shows
54
-
55
- # ra_events_page.css("#event-listing .date").each do |e|
56
- # puts "#{e.css('a').text}"
57
- # end
58
-
59
-
60
- # ra_events_page.css("#items").each do |event_listing|
61
- #
62
-
63
- # Title: date.css('a').text || date.css('div h1').text # ex: "Selector Dub Narcotic, This Saxophone Kills Fascists at Babycastles"
64
- # Artists: date.css('div div').text
65
- # Url: date.css('a').attr('href').text
66
-
67
- # unless date.css('a').text == "Submit event"
68
-
@@ -1,3 +1,3 @@
1
1
  module RaEvents
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
data/ra_events.gemspec CHANGED
@@ -11,7 +11,8 @@ Gem::Specification.new do |spec|
11
11
  spec.email = ["mk.etlinger@gmail.com"]
12
12
 
13
13
  spec.summary = %q{ra_events lists Resident Advisor events by state from the comfort of your CLI}
14
- spec.description = %q{Type `ra-events` after running `gem install ra_events`. Then type in your state, get a list of electronic music events by week, and open an event in your browser for more details.}
14
+ spec.description = %q{*Disclaimer: ra_events uses the 'open' command to open an event URL in your browser. This will not work on Windows machines, however, the URL will be printed for easy copy/paste*
15
+ Type `ra-events` after running `gem install ra_events`. Then type in your state, get a list of electronic music events by week, and open an event in your browser for more details.}
15
16
  spec.homepage = "https://github.com/Mk-Etlinger/ra-events-cli-app"
16
17
  spec.license = "MIT"
17
18
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ra_events
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Etlinger
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-04-04 00:00:00.000000000 Z
11
+ date: 2017-04-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -80,9 +80,9 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: 1.7.0
83
- description: Type `ra-events` after running `gem install ra_events`. Then type in
84
- your state, get a list of electronic music events by week, and open an event in
85
- your browser for more details.
83
+ description: |-
84
+ *Disclaimer: ra_events uses the 'open' command to open an event URL in your browser. This will not work on Windows machines, however, the URL will be printed for easy copy/paste*
85
+ Type `ra-events` after running `gem install ra_events`. Then type in your state, get a list of electronic music events by week, and open an event in your browser for more details.
86
86
  email:
87
87
  - mk.etlinger@gmail.com
88
88
  executables: