import rss2 news
This commit is contained in:
parent
a3cebe78fa
commit
edf055b53a
|
@ -0,0 +1,96 @@
|
||||||
|
require "net/http"
|
||||||
|
require "uri"
|
||||||
|
require 'json'
|
||||||
|
|
||||||
|
class Admin::ImportController < ApplicationController
|
||||||
|
|
||||||
|
def rss2_news
|
||||||
|
@url = "http://192.168.1.10/alreadly_removed/NKUT/NKUT_01/remote_annoucement/get_news.php"
|
||||||
|
uri = URI.parse(@url)
|
||||||
|
http = Net::HTTP.new(uri.host, uri.port)
|
||||||
|
request = Net::HTTP::Get.new(uri.request_uri)
|
||||||
|
response = http.request(request)
|
||||||
|
data = response.body
|
||||||
|
data = JSON.parse(data)
|
||||||
|
@categories = data['categories']
|
||||||
|
@data = data['data']
|
||||||
|
@xxx = []
|
||||||
|
@new_category_ids = {}
|
||||||
|
l = I18n.locale
|
||||||
|
I18n.locale = :zh_tw
|
||||||
|
module_id = ModuleApp.where(:key=>"announcement").first.id
|
||||||
|
|
||||||
|
@categories.each do |category|
|
||||||
|
x = Category.where(:title => category["zh_tw"]).first
|
||||||
|
if x.nil?
|
||||||
|
@xxx << category
|
||||||
|
cat = Category.new
|
||||||
|
titles = {}
|
||||||
|
@site_valid_locales.each do |locale|
|
||||||
|
titles[locale] = category[locale]
|
||||||
|
end
|
||||||
|
cat.title_translations = titles
|
||||||
|
cat.module_app_id = module_id
|
||||||
|
cat.save!
|
||||||
|
@new_category_ids[category["id"]] = cat.id
|
||||||
|
else
|
||||||
|
@new_category_ids[category["id"]] = x.id
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
@regexp = /(https?:\/\/([-\w\.]+)+(:\d+)?(\/([\w\/_\.]*(\?\S+)?)?)?)/
|
||||||
|
@user = User.where(:user_id => "rulingcom").first
|
||||||
|
|
||||||
|
@data.each do |row|
|
||||||
|
bulletin = Bulletin.new
|
||||||
|
bulletin.title_translations = row['Title']
|
||||||
|
bulletin.subtitle_translations = row['Summary']
|
||||||
|
|
||||||
|
|
||||||
|
@site_valid_locales.each do |locale|
|
||||||
|
temp = row['Content'][locale]
|
||||||
|
urls = temp.scan(@regexp)
|
||||||
|
urls.each do |url|
|
||||||
|
u = url[0]
|
||||||
|
a = Asset.new
|
||||||
|
a.remote_data_url = u
|
||||||
|
a.assetable_type = "User"
|
||||||
|
a.assetable_id = @user.id
|
||||||
|
a.title = {"en" => a["data"], "zh_tw" => a["data"]}
|
||||||
|
a.save!
|
||||||
|
temp.sub!(u,a.data.to_s)
|
||||||
|
end
|
||||||
|
row['Content'][locale] = temp
|
||||||
|
end
|
||||||
|
|
||||||
|
bulletin.text_translations = row['Content']
|
||||||
|
bulletin.category_id = @new_category_ids[row["Category"]]
|
||||||
|
bulletin.view_count = row["Visits"]
|
||||||
|
bulletin.postdate = row["PostDate"]
|
||||||
|
bulletin.deadline = row['Deadline']
|
||||||
|
bulletin.remote_image_url = row["Pic"] if row["Pic"]
|
||||||
|
|
||||||
|
if row["URL"] && row['URL'] != ""
|
||||||
|
bl = BulletinLink.new
|
||||||
|
bl.url = row["URL"]
|
||||||
|
bl.title_translations = {"en" => "Link", "zh_tw" => "Link"}
|
||||||
|
bl.bulletin_id = bulletin.id
|
||||||
|
bl.save!
|
||||||
|
end
|
||||||
|
row['files'].each do |f|
|
||||||
|
bf = BulletinFile.new
|
||||||
|
bf.remote_file_url = f['url']
|
||||||
|
bf.title_translations = {"en" => f['title'], "zh_tw" => f['title']}
|
||||||
|
bf.bulletin_id = bulletin.id
|
||||||
|
bf.save!
|
||||||
|
end
|
||||||
|
|
||||||
|
bulletin.tagged_ids = []
|
||||||
|
bulletin.save!
|
||||||
|
end
|
||||||
|
|
||||||
|
I18n.locale = l
|
||||||
|
|
||||||
|
render :json => {"success"=>true}.to_json
|
||||||
|
end
|
||||||
|
end
|
|
@ -279,7 +279,7 @@ Orbit::Application.routes.draw do
|
||||||
match 'template_store/download_theme' => "template_store#download_theme"
|
match 'template_store/download_theme' => "template_store#download_theme"
|
||||||
match 'template_store/template/:id' => 'template_store#show', :as => :template_store_template
|
match 'template_store/template/:id' => 'template_store#show', :as => :template_store_template
|
||||||
# match 'template_store/cool_method' => "template_store#cool_method"
|
# match 'template_store/cool_method' => "template_store#cool_method"
|
||||||
|
match "import/rss2_news" => "import#rss2_news"
|
||||||
end
|
end
|
||||||
# end admin
|
# end admin
|
||||||
|
|
||||||
|
@ -351,6 +351,7 @@ Orbit::Application.routes.draw do
|
||||||
match '/desktop_orbit/gettimelinespan' => 'desktop_orbit#gettimelinespan'
|
match '/desktop_orbit/gettimelinespan' => 'desktop_orbit#gettimelinespan'
|
||||||
|
|
||||||
match "/facebook/register_fb" => "facebook#register_fb"
|
match "/facebook/register_fb" => "facebook#register_fb"
|
||||||
|
|
||||||
match "/facebook/get_friends" => "facebook#get_friends"
|
match "/facebook/get_friends" => "facebook#get_friends"
|
||||||
match "/facebook/get_feed" => "facebook#get_feed"
|
match "/facebook/get_feed" => "facebook#get_feed"
|
||||||
match "/facebook/disconnect" => "facebook#disconnect"
|
match "/facebook/disconnect" => "facebook#disconnect"
|
||||||
|
@ -362,6 +363,7 @@ Orbit::Application.routes.draw do
|
||||||
#match '/desktop_orbit/eventajaxload' => 'desktop_publications#delete_journal'
|
#match '/desktop_orbit/eventajaxload' => 'desktop_publications#delete_journal'
|
||||||
# match '/desktop_orbit/eventajaxload' => 'desktop_publications#update_journal'
|
# match '/desktop_orbit/eventajaxload' => 'desktop_publications#update_journal'
|
||||||
|
|
||||||
|
|
||||||
def controller_paths(controller, actions, scope=nil)
|
def controller_paths(controller, actions, scope=nil)
|
||||||
actions.each do |action|
|
actions.each do |action|
|
||||||
if action.eql? 'index'
|
if action.eql? 'index'
|
||||||
|
|
Loading…
Reference in New Issue