summaryrefslogtreecommitdiff
path: root/lstwitchvid.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lstwitchvid.rb')
-rwxr-xr-xlstwitchvid.rb49
1 files changed, 49 insertions, 0 deletions
diff --git a/lstwitchvid.rb b/lstwitchvid.rb
new file mode 100755
index 0000000..c0b89fd
--- /dev/null
+++ b/lstwitchvid.rb
@@ -0,0 +1,49 @@
+#!/usr/bin/ruby
+
+#require 'curses'
+require 'json'
+require 'net/http'
+
+user = String.new
+
+user = URI.escape(ARGV[0])
+
+broadcasts = String.new
+
+http = Net::HTTP.new('api.twitch.tv', 443)
+http.use_ssl = true
+#http.verify_mode = OpenSSL::SSL::VERIFY_NONE
+http.read_timeout = 500
+
+width = `stty size`.split[1].to_i
+
+if width < 97
+ width=97
+end
+
+def videos(http, path, width, broadcasts)
+
+ total = 100
+ offset = 0
+
+ while offset <= total
+
+ response = JSON.parse(http.request(Net::HTTP::Get.new("#{path}?limit=100&offset=#{offset}&broadcasts=#{broadcasts}")).body)
+ total = response['_total']
+ for video in response['videos']
+ printf( "%-45s %6i %6i %-36s %-.#{width-46-37-7-7}s\n", video['url'].to_s, video['length'].to_i, video['views'].to_i, video['game'].to_s, video['title'].to_s)
+# Curses.cols
+ end
+ offset += 100
+
+ end
+
+end
+
+print("Highlights:\n\n")
+
+videos(http, "/kraken/channels/#{user}/videos/", width, false)
+
+print("\nBroadcasts:\n\n")
+
+videos(http, "/kraken/channels/#{user}/videos/", width, true)