753 lines
26 KiB
Ruby
753 lines
26 KiB
Ruby
|
# encoding: utf-8
|
||
|
|
||
|
require 'net/http'
|
||
|
require 'open-uri'
|
||
|
|
||
|
class Admin::ImportDataController < OrbitBackendController
|
||
|
# helper Admin::PagePartsHelper
|
||
|
# include Admin::FrontendWidgetInterface
|
||
|
open_for_user
|
||
|
open_for_admin
|
||
|
|
||
|
def get_teacher_data
|
||
|
uri = URI("https://localhost:8000/teachers.xml")
|
||
|
|
||
|
#params = {"UnitName" => "管理學院".encode('big5-uao'), "account" => "manage"}
|
||
|
#uri.query = URI.encode_www_form(params)
|
||
|
res = Net::HTTP.get_response(uri)
|
||
|
|
||
|
@teacher_data = Hash.from_xml(res.body)
|
||
|
@teachers = @teacher_data["objects"]
|
||
|
@i = 5000
|
||
|
@teachers.each do |hash|
|
||
|
# @roles = Role.skip(1).first
|
||
|
@roles = Role.all
|
||
|
@teacher = User.new
|
||
|
I18n.locale = :zh_tw
|
||
|
if !hash['teacher_zh_tw'].blank?
|
||
|
@teacher.first_name = hash['teacher_zh_tw']
|
||
|
elsif hash['teacher_zh_tw'].blank? && !hash['teacher_en'].blank?
|
||
|
@teacher.first_name = hash['teacher_en']
|
||
|
elsif hash['teacher_zh_tw'].blank? && hash['teacher_en'].blank?
|
||
|
@teacher.first_name = "Please Fill the Name"
|
||
|
end
|
||
|
|
||
|
I18n.locale = :en
|
||
|
if !hash['teacher_en'].blank?
|
||
|
@teacher.first_name = hash['teacher_en']
|
||
|
elsif hash['teacher_en'].blank? && !hash['teacher_zh_tw'].blank?
|
||
|
@teacher.first_name = hash['teacher_zh_tw']
|
||
|
elsif hash['teacher_en'].blank? && hash['teacher_zh_tw'].blank?
|
||
|
@teacher.first_name = "Please Fill the Name"
|
||
|
end
|
||
|
|
||
|
#@teacher.first_name = hash['teacher_en']
|
||
|
@teacher.ntu_seq = hash['ntu_seq']
|
||
|
@teacher.sid = hash['ntu_seq']
|
||
|
@teacher.role_ids = ["#{@roles.skip(1).first.id}"]
|
||
|
@teacher.password = "testpass"
|
||
|
@i += 10
|
||
|
if !hash['email'].blank?
|
||
|
@user = User.where(email: "#{hash['email']}")
|
||
|
if @user.length == 0
|
||
|
@teacher.email = hash['email']
|
||
|
elsif @user.length > 0
|
||
|
@teacher.email = "#{@i}duplicate@ntu.edu.tw"
|
||
|
end
|
||
|
else
|
||
|
@teacher.email = "#{@i}@ntu.edu.tw"
|
||
|
end
|
||
|
|
||
|
if hash['teacher_zh_tw'].blank? && hash['teacher_en'].blank?
|
||
|
@teacher.user_id = "defaultuser"
|
||
|
elsif hash['teacher_en'].blank?
|
||
|
@teacher.user_id = hash['teacher_zh_tw']
|
||
|
elsif hash['teacher_zh_tw']
|
||
|
@teacher.user_id = hash['teacher_en']
|
||
|
end
|
||
|
@teacher.save!
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def get_book_data
|
||
|
uri = URI("http://ann.cc.ntu.edu.tw/Achv/xmlTeacherData.asp")
|
||
|
params = {"UnitName" => "管理學院".encode('big5-uao'), "account" => "manage"}
|
||
|
uri.query = URI.encode_www_form(params)
|
||
|
res = Net::HTTP.get_response(uri)
|
||
|
|
||
|
teachers = User.all
|
||
|
|
||
|
teachers.each do |hash|
|
||
|
if hash.ntu_seq.present?
|
||
|
ntu_seq = hash.ntu_seq
|
||
|
books_xml = Nokogiri::XML( \
|
||
|
open("http://ann.cc.ntu.edu.tw/Achv/xmlBook.asp?Seq=#{ntu_seq}"))
|
||
|
@books = books_xml.xpath("//Book").map do |book_node|
|
||
|
{
|
||
|
author: (book_node>"Authors").text,
|
||
|
year: (book_node>"PublishYear").text,
|
||
|
title: (book_node>"DocTitle").text,
|
||
|
remarks: (book_node>"Remarks").text,
|
||
|
publisher: (book_node>"Publisher").text,
|
||
|
book_title: (book_node>"BookTitle").text
|
||
|
}
|
||
|
end
|
||
|
if @books.present?
|
||
|
@books.each do |b|
|
||
|
@book = WritingBook.new
|
||
|
I18n.locale = :zh_tw
|
||
|
@book.authors = b[:author]
|
||
|
@book.paper_title = b[:title]
|
||
|
@book.book_title = b[:book_title]
|
||
|
@book.note = b[:remarks]
|
||
|
@book.publisher = b[:publisher]
|
||
|
I18n.locale = :en
|
||
|
@book.authors = b[:author]
|
||
|
@book.paper_title = b[:title]
|
||
|
@book.book_title = b[:book_title]
|
||
|
@book.note = b[:remarks]
|
||
|
@book.publisher = b[:publisher]
|
||
|
@book.year = b[:year]
|
||
|
@book.create_user_id = hash.id
|
||
|
@book.save
|
||
|
end
|
||
|
else
|
||
|
puts "No books by Teacher"
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def get_conference_data
|
||
|
uri = URI("http://ann.cc.ntu.edu.tw/Achv/xmlTeacherData.asp")
|
||
|
params = {"UnitName" => "管理學院".encode('big5-uao'), "account" => "manage"}
|
||
|
uri.query = URI.encode_www_form(params)
|
||
|
res = Net::HTTP.get_response(uri)
|
||
|
|
||
|
teachers = User.all
|
||
|
|
||
|
teachers.each do |hash|
|
||
|
if hash.ntu_seq.present?
|
||
|
ntu_seq = hash.ntu_seq
|
||
|
conference_xml = Nokogiri::XML( \
|
||
|
open("http://ann.cc.ntu.edu.tw/Achv/xmlPaper.asp?Seq=#{ntu_seq}&type=C"))
|
||
|
#open("http://versatile.management.ntu.edu.tw/publication1/conference/#{ntuseq}.xml"))
|
||
|
@conference_papers = conference_xml.xpath("//Paper").map do |cp_node|
|
||
|
{
|
||
|
author: (cp_node>"Authors").text,
|
||
|
year: (cp_node>"PublishYear").text,
|
||
|
title: (cp_node>"PaperTitle").text,
|
||
|
conference: (cp_node>"PublishOn").text,
|
||
|
date: Date::MONTHNAMES[(cp_node>"PublishMonth").text.to_i],
|
||
|
location: "#{(cp_node>"Country").text} #{(cp_node>"location").text}",
|
||
|
conference_title: (cp_node>"PublishOn").text,
|
||
|
remarks: (cp_node>"Remarks").text
|
||
|
}
|
||
|
end
|
||
|
if @conference_papers.present?
|
||
|
@conference_papers.each do |b|
|
||
|
@conference_paper = WritingConference.new
|
||
|
I18n.locale = :zh_tw
|
||
|
@conference_paper.authors = b[:author]
|
||
|
if b[:title].blank?
|
||
|
@conference_paper.paper_title = "No Title Present"
|
||
|
else
|
||
|
@conference_paper.paper_title = b[:title]
|
||
|
end
|
||
|
if b[:conference_title].blank?
|
||
|
@conference_paper.conference_title = "No Title Present"
|
||
|
else
|
||
|
@conference_paper.conference_title = b[:conference_title]
|
||
|
end
|
||
|
|
||
|
@conference_paper.note = b[:remarks]
|
||
|
I18n.locale = :en
|
||
|
@conference_paper.authors = b[:author]
|
||
|
if b[:title].blank?
|
||
|
@conference_paper.paper_title = "No Title Present"
|
||
|
else
|
||
|
@conference_paper.paper_title = b[:title]
|
||
|
end
|
||
|
if b[:conference_title].blank?
|
||
|
@conference_paper.conference_title = "No Title Present"
|
||
|
else
|
||
|
@conference_paper.conference_title = b[:conference_title]
|
||
|
end
|
||
|
@conference_paper.note = b[:remarks]
|
||
|
|
||
|
@conference_paper.location = b[:location]
|
||
|
@conference_paper.year = b[:year]
|
||
|
@conference_paper.create_user_id = hash.id
|
||
|
|
||
|
@conference_paper.save!
|
||
|
end
|
||
|
else
|
||
|
puts "No conference by Teacher"
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
|
||
|
def get_journal_paper_data
|
||
|
uri = URI("http://ann.cc.ntu.edu.tw/Achv/xmlTeacherData.asp")
|
||
|
params = {"UnitName" => "管理學院".encode('big5-uao'), "account" => "manage"}
|
||
|
uri.query = URI.encode_www_form(params)
|
||
|
res = Net::HTTP.get_response(uri)
|
||
|
|
||
|
teachers = User.all
|
||
|
|
||
|
teachers.each do |hash|
|
||
|
if hash.ntu_seq.present?
|
||
|
ntu_seq = hash.ntu_seq
|
||
|
paper_xml = Nokogiri::XML( \
|
||
|
#open("http://versatile.management.ntu.edu.tw/publication1/journal/#{ntuseq}.xml"))
|
||
|
open("http://ann.cc.ntu.edu.tw/Achv/xmlPaper.asp?Seq=#{ntu_seq}&type=J"))
|
||
|
@journal_papers = paper_xml.xpath("//Paper").map do |paper_node|
|
||
|
{
|
||
|
author: (paper_node>"Authors").text,
|
||
|
year: (paper_node>"PublishYear").text,
|
||
|
title: (paper_node>"PaperTitle").text,
|
||
|
journal: (paper_node>"PublishOn").text,
|
||
|
volume:(paper_node>"Volume").text,
|
||
|
volumeno:(paper_node>"VolumeNo").text,
|
||
|
beginpage:(paper_node>"BeginPage").text,
|
||
|
endpage:(paper_node>"EndPage").text,
|
||
|
subgroup:(paper_node>"subgroup").text,
|
||
|
remarks: (paper_node>"Remarks").text,
|
||
|
cate: ((paper_node>"subgroup")>"Group").text
|
||
|
}
|
||
|
end
|
||
|
if @journal_papers.present?
|
||
|
@journal_papers.each do |b|
|
||
|
@journal_paper = WritingJournal.new
|
||
|
I18n.locale = :zh_tw
|
||
|
@journal_paper.authors = b[:author]
|
||
|
if b[:title].blank?
|
||
|
@journal_paper.paper_title = "No Title Present"
|
||
|
else
|
||
|
@journal_paper.paper_title = b[:title]
|
||
|
end
|
||
|
@journal_paper.journal_title = b[:journal]
|
||
|
@journal_paper.note = b[:remarks]
|
||
|
I18n.locale = :en
|
||
|
@journal_paper.authors = b[:author]
|
||
|
if b[:title].blank?
|
||
|
@journal_paper.paper_title = "No Title Present"
|
||
|
else
|
||
|
@journal_paper.paper_title = b[:title]
|
||
|
end
|
||
|
@journal_paper.journal_title = b[:journal]
|
||
|
@journal_paper.note = b[:remarks]
|
||
|
@journal_paper.year = b[:year]
|
||
|
@journal_paper.vol_no = b[:volumeno]
|
||
|
@journal_paper.form_to_start = b[:beginpage]
|
||
|
@journal_paper.form_to_end = b[:endpage]
|
||
|
if !b[:cate].blank?
|
||
|
@level_type = JournalLevelType.where(:key => b[:cate])
|
||
|
if @level_type.present?
|
||
|
@journal_paper.journal_level_type_ids = ["#{@level_type.first.id}"]
|
||
|
end
|
||
|
end
|
||
|
|
||
|
@journal_paper.create_user_id = hash.id
|
||
|
@journal_paper.save!
|
||
|
end
|
||
|
else
|
||
|
puts "No journal paper by Teacher"
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def sync_conference_data
|
||
|
@conference_data = WritingConference.where(create_user_id: "#{params[:user_id]}")
|
||
|
@conference_data.delete_all
|
||
|
@user = User.find("#{params[:user_id]}")
|
||
|
|
||
|
# teachers.each do |hash|
|
||
|
if @user.sid.present?
|
||
|
ntu_seq = @user.sid
|
||
|
conference_xml = Nokogiri::XML( \
|
||
|
open("http://ann.cc.ntu.edu.tw/Achv/xmlPaper.asp?Seq=#{ntu_seq}&type=C"))
|
||
|
#open("http://versatile.management.ntu.edu.tw/publication1/conference/#{ntuseq}.xml"))
|
||
|
@conference_papers = conference_xml.xpath("//Paper").map do |cp_node|
|
||
|
{
|
||
|
author: (cp_node>"Authors").text,
|
||
|
year: (cp_node>"PublishYear").text,
|
||
|
title: (cp_node>"PaperTitle").text,
|
||
|
conference: (cp_node>"PublishOn").text,
|
||
|
date: Date::MONTHNAMES[(cp_node>"PublishMonth").text.to_i],
|
||
|
location: "#{(cp_node>"Country").text} #{(cp_node>"location").text}",
|
||
|
conference_title: (cp_node>"PublishOn").text,
|
||
|
remarks: (cp_node>"Remarks").text
|
||
|
}
|
||
|
end
|
||
|
if @conference_papers.present?
|
||
|
@conference_papers.each do |b|
|
||
|
@conference_paper = WritingConference.new
|
||
|
I18n.locale = :zh_tw
|
||
|
@conference_paper.authors = b[:author]
|
||
|
if b[:title].blank?
|
||
|
@conference_paper.paper_title = "No Title Present"
|
||
|
else
|
||
|
@conference_paper.paper_title = b[:title]
|
||
|
end
|
||
|
if b[:conference_title].blank?
|
||
|
@conference_paper.conference_title = "No Title Present"
|
||
|
else
|
||
|
@conference_paper.conference_title = b[:conference_title]
|
||
|
end
|
||
|
|
||
|
@conference_paper.note = b[:remarks]
|
||
|
I18n.locale = :en
|
||
|
@conference_paper.authors = b[:author]
|
||
|
if b[:title].blank?
|
||
|
@conference_paper.paper_title = "No Title Present"
|
||
|
else
|
||
|
@conference_paper.paper_title = b[:title]
|
||
|
end
|
||
|
if b[:conference_title].blank?
|
||
|
@conference_paper.conference_title = "No Title Present"
|
||
|
else
|
||
|
@conference_paper.conference_title = b[:conference_title]
|
||
|
end
|
||
|
@conference_paper.note = b[:remarks]
|
||
|
|
||
|
@conference_paper.location = b[:location]
|
||
|
@conference_paper.year = b[:year]
|
||
|
@conference_paper.create_user_id = @user.id
|
||
|
|
||
|
@conference_paper.save!
|
||
|
end
|
||
|
else
|
||
|
puts "No conference by Teacher"
|
||
|
end
|
||
|
end
|
||
|
|
||
|
redirect_to request.referer
|
||
|
end
|
||
|
|
||
|
|
||
|
def sync_journal_paper_data
|
||
|
@journal_data = WritingJournal.where(create_user_id: "#{params[:user_id]}")
|
||
|
@journal_data.delete_all
|
||
|
@user = User.find("#{params[:user_id]}")
|
||
|
|
||
|
# teachers.each do |hash|
|
||
|
if @user.sid.present?
|
||
|
ntu_seq = @user.sid
|
||
|
paper_xml = Nokogiri::XML( \
|
||
|
#open("http://versatile.management.ntu.edu.tw/publication1/journal/#{ntuseq}.xml"))
|
||
|
open("http://ann.cc.ntu.edu.tw/Achv/xmlPaper.asp?Seq=#{ntu_seq}&type=J"))
|
||
|
@journal_papers = paper_xml.xpath("//Paper").map do |paper_node|
|
||
|
{
|
||
|
author: (paper_node>"Authors").text,
|
||
|
year: (paper_node>"PublishYear").text,
|
||
|
title: (paper_node>"PaperTitle").text,
|
||
|
journal: (paper_node>"PublishOn").text,
|
||
|
volume:(paper_node>"Volume").text,
|
||
|
volumeno:(paper_node>"VolumeNo").text,
|
||
|
beginpage:(paper_node>"BeginPage").text,
|
||
|
endpage:(paper_node>"EndPage").text,
|
||
|
subgroup:(paper_node>"subgroup").text,
|
||
|
remarks: (paper_node>"Remarks").text,
|
||
|
cate: ((paper_node>"subgroup")>"Group").text
|
||
|
}
|
||
|
end
|
||
|
if @journal_papers.present?
|
||
|
@journal_papers.each do |b|
|
||
|
@journal_paper = WritingJournal.new
|
||
|
I18n.locale = :zh_tw
|
||
|
@journal_paper.authors = b[:author]
|
||
|
|
||
|
if b[:title].blank?
|
||
|
@journal_paper.paper_title = "No Title Present"
|
||
|
else
|
||
|
@journal_paper.paper_title = b[:title]
|
||
|
end
|
||
|
|
||
|
@journal_paper.journal_title = b[:journal]
|
||
|
@journal_paper.note = b[:remarks]
|
||
|
I18n.locale = :en
|
||
|
@journal_paper.authors = b[:author]
|
||
|
|
||
|
if b[:title].blank?
|
||
|
@journal_paper.paper_title = "No Title Present"
|
||
|
else
|
||
|
@journal_paper.paper_title = b[:title]
|
||
|
end
|
||
|
|
||
|
@journal_paper.journal_title = b[:journal]
|
||
|
@journal_paper.note = b[:remarks]
|
||
|
@journal_paper.year = b[:year]
|
||
|
@journal_paper.vol_no = b[:volumeno]
|
||
|
@journal_paper.form_to_start = b[:beginpage]
|
||
|
@journal_paper.form_to_end = b[:endpage]
|
||
|
|
||
|
if !b[:cate].blank?
|
||
|
@level_type = JournalLevelType.where(:key => b[:cate])
|
||
|
if @level_type.present?
|
||
|
@journal_paper.journal_level_type_ids = ["#{@level_type.first.id}"]
|
||
|
end
|
||
|
end
|
||
|
|
||
|
@journal_paper.create_user_id = @user.id
|
||
|
@journal_paper.save!
|
||
|
end
|
||
|
end
|
||
|
|
||
|
end
|
||
|
redirect_to request.referer
|
||
|
end
|
||
|
|
||
|
def sync_book_data
|
||
|
@books_data = WritingBook.where(create_user_id: "#{params[:user_id]}")
|
||
|
@books_data.delete_all
|
||
|
@user = User.find("#{params[:user_id]}")
|
||
|
|
||
|
# teachers.each do |hash|
|
||
|
if @user.sid.present?
|
||
|
ntu_seq = @user.sid
|
||
|
books_xml = Nokogiri::XML( \
|
||
|
open("http://ann.cc.ntu.edu.tw/Achv/xmlBook.asp?Seq=#{ntu_seq}"))
|
||
|
@books = books_xml.xpath("//Book").map do |book_node|
|
||
|
{
|
||
|
author: (book_node>"Authors").text,
|
||
|
year: (book_node>"PublishYear").text,
|
||
|
title: (book_node>"DocTitle").text,
|
||
|
remarks: (book_node>"Remarks").text,
|
||
|
publisher: (book_node>"Publisher").text,
|
||
|
book_title: (book_node>"BookTitle").text
|
||
|
}
|
||
|
end
|
||
|
if @books.present?
|
||
|
@books.each do |b|
|
||
|
@book = WritingBook.new
|
||
|
I18n.locale = :zh_tw
|
||
|
@book.authors = b[:author]
|
||
|
@book.paper_title = b[:title]
|
||
|
@book.book_title = b[:book_title]
|
||
|
@book.note = b[:remarks]
|
||
|
@book.publisher = b[:publisher]
|
||
|
I18n.locale = :en
|
||
|
@book.authors = b[:author]
|
||
|
@book.paper_title = b[:title]
|
||
|
@book.book_title = b[:book_title]
|
||
|
@book.note = b[:remarks]
|
||
|
@book.publisher = b[:publisher]
|
||
|
@book.year = b[:year]
|
||
|
@book.create_user_id = @user.id
|
||
|
@book.save
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
redirect_to request.referer
|
||
|
end
|
||
|
|
||
|
|
||
|
def sync_conference_data_auto
|
||
|
@user = User.all
|
||
|
@user.each do |user|
|
||
|
@conference_data = WritingConference.where(create_user_id: "#{user.id}")
|
||
|
@conference_data.delete_all
|
||
|
# @user = User.find("#{params[:user_id]}")
|
||
|
|
||
|
# teachers.each do |hash|
|
||
|
if user.sid.present?
|
||
|
ntu_seq = user.sid
|
||
|
conference_xml = Nokogiri::XML( \
|
||
|
open("http://ann.cc.ntu.edu.tw/Achv/xmlPaper.asp?Seq=#{ntu_seq}&type=C"))
|
||
|
#open("http://versatile.management.ntu.edu.tw/publication1/conference/#{ntuseq}.xml"))
|
||
|
@conference_papers = conference_xml.xpath("//Paper").map do |cp_node|
|
||
|
{
|
||
|
author: (cp_node>"Authors").text,
|
||
|
year: (cp_node>"PublishYear").text,
|
||
|
title: (cp_node>"PaperTitle").text,
|
||
|
conference: (cp_node>"PublishOn").text,
|
||
|
date: Date::MONTHNAMES[(cp_node>"PublishMonth").text.to_i],
|
||
|
location: "#{(cp_node>"Country").text} #{(cp_node>"location").text}",
|
||
|
conference_title: (cp_node>"PublishOn").text,
|
||
|
remarks: (cp_node>"Remarks").text
|
||
|
}
|
||
|
end
|
||
|
if @conference_papers.present?
|
||
|
@conference_papers.each do |b|
|
||
|
@conference_paper = WritingConference.new
|
||
|
I18n.locale = :zh_tw
|
||
|
@conference_paper.authors = b[:author]
|
||
|
if b[:title].blank?
|
||
|
@conference_paper.paper_title = "No Title Present"
|
||
|
else
|
||
|
@conference_paper.paper_title = b[:title]
|
||
|
end
|
||
|
if b[:conference_title].blank?
|
||
|
@conference_paper.conference_title = "No Title Present"
|
||
|
else
|
||
|
@conference_paper.conference_title = b[:conference_title]
|
||
|
end
|
||
|
|
||
|
@conference_paper.note = b[:remarks]
|
||
|
I18n.locale = :en
|
||
|
@conference_paper.authors = b[:author]
|
||
|
if b[:title].blank?
|
||
|
@conference_paper.paper_title = "No Title Present"
|
||
|
else
|
||
|
@conference_paper.paper_title = b[:title]
|
||
|
end
|
||
|
if b[:conference_title].blank?
|
||
|
@conference_paper.conference_title = "No Title Present"
|
||
|
else
|
||
|
@conference_paper.conference_title = b[:conference_title]
|
||
|
end
|
||
|
@conference_paper.note = b[:remarks]
|
||
|
|
||
|
@conference_paper.location = b[:location]
|
||
|
@conference_paper.year = b[:year]
|
||
|
@conference_paper.create_user_id = user.id
|
||
|
|
||
|
@conference_paper.save!
|
||
|
end
|
||
|
else
|
||
|
puts "No conference by Teacher"
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
|
||
|
def sync_journal_paper_data_auto
|
||
|
@user = User.all
|
||
|
@user.each do |user|
|
||
|
@journal_data = WritingJournal.where(create_user_id: "#{user_id}")
|
||
|
@journal_data.delete_all
|
||
|
# @user = User.find("#{params[:user_id]}")
|
||
|
|
||
|
# teachers.each do |hash|
|
||
|
if user.sid.present?
|
||
|
ntu_seq = user.sid
|
||
|
paper_xml = Nokogiri::XML( \
|
||
|
#open("http://versatile.management.ntu.edu.tw/publication1/journal/#{ntuseq}.xml"))
|
||
|
open("http://ann.cc.ntu.edu.tw/Achv/xmlPaper.asp?Seq=#{ntu_seq}&type=J"))
|
||
|
@journal_papers = paper_xml.xpath("//Paper").map do |paper_node|
|
||
|
{
|
||
|
author: (paper_node>"Authors").text,
|
||
|
year: (paper_node>"PublishYear").text,
|
||
|
title: (paper_node>"PaperTitle").text,
|
||
|
journal: (paper_node>"PublishOn").text,
|
||
|
volume:(paper_node>"Volume").text,
|
||
|
volumeno:(paper_node>"VolumeNo").text,
|
||
|
beginpage:(paper_node>"BeginPage").text,
|
||
|
endpage:(paper_node>"EndPage").text,
|
||
|
subgroup:(paper_node>"subgroup").text,
|
||
|
remarks: (paper_node>"Remarks").text,
|
||
|
cate: ((paper_node>"subgroup")>"Group").text
|
||
|
}
|
||
|
end
|
||
|
if @journal_papers.present?
|
||
|
@journal_papers.each do |b|
|
||
|
@journal_paper = WritingJournal.new
|
||
|
I18n.locale = :zh_tw
|
||
|
@journal_paper.authors = b[:author]
|
||
|
|
||
|
if b[:title].blank?
|
||
|
@journal_paper.paper_title = "No Title Present"
|
||
|
else
|
||
|
@journal_paper.paper_title = b[:title]
|
||
|
end
|
||
|
|
||
|
@journal_paper.journal_title = b[:journal]
|
||
|
@journal_paper.note = b[:remarks]
|
||
|
I18n.locale = :en
|
||
|
@journal_paper.authors = b[:author]
|
||
|
|
||
|
if b[:title].blank?
|
||
|
@journal_paper.paper_title = "No Title Present"
|
||
|
else
|
||
|
@journal_paper.paper_title = b[:title]
|
||
|
end
|
||
|
|
||
|
@journal_paper.journal_title = b[:journal]
|
||
|
@journal_paper.note = b[:remarks]
|
||
|
@journal_paper.year = b[:year]
|
||
|
@journal_paper.vol_no = b[:volumeno]
|
||
|
@journal_paper.form_to_start = b[:beginpage]
|
||
|
@journal_paper.form_to_end = b[:endpage]
|
||
|
|
||
|
if !b[:cate].blank?
|
||
|
@level_type = JournalLevelType.where(:key => b[:cate])
|
||
|
if @level_type.present?
|
||
|
@journal_paper.journal_level_type_ids = ["#{@level_type.first.id}"]
|
||
|
end
|
||
|
end
|
||
|
|
||
|
@journal_paper.create_user_id = user.id
|
||
|
@journal_paper.save!
|
||
|
end
|
||
|
end
|
||
|
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def sync_book_data_auto
|
||
|
@user = User.all
|
||
|
@user.each do |user|
|
||
|
@books_data = WritingBook.where(create_user_id: "#{user_id}")
|
||
|
@books_data.delete_all
|
||
|
# @user = User.find("#{params[:user_id]}")
|
||
|
|
||
|
# teachers.each do |hash|
|
||
|
if user.sid.present?
|
||
|
ntu_seq = user.sid
|
||
|
books_xml = Nokogiri::XML( \
|
||
|
open("http://ann.cc.ntu.edu.tw/Achv/xmlBook.asp?Seq=#{ntu_seq}"))
|
||
|
@books = books_xml.xpath("//Book").map do |book_node|
|
||
|
{
|
||
|
author: (book_node>"Authors").text,
|
||
|
year: (book_node>"PublishYear").text,
|
||
|
title: (book_node>"DocTitle").text,
|
||
|
remarks: (book_node>"Remarks").text,
|
||
|
publisher: (book_node>"Publisher").text,
|
||
|
book_title: (book_node>"BookTitle").text
|
||
|
}
|
||
|
end
|
||
|
if @books.present?
|
||
|
@books.each do |b|
|
||
|
@book = WritingBook.new
|
||
|
I18n.locale = :zh_tw
|
||
|
@book.authors = b[:author]
|
||
|
@book.paper_title = b[:title]
|
||
|
@book.book_title = b[:book_title]
|
||
|
@book.note = b[:remarks]
|
||
|
@book.publisher = b[:publisher]
|
||
|
I18n.locale = :en
|
||
|
@book.authors = b[:author]
|
||
|
@book.paper_title = b[:title]
|
||
|
@book.book_title = b[:book_title]
|
||
|
@book.note = b[:remarks]
|
||
|
@book.publisher = b[:publisher]
|
||
|
@book.year = b[:year]
|
||
|
@book.create_user_id = user.id
|
||
|
@book.save
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
|
||
|
def get_announcement_data
|
||
|
uri = URI("https://localhost:8000/announcements.xml")
|
||
|
|
||
|
#params = {"UnitName" => "管理學院".encode('big5-uao'), "account" => "manage"}
|
||
|
#uri.query = URI.encode_www_form(params)
|
||
|
res = Net::HTTP.get_response(uri)
|
||
|
|
||
|
@announcement_data = Hash.from_xml(res.body)
|
||
|
@announcements = @announcement_data["objects"]
|
||
|
@announcements.each do |hash|
|
||
|
@bulletin = Bulletin.new
|
||
|
|
||
|
I18n.locale = :zh_tw
|
||
|
if hash['announcement_title_zh_tw'].blank?
|
||
|
@bulletin.title = hash['announcement_title_en']
|
||
|
@bulletin.text = hash['announcement_content_zh_tw']
|
||
|
elsif hash['announcement_title_zh_tw'].blank? && hash['announcement_title_en'].blank?
|
||
|
@bulletin.title = "Please Fill the Name"
|
||
|
@bulletin.text = hash['announcement_content_zh_tw']
|
||
|
else
|
||
|
@bulletin.title = hash['announcement_title_zh_tw']
|
||
|
@bulletin.text = hash['announcement_content_zh_tw']
|
||
|
end
|
||
|
|
||
|
I18n.locale = :en
|
||
|
if hash['announcement_title_zh_tw'].blank? && hash['announcement_title_en'].blank?
|
||
|
@bulletin.title = "Please Fill the Name"
|
||
|
@bulletin.text = hash['announcement_content_en']
|
||
|
|
||
|
elsif hash['announcement_title_en'].blank?
|
||
|
@bulletin.title = hash['announcement_zh_tw']
|
||
|
@bulletin.text = hash['announcement_content_en']
|
||
|
|
||
|
elsif hash['announcement_title_zh_tw'].blank?
|
||
|
@bulletin.title = hash['announcement_title_en']
|
||
|
@bulletin.text = hash['announcement_content_en']
|
||
|
end
|
||
|
@bulletin.category_id = "51d2a16438178423c2000001"
|
||
|
@bulletin.is_pending = true
|
||
|
|
||
|
@bulletin.save!
|
||
|
end
|
||
|
end
|
||
|
|
||
|
# def get_page_data
|
||
|
# f = File.open("/home/rwub/orbit-db/ntu_mb/pages/management_pages.xml")
|
||
|
# page_xml = Nokogiri::XML(f)
|
||
|
# #open("http://versatile.management.ntu.edu.tw/publication1/conference/#{ntuseq}.xml"))
|
||
|
# @pages = page_xml.xpath("//management-page").map do |cp_node|
|
||
|
# {
|
||
|
# menu_title: (cp_node>"menu-title").text,
|
||
|
# content: (cp_node>"content").text
|
||
|
# }
|
||
|
# end
|
||
|
|
||
|
# if @pages.present?
|
||
|
# @i=0
|
||
|
# @pages.each do |b|
|
||
|
|
||
|
# get_variables_for_new
|
||
|
# @page = Page.new
|
||
|
|
||
|
# @page.parent = "4f45f3b9e9d02c5db900005d"
|
||
|
# @page.design = "50ac424983e75219d2000021"
|
||
|
# @page.theme_id = "50ac424a83e75219d2000025"
|
||
|
# @page.menu_enabled_for= ["en", "zh_tw", ""]
|
||
|
# @page.enabled_for= ["en", "zh_tw", ""]
|
||
|
# @page.is_published = false
|
||
|
# if b[:menu_title].blank?
|
||
|
# @page.title = 'No Title Present'
|
||
|
# @i += 1
|
||
|
# @page.name = "#{@i}Page"
|
||
|
# else
|
||
|
# @i += 1
|
||
|
# @page.title = b[:menu_title]
|
||
|
# @page.name = "#{@i}Page"
|
||
|
# end
|
||
|
# if b[:content].blank?
|
||
|
# @page.content = "No Content Present"
|
||
|
# else
|
||
|
# @page.content = b[:content]
|
||
|
# end
|
||
|
# @page.save!
|
||
|
# end
|
||
|
# else
|
||
|
# puts "No Page Data"
|
||
|
# end
|
||
|
# end
|
||
|
|
||
|
|
||
|
# def get_variables_for_new
|
||
|
# @designs = Design.all.entries
|
||
|
# @themes = Design.first.themes
|
||
|
# @module_apps = ModuleApp.for_frontend_select
|
||
|
# @app_frontend_urls = nil
|
||
|
# @categories = nil
|
||
|
# @tags = nil
|
||
|
# @page_frontend_data_counts = nil
|
||
|
# @frontend_styles = nil
|
||
|
# @selected={
|
||
|
# :design => @designs.first,
|
||
|
# :theme=> @themes.first,
|
||
|
# :module_app=>nil,#@module_apps.first
|
||
|
# :app_frontend_url=> nil, #@module_apps.first
|
||
|
# :category=>nil,
|
||
|
# :tag=>nil,
|
||
|
# :page_frontend_data_count=>nil,
|
||
|
# :frontend_style => nil
|
||
|
# }
|
||
|
# end
|
||
|
|
||
|
|
||
|
end
|