diff --git a/lib/remote_announcement.rb b/lib/remote_announcement.rb index fb6ef6cf9..141dab58d 100644 --- a/lib/remote_announcement.rb +++ b/lib/remote_announcement.rb @@ -8,46 +8,80 @@ require 'date' @coll_cat = @db["bulletin_categories"] @categories = @coll_cat.find().to_a.inject({}) do |categories, category| - categories[category['key']] = category['_id'] - categories + categories[category['key']] = category['_id'] + categories end def get_remote_bulletins_json(url) - data = "" - open(url){|f| f.each_line {|line| data << line} } + data = "" + open(url){|f| f.each_line {|line| data << line} } - bulletins = JSON.parse data + bulletins = JSON.parse data - bulletins.each do |b| + bulletins.each do |b| - bulletin = { _type: "Bulletin", - postdate: Time.now, - created_at: Time.now, - updated_at: Time.now, + lang = b[1]=='zh-tw' ? "zh_tw".to_sym : "en".to_sym + + next if b[2]=="" + + bulletin = { _type: "Bulletin", + postdate: Time.parse(b[8]), + created_at: Time.parse(b[8]), + updated_at: Time.parse(b[8]), is_checked: true, is_pending: false, is_rejected: false, bulletin_category_id: @categories["#{b[7]}"], - title: {:zh_tw => b[2]}, - text: {:zh_tw => b[5]}, + title: {lang => b[2]}, + text: {lang => b[5]}, available_for_zh_tw: true, - available_for_en: false, + available_for_en: true, create_user_id: "", public: true, sn: b[0], site: b[9], + site_id: b[10], is_top: false, is_hot: false, is_hidden: false } - unless @coll_bulletin.find_one(:$and => [{ :sn => bulletin[:sn]},{ :site => bulletin[:site]}]) - @coll_bulletin.save(bulletin) - # puts "Inserted" + this_bulletin = @coll_bulletin.find_one(:$and => [{ :sn => bulletin[:sn]},{ :site => bulletin[:site]}]) + # p bulletin + + unless this_bulletin + @coll_bulletin.save(bulletin) + # puts "Inserted "+lang.to_s+" "+bulletin[:title][lang] + # p bulletin else - # puts "Exist" + @coll_bulletin.update( + {"_id"=>this_bulletin["_id"]}, + { + :_type => "Bulletin", + :postdate => bulletin[:postdate], + :created_at => bulletin[:created_at], + :updated_at => bulletin[:updated_at], + :is_checked => this_bulletin["is_checked"], + :is_pending => this_bulletin["is_pending"], + :is_rejected => this_bulletin["is_rejected"], + :bulletin_category_id => bulletin[:bulletin_category_id], + :title => bulletin[:title], + :text => bulletin[:text], + :available_for_zh_tw => this_bulletin["available_for_zh_tw"], + :available_for_en => this_bulletin["available_for_en"], + :create_user_id => "", + :public => this_bulletin["public"], + :sn => bulletin[:sn], + :site => bulletin[:site], + :site_id => bulletin[:site_id], + :is_top => this_bulletin["is_top"], + :is_hot => this_bulletin["is_hot"], + :is_hidden => this_bulletin["is_hidden"] + }) + # puts "Updated "+lang.to_s+" "+bulletin[:title][lang] + # p this_bulletin["_id"] end - end + end end -get_remote_bulletins_json("http://president.fgu.edu.tw/remote_annoucement/get_news.php") -get_remote_bulletins_json("http://car.fgu.edu.tw/remote_annoucement/get_news.php") \ No newline at end of file +get_remote_bulletins_json("http://president.fgu.edu.tw/remote_annoucement/get_news2.php") +get_remote_bulletins_json("http://car.fgu.edu.tw/remote_annoucement/get_news2.php") \ No newline at end of file