From 036e5a0f7a9c126427c5a28534931dbbde2a04a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcin=20Wo=C5=BAniak?= Date: Thu, 31 Dec 2020 11:08:41 +0100 Subject: [PATCH] Adding Gemfile and Readme MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marcin Woźniak --- .gitignore | 3 +++ Gemfile | 7 +++++++ README.md | 16 ++++++++++++++++ parser.rb | 23 ++++++++++++++++------- 4 files changed, 42 insertions(+), 7 deletions(-) create mode 100644 .gitignore create mode 100644 Gemfile create mode 100644 README.md diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d9ce862 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +*.lock +*.xls +*.csv \ No newline at end of file diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..10b0d6c --- /dev/null +++ b/Gemfile @@ -0,0 +1,7 @@ +source "https://rubygems.org" +ruby "3.0.0" + +gem 'thwait', '~> 0.2.0' +gem 'nokogiri', '~> 1.10', '>= 1.10.10' +gem 'open-uri', '~> 0.1.0' +gem 'spreadsheet', '~> 1.2', '>= 1.2.6' diff --git a/README.md b/README.md new file mode 100644 index 0000000..a6c9f1f --- /dev/null +++ b/README.md @@ -0,0 +1,16 @@ +## How to install ruby? + +To install ruby you should go [here](https://www.ruby-lang.org/en/downloads/). + +## Install requirements: +```bash +bundle install +``` + +## Requirements in the project: +* `thwait` +* `nokogiri` +* `open-uri` +* `spreadsheet` + +for `Ruby 3.0.0` diff --git a/parser.rb b/parser.rb index f27741e..37d5d50 100755 --- a/parser.rb +++ b/parser.rb @@ -73,10 +73,9 @@ prz_kod.each do |przkod| prowadzacyWeb = Nokogiri::HTML(open(prowadzacyUrl, :open_timeout => 300).read) prowadzacyInfo = prowadzacyWeb.css('div#user-attrs-id').text.gsub!(/\s+/, ' ').strip prowadzacyImie = prowadzacyInfo.match(/Imiona.* Nazwisko/).to_s.sub("Imiona","").sub("Nazwisko","").to_s.match(/\p{L}+./).to_s.strip - prowadzacyNazwisko = prowadzacyInfo.match(/Nazwisko.* Stopnie/).to_s.sub("Nazwisko","").sub("Stopnie","").strip + prowadzacyNazwisko = prowadzacyInfo.match(/Nazwisko.*Stopnie/).to_s.sub("Nazwisko","").sub("Stopnie","").strip prowadzacyStopien = prowadzacyInfo.match(/Stopnie.*/).to_s.sub("Stopnie i tytuły","").strip - else - prowadzacyImie, prowadzacyNazwisko, prowadzacyStopien = "null" + prowadzacyNazwisko = prowadzacyInfo.match(/Nazwisko .*/).to_s.sub("Nazwisko","").to_s.strip if prowadzacyNazwisko.nil? or prowadzacyNazwisko == "" end i = 0 @@ -96,9 +95,19 @@ prz_kod.each do |przkod| end end - if typ == "Zajęcia" - typ = "Laboratorium" - end + typ = "Laboratorium" if typ == "Zajęcia" + zajcyk = "NULL" if zajcyk.nil? + typ = "NULL" if typ.nil? + kod = "NULL" if kod.nil? + sala = "NULL" if sala.nil? + przedmiot = "NULL" if przedmiot.nil? + nrgrupy = "NULL" if nrgrupy.nil? + limitMiejsc = "NULL" if limitMiejsc.nil? + dzien = "NULL" if dzien.nil? + godzina = "NULL" if godzina.nil? + prowadzacyStopien = "NULL" if prowadzacyStopien.nil? or prowadzacyStopien == "" + prowadzacyImie = "NULL" if prowadzacyImie.nil? or prowadzacyImie == "" + prowadzacyNazwisko = "NULL" if prowadzacyNazwisko.nil? or prowadzacyNazwisko == "" file = File.open("output.csv", 'a') puts "Do pliku: #{zajcyk},#{typ},#{kod},#{przedmiot},#{nrgrupy},#{limitMiejsc},#{dzien},#{godzina},#{prowadzacyStopien},#{prowadzacyNazwisko},#{prowadzacyImie}" @@ -113,7 +122,7 @@ prz_kod.each do |przkod| end end ThreadsWait.all_waits(*threads) -book.write "#{semestr}.xlsx" +book.write "#{semestr}.xls" file.close ending = Process.clock_gettime(Process::CLOCK_MONOTONIC) elapsed = ending - starting