Update Remote annoucement, annoucement will be deleted when remote site disabled or deleted it
This commit is contained in:
parent
47894ab6f3
commit
946dc0621b
|
@ -7,6 +7,7 @@ require 'date'
|
||||||
@coll_bulletin = @db["bulletins"]
|
@coll_bulletin = @db["bulletins"]
|
||||||
@bulletin_links = @db["bulletin_links"]
|
@bulletin_links = @db["bulletin_links"]
|
||||||
@coll_cat = @db["bulletin_categories"]
|
@coll_cat = @db["bulletin_categories"]
|
||||||
|
@updated_bulletins = Array.new
|
||||||
|
|
||||||
@categories = @coll_cat.find().to_a.inject({}) do |categories, category|
|
@categories = @coll_cat.find().to_a.inject({}) do |categories, category|
|
||||||
categories[category['key']] = category['_id']
|
categories[category['key']] = category['_id']
|
||||||
|
@ -70,6 +71,7 @@ def get_remote_bulletins_json(url)
|
||||||
is_hidden: false }
|
is_hidden: false }
|
||||||
|
|
||||||
this_bulletin = @coll_bulletin.find_one(:$and => [{ :sn => bulletin[:sn]},{ :site => bulletin[:site]}])
|
this_bulletin = @coll_bulletin.find_one(:$and => [{ :sn => bulletin[:sn]},{ :site => bulletin[:site]}])
|
||||||
|
@updated_bulletins.push({:sn => bulletin[:sn],:site => bulletin[:site] })
|
||||||
# p bulletin
|
# p bulletin
|
||||||
|
|
||||||
unless this_bulletin
|
unless this_bulletin
|
||||||
|
@ -133,3 +135,16 @@ end
|
||||||
|
|
||||||
get_remote_bulletins_json("http://president.fgu.edu.tw/remote_annoucement/get_news2.php")
|
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")
|
get_remote_bulletins_json("http://car.fgu.edu.tw/remote_annoucement/get_news2.php")
|
||||||
|
|
||||||
|
# Delete bulletins that had been removed form remote sites
|
||||||
|
# Find all remote bulletins on server
|
||||||
|
local_bulletins = @coll_bulletin.find({ site: { :$exists => true } })
|
||||||
|
|
||||||
|
# Check if each remote bulletins on server exist in the updated bulletins
|
||||||
|
local_bulletins.each do |local_bulletin|
|
||||||
|
result = @updated_bulletins.select {|remote_bulletin| remote_bulletin[:sn] == local_bulletin["sn"] and remote_bulletin[:site] == local_bulletin["site"]}
|
||||||
|
if result.length == 0
|
||||||
|
@coll_bulletin.remove(:$and => [{ :sn => local_bulletin["sn"]},{ :site => local_bulletin["site"]}])
|
||||||
|
p "Delete: "+local_bulletin["site"]+"-"+local_bulletin["sn"]
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in New Issue