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"]
 | 
			
		||||
@bulletin_links = @db["bulletin_links"]
 | 
			
		||||
@coll_cat =  @db["bulletin_categories"]
 | 
			
		||||
@updated_bulletins = Array.new
 | 
			
		||||
 | 
			
		||||
@categories = @coll_cat.find().to_a.inject({}) do |categories, category|
 | 
			
		||||
    categories[category['key']] = category['_id']
 | 
			
		||||
| 
						 | 
				
			
			@ -70,6 +71,7 @@ def get_remote_bulletins_json(url)
 | 
			
		|||
                    is_hidden: false }
 | 
			
		||||
 | 
			
		||||
        this_bulletin = @coll_bulletin.find_one(:$and => [{ :sn => bulletin[:sn]},{ :site => bulletin[:site]}])
 | 
			
		||||
        @updated_bulletins.push({:sn => bulletin[:sn],:site => bulletin[:site] })
 | 
			
		||||
        # p 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://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