guc_terminal 0.0.1
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.
- data/.gitignore +4 -0
- data/Gemfile +4 -0
- data/Rakefile +1 -0
- data/bin/guc_terminal +77 -0
- data/guc_terminal.gemspec +26 -0
- data/lib/guc_terminal.rb +5 -0
- data/lib/guc_terminal/version.rb +3 -0
- metadata +155 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'bundler/gem_tasks'
|
data/bin/guc_terminal
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
#!/usr/bin/env ruby -w
|
2
|
+
require 'rubygems'
|
3
|
+
require 'colorize'
|
4
|
+
require "text-table"
|
5
|
+
require "nokogiri"
|
6
|
+
require 'httpclient'
|
7
|
+
require 'choice'
|
8
|
+
|
9
|
+
Choice.options do
|
10
|
+
header 'Exam Schedule options:'
|
11
|
+
|
12
|
+
separator 'Required:'
|
13
|
+
|
14
|
+
option :username, :required => true do
|
15
|
+
short '-u'
|
16
|
+
long '--username=username'
|
17
|
+
desc 'Your GUC username without @student.guc.edu.eg'
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
option :password do
|
22
|
+
short '-p'
|
23
|
+
long '--password=password'
|
24
|
+
desc 'Your GUC account password'
|
25
|
+
default 'Standard footer'
|
26
|
+
end
|
27
|
+
|
28
|
+
separator 'Optional:'
|
29
|
+
|
30
|
+
option :gmail do
|
31
|
+
short '-gu'
|
32
|
+
long '--gmail=password'
|
33
|
+
desc 'Your Gmail (In case you wanted to export the schedule to your Google Calendar)'
|
34
|
+
end
|
35
|
+
option :gmailPass do
|
36
|
+
short '-gp'
|
37
|
+
long '--gpass=password'
|
38
|
+
desc 'Your Gmail Pass (In case you wanted to export the schedule to your Google Calendar)'
|
39
|
+
end
|
40
|
+
separator 'Common:'
|
41
|
+
|
42
|
+
option :help do
|
43
|
+
short '-h'
|
44
|
+
long '--help'
|
45
|
+
desc 'Show this message.'
|
46
|
+
end
|
47
|
+
|
48
|
+
option :version do
|
49
|
+
short '-v'
|
50
|
+
long '--version'
|
51
|
+
desc 'Show version.'
|
52
|
+
action do
|
53
|
+
puts 'guc_terminal version 1.0'
|
54
|
+
exit
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
table = Array.new
|
60
|
+
|
61
|
+
client = HTTPClient.new
|
62
|
+
client.set_auth(nil, "\\"+Choice.choices.username, Choice.choices.password)
|
63
|
+
resp = client.get("http://student.guc.edu.eg/External/Student/ViewStudentSeat/ViewExamSeat.aspx")
|
64
|
+
|
65
|
+
doc = Nokogiri::HTML(resp.content)
|
66
|
+
doc.xpath('//html/body/form/table/tbody/tr[2]/td[2]/table/tr').each do |node|
|
67
|
+
|
68
|
+
course_name = node.xpath('td[1]').text
|
69
|
+
start_time = node.xpath('td[2]').text
|
70
|
+
hall = node.xpath('td[3]').text
|
71
|
+
seat_number = node.xpath('td[4]').text
|
72
|
+
exam_type = node.xpath('td[5]').text
|
73
|
+
table << [course_name,start_time,hall,seat_number,exam_type]
|
74
|
+
|
75
|
+
end
|
76
|
+
|
77
|
+
puts table.to_table(:first_row_is_head => true).to_s.yellow
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "guc_terminal/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "guc_terminal"
|
7
|
+
s.version = GucTerminal::VERSION
|
8
|
+
s.authors = ["Hossam Saraya"]
|
9
|
+
s.email = ["hossam[dot]saraya[at]gmail[dot]com"]
|
10
|
+
s.homepage = ""
|
11
|
+
s.summary = %q{Guc terminal gives you access to do repetitive tasks from your terminal. eg: view exam schedule and export it to google calendar}
|
12
|
+
s.description = %q{More features coming soon!}
|
13
|
+
|
14
|
+
s.rubyforge_project = "guc_terminal"
|
15
|
+
|
16
|
+
s.files = `git ls-files`.split("\n")
|
17
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
|
+
s.executables = "guc_terminal"
|
19
|
+
s.require_paths = ["lib"]
|
20
|
+
s.add_dependency "colorize"
|
21
|
+
s.add_dependency "text-table"
|
22
|
+
s.add_dependency "nokogiri"
|
23
|
+
s.add_dependency "httpclient"
|
24
|
+
s.add_dependency "choice"
|
25
|
+
s.add_dependency "ntlm-http"
|
26
|
+
end
|
data/lib/guc_terminal.rb
ADDED
metadata
ADDED
@@ -0,0 +1,155 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: guc_terminal
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 29
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 1
|
10
|
+
version: 0.0.1
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Hossam Saraya
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2011-06-10 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: colorize
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 3
|
29
|
+
segments:
|
30
|
+
- 0
|
31
|
+
version: "0"
|
32
|
+
type: :runtime
|
33
|
+
version_requirements: *id001
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
name: text-table
|
36
|
+
prerelease: false
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
38
|
+
none: false
|
39
|
+
requirements:
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
hash: 3
|
43
|
+
segments:
|
44
|
+
- 0
|
45
|
+
version: "0"
|
46
|
+
type: :runtime
|
47
|
+
version_requirements: *id002
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: nokogiri
|
50
|
+
prerelease: false
|
51
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
53
|
+
requirements:
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
hash: 3
|
57
|
+
segments:
|
58
|
+
- 0
|
59
|
+
version: "0"
|
60
|
+
type: :runtime
|
61
|
+
version_requirements: *id003
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: httpclient
|
64
|
+
prerelease: false
|
65
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
66
|
+
none: false
|
67
|
+
requirements:
|
68
|
+
- - ">="
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
hash: 3
|
71
|
+
segments:
|
72
|
+
- 0
|
73
|
+
version: "0"
|
74
|
+
type: :runtime
|
75
|
+
version_requirements: *id004
|
76
|
+
- !ruby/object:Gem::Dependency
|
77
|
+
name: choice
|
78
|
+
prerelease: false
|
79
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
80
|
+
none: false
|
81
|
+
requirements:
|
82
|
+
- - ">="
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
hash: 3
|
85
|
+
segments:
|
86
|
+
- 0
|
87
|
+
version: "0"
|
88
|
+
type: :runtime
|
89
|
+
version_requirements: *id005
|
90
|
+
- !ruby/object:Gem::Dependency
|
91
|
+
name: ntlm-http
|
92
|
+
prerelease: false
|
93
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
94
|
+
none: false
|
95
|
+
requirements:
|
96
|
+
- - ">="
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
hash: 3
|
99
|
+
segments:
|
100
|
+
- 0
|
101
|
+
version: "0"
|
102
|
+
type: :runtime
|
103
|
+
version_requirements: *id006
|
104
|
+
description: More features coming soon!
|
105
|
+
email:
|
106
|
+
- hossam[dot]saraya[at]gmail[dot]com
|
107
|
+
executables:
|
108
|
+
- guc_terminal
|
109
|
+
extensions: []
|
110
|
+
|
111
|
+
extra_rdoc_files: []
|
112
|
+
|
113
|
+
files:
|
114
|
+
- .gitignore
|
115
|
+
- Gemfile
|
116
|
+
- Rakefile
|
117
|
+
- guc_terminal.gemspec
|
118
|
+
- lib/guc_terminal.rb
|
119
|
+
- lib/guc_terminal/version.rb
|
120
|
+
- bin/guc_terminal
|
121
|
+
homepage: ""
|
122
|
+
licenses: []
|
123
|
+
|
124
|
+
post_install_message:
|
125
|
+
rdoc_options: []
|
126
|
+
|
127
|
+
require_paths:
|
128
|
+
- lib
|
129
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
130
|
+
none: false
|
131
|
+
requirements:
|
132
|
+
- - ">="
|
133
|
+
- !ruby/object:Gem::Version
|
134
|
+
hash: 3
|
135
|
+
segments:
|
136
|
+
- 0
|
137
|
+
version: "0"
|
138
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
139
|
+
none: false
|
140
|
+
requirements:
|
141
|
+
- - ">="
|
142
|
+
- !ruby/object:Gem::Version
|
143
|
+
hash: 3
|
144
|
+
segments:
|
145
|
+
- 0
|
146
|
+
version: "0"
|
147
|
+
requirements: []
|
148
|
+
|
149
|
+
rubyforge_project: guc_terminal
|
150
|
+
rubygems_version: 1.8.5
|
151
|
+
signing_key:
|
152
|
+
specification_version: 3
|
153
|
+
summary: "Guc terminal gives you access to do repetitive tasks from your terminal. eg: view exam schedule and export it to google calendar"
|
154
|
+
test_files: []
|
155
|
+
|