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 +4 -4
- data/lib/ra_events.rb +0 -2
- data/lib/ra_events/cli.rb +35 -15
- data/lib/ra_events/event.rb +5 -1
- data/lib/ra_events/scraper.rb +19 -36
- data/lib/ra_events/version.rb +1 -1
- data/ra_events.gemspec +2 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8ae17676f288c0d714600718b8e0894af795f8f6
|
4
|
+
data.tar.gz: 3b9c44d7e29dc7a922828b366e68680df61ff376
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 478285ff42881d57c325fd3c339946b85d4507c8aaa11551d11121c03edfd1a33391c9d5a10cd20ad92146bde591bb64bad921b1650aec63c5f72e394ab11fbf
|
7
|
+
data.tar.gz: 75728efe498e6d5d37d07f9b3045115e4d80b461dc91ff7aa6ce0f84f3ff5300db89f4e91202902c4845e8135f8eac83ea824be1c93f5ae51ba7e52a0064682b
|
data/lib/ra_events.rb
CHANGED
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
|
-
|
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
|
-
|
37
|
-
if event.
|
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
|
-
|
49
|
-
|
50
|
-
|
51
|
-
input
|
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.
|
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
|
-
|
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
|
-
|
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
|
data/lib/ra_events/event.rb
CHANGED
@@ -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
|
data/lib/ra_events/scraper.rb
CHANGED
@@ -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
|
-
|
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
|
-
|
46
|
-
events
|
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
|
-
|
data/lib/ra_events/version.rb
CHANGED
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{
|
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.
|
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-
|
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:
|
84
|
-
|
85
|
-
|
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:
|