forked from saurabh/orbit4-5
fix some issue in import_controller
This commit is contained in:
parent
3dafcf37bc
commit
84a11d6e67
|
@ -135,32 +135,13 @@ class Admin::ImportController < OrbitAdminController
|
||||||
|
|
||||||
@site_valid_locales.each do |locale|
|
@site_valid_locales.each do |locale|
|
||||||
locale = locale.to_s
|
locale = locale.to_s
|
||||||
if news['Content'][locale]=="" and news['Summary'][locale]!=""
|
if (news['Content'][locale].blank? or (news['Content'][locale].gsub(" \;","").blank? rescue true)) and !news['Summary'][locale].blank?
|
||||||
news['Content'][locale] = news['Summary'][locale]
|
news['Content'][locale] = news['Summary'][locale]
|
||||||
news['Summary'][locale] = " "
|
news['Summary'][locale] = " "
|
||||||
end
|
end
|
||||||
|
|
||||||
temp = news['Content'][locale]
|
temp = smart_downloader(news['Content'][locale], @host)
|
||||||
|
news['Content'][locale] = temp
|
||||||
urls = Nokogiri::HTML(temp).css("img").map do |link|
|
|
||||||
|
|
||||||
if URI.parse(link.attr("src")).host == @host
|
|
||||||
link.attr("src")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
urls.each do |url|
|
|
||||||
next if url.nil?
|
|
||||||
a = Asset.new
|
|
||||||
a.remote_data_url = url
|
|
||||||
a.title_translations = {"en" => a.data.filename, "zh_tw" => a.data.filename}
|
|
||||||
if(a.save! rescue false)
|
|
||||||
temp.gsub!(CGI::escapeHTML(url), "#")
|
|
||||||
else
|
|
||||||
@user.assets << a
|
|
||||||
temp.gsub!(CGI::escapeHTML(url), a.data.to_s)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
news['Content'][locale] = temp
|
|
||||||
end
|
end
|
||||||
|
|
||||||
bulletin.text_translations = news['Content']
|
bulletin.text_translations = news['Content']
|
||||||
|
@ -568,7 +549,12 @@ class Admin::ImportController < OrbitAdminController
|
||||||
@data_to_send = []
|
@data_to_send = []
|
||||||
albums.each do |album|
|
albums.each do |album|
|
||||||
if Album.where(:rss2_id => album["albumid"]).count == 0
|
if Album.where(:rss2_id => album["albumid"]).count == 0
|
||||||
newalbum = Album.new(:name_translations => {"en" => album["name"]["en"], "zh_tw" => album["name"]["zh_tw"]}, :description_translations => {"en" => album["description"]["en"], "zh_tw" => album["description"]["zh_tw"]},"rss2_id" => album["albumid"])
|
newalbum = Album.new(
|
||||||
|
:name_translations => {"en" => album["name"]["en"], "zh_tw" => album["name"]["zh_tw"]},
|
||||||
|
:description_translations => {
|
||||||
|
"en" => (album["description"]["en"].nil? ? "" : album["description"]["en"]),
|
||||||
|
"zh_tw" => (album["description"]["zh_tw"].nil? ? "" : album["description"]["zh_tw"])},
|
||||||
|
:rss2_id => album["albumid"])
|
||||||
newalbum.category_id = category.id
|
newalbum.category_id = category.id
|
||||||
newalbum.save
|
newalbum.save
|
||||||
else
|
else
|
||||||
|
@ -576,7 +562,8 @@ class Admin::ImportController < OrbitAdminController
|
||||||
end
|
end
|
||||||
images = album["images"]
|
images = album["images"]
|
||||||
images.each do |image|
|
images.each do |image|
|
||||||
@data_to_send << {"album_id" => newalbum.id.to_s,"album_name" => newalbum.name_translations["zh_tw"], "url" => image["image"], "description" => {"en" => image["description"]["en"], "zh_tw" => image["description"]["zh_tw"]},"photoid" => image["photoid"]}
|
next if image.blank?
|
||||||
|
@data_to_send << {"album_id" => newalbum.id.to_s,"album_name" => newalbum.name_translations["zh_tw"], "url" => image["image"], "description" => {"en" => image["description"]["en"], "zh_tw" => image["description"]["zh_tw"]},"photoid" => image["photoid"]}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
render :json => {"images" => @data_to_send}.to_json
|
render :json => {"images" => @data_to_send}.to_json
|
||||||
|
@ -1179,28 +1166,29 @@ class Admin::ImportController < OrbitAdminController
|
||||||
end
|
end
|
||||||
|
|
||||||
def smart_downloader(data,url)
|
def smart_downloader(data,url)
|
||||||
@data = data
|
@data = data
|
||||||
excluded_extensions = ["php","/"]
|
excluded_extensions = ["php","/"]
|
||||||
@links = URI.extract(@data)
|
@links = URI.extract(@data) rescue []
|
||||||
@links.each do |link|
|
@links = @links.map{|link| link if (link.include?url rescue false)}.reject{|link| link.nil?}.uniq
|
||||||
if link.include?url
|
@links.each do |link|
|
||||||
temp = link.gsub(url,"")
|
link = link.gsub("\&\;","&")
|
||||||
extension = temp.split(".").last rescue nil
|
temp = link.gsub(url,"")
|
||||||
if extension.nil? || excluded_extensions.include?(extension)
|
extension = temp.split(".").last rescue nil
|
||||||
@data = @data.sub(link,"#")
|
if (extension.nil? || excluded_extensions.include?(extension)) and !link.include?("img.php") and !link.include?("download.php")
|
||||||
else
|
@data = @data.sub(link,"#")
|
||||||
a = Asset.new
|
else
|
||||||
a.remote_data_url = link
|
a = Asset.new
|
||||||
a.title_translations = {"en" => a.data.filename, "zh_tw" => a.data.filename}
|
a.remote_data_url = link
|
||||||
if (a.save! rescue false)
|
a.title_translations = {"en" => a.data.filename, "zh_tw" => a.data.filename}
|
||||||
@user.assets << a
|
if (a.save! rescue false)
|
||||||
@user.save
|
@user.assets << a
|
||||||
@data = @data.sub(link, a.data.url)
|
@user.save
|
||||||
end
|
link = link.gsub("&","\&\;")
|
||||||
|
@data = @data.sub(link, a.data.url)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@data
|
@data
|
||||||
end
|
end
|
||||||
|
|
||||||
def write_to_file
|
def write_to_file
|
||||||
|
|
Loading…
Reference in New Issue