Skip to content

Commit

Permalink
1. 删除了 Shares 表,分享不存数据库里面,改为直接取Google Reader的20条,以集合的方式存 Cache 里面;
Browse files Browse the repository at this point in the history
2. 当然,就加入了 google_reader_id 到 Settings 表里面;
3. 去除了之前所有 Shares 表由 scaffold 生成的文件;
4. 后面设置里面加入 google_reader_id 的项;
5. HomeController 加入 share,用于分享页面,并且share功能目前已完成;
6. lib/string 里面加入 remove_html_tag 的方法,用于清除所有HTML标签;
7. lib/string 里面加和 html_decode 方法,用于反解 html_encode 格式化的内容;
  • Loading branch information
huacnlee committed May 17, 2009
1 parent e971349 commit bcbaa5b
Show file tree
Hide file tree
Showing 22 changed files with 91 additions and 779 deletions.
7 changes: 7 additions & 0 deletions app/controllers/home_controller.rb
Expand Up @@ -27,4 +27,11 @@ def show
set_nav_actived(@page.slug)
render :file => "pages/show", :layout => "application"
end

def share
set_nav_actived("share")
set_seo_meta("Google Reader 分享")
@api_url = Share.api_url(@setting)
@shares = Share.find_all(@setting)
end
end
85 changes: 0 additions & 85 deletions app/controllers/shares_controller.rb

This file was deleted.

2 changes: 2 additions & 0 deletions app/helpers/application_helper.rb
Expand Up @@ -13,4 +13,6 @@ def success_messages
''
end
end


end
2 changes: 0 additions & 2 deletions app/helpers/blogs_helper.rb

This file was deleted.

2 changes: 0 additions & 2 deletions app/helpers/shares_helper.rb

This file was deleted.

1 change: 1 addition & 0 deletions app/models/setting.rb
Expand Up @@ -9,6 +9,7 @@ def self.find_create
:email => "huacnlee@gmail.com",
:meta_description => "我是一个Web开发人员,.NET,Python,Ruby,PHP,Javascrip等都有在用,我是做互联网开发的,这是一个用于介绍我自已的网站.",
:fanfou_id => "huacn",
:google_reader_id => "08982619185204047523",
:home_show => '
<div class="info">
<div class="face">
Expand Down
32 changes: 32 additions & 0 deletions app/models/share.rb
@@ -1,2 +1,34 @@
require "rubygems"
require 'simple-rss'
require 'open-uri'
require "lib/string"

class Share < ActiveRecord::Base

def self.api_url(setting)
"http://www.google.com/reader/public/atom/user%2F#{setting.google_reader_id}%2Fstate%2Fcom.google%2Fbroadcast"
end

def self.find_all(setting)
@expire_minutes = 1.days.minutes
cache_key = "data/shares"
feeds = Rails.cache.read(cache_key)
if not feeds
feeds = []
feed = SimpleRSS::parse open(api_url(setting))
if feed != nil
feed.items.each do |item|
feeds << {
"title" => item.title,
"link" => item.link,
"content" => item.content == nil ? item.summary.html_decode.remove_html_tag()[0..500] + '...' : item.content.html_decode.remove_html_tag()[0..500] + '...',
"updated_at" => item.updated,
"author" => item.author,
}
end
end
Rails.cache.write(cache_key,feeds,:expires_in => @expire_minutes)
end
feeds
end
end
4 changes: 4 additions & 0 deletions app/views/cpanel/settings/index.html.erb
Expand Up @@ -23,6 +23,10 @@
<td class="field">饭否ID</td>
<td><%= f.text_field :fanfou_id, :class => "text middle" %></td>
</tr>
<tr class="row">
<td class="field">Google Reader</td>
<td>http://www.google.com/reader/shared/<%= f.text_field :google_reader_id, :class => "text short" %></td>
</tr>
<tr class="row">
<td class="field">Meta Keywords</td>
<td><%= f.text_field :meta_keywords, :class => "text long" %></td>
Expand Down
32 changes: 0 additions & 32 deletions app/views/shares/edit.html.erb

This file was deleted.

28 changes: 0 additions & 28 deletions app/views/shares/index.html.erb

This file was deleted.

31 changes: 0 additions & 31 deletions app/views/shares/new.html.erb

This file was deleted.

28 changes: 0 additions & 28 deletions app/views/shares/show.html.erb

This file was deleted.

5 changes: 3 additions & 2 deletions config/routes.rb
Expand Up @@ -12,15 +12,16 @@
end

# Share
map.resources :controller => "shares", :as => "share"


# Blog
map.purchase "blog", :controller => "posts"
map.purchase "blog", :controller => "posts", :action => "index"
map.purchase "blog/rss", :controller => "posts", :action => "rss"
map.purchase "blog/page/:page", :controller => "posts", :action => "index", :requirements => { :page => /[\d]+/ }
map.purchase "blog/:slug", :controller => "posts", :action => "show", :requirements => { :slug => /[a-z0-9A-Z\-\_\.]+/ }

map.purchase "share", :controller => "home", :action => "share"

# Pages (This well be stay last line)
map.purchase ":slug", :controller => "home", :action => "show", :requirements => { :slug => /[a-z0-9A-Z\-\_\.]+/ }

Expand Down
Binary file modified db/development.sqlite3
Binary file not shown.
13 changes: 2 additions & 11 deletions db/schema.rb
Expand Up @@ -9,7 +9,7 @@
#
# It's strongly recommended to check this file into your version control system.

ActiveRecord::Schema.define(:version => 20090517034648) do
ActiveRecord::Schema.define(:version => 20090517064606) do

create_table "comments", :force => true do |t|
t.integer "post_id", :null => false
Expand Down Expand Up @@ -71,16 +71,7 @@
t.datetime "updated_at"
t.string "fanfou_id"
t.string "blog_feed_html"
end

create_table "shares", :force => true do |t|
t.string "title", :null => false
t.string "summary", :null => false
t.string "from"
t.string "cover"
t.string "url", :null => false
t.datetime "created_at"
t.datetime "updated_at"
t.string "google_reader_id"
end

create_table "tags", :force => true do |t|
Expand Down
9 changes: 9 additions & 0 deletions lib/string.rb
Expand Up @@ -28,6 +28,15 @@ def truncate_html(len = 30, ellipsis = "...")
(results + ellipsis)
end

def remove_html_tag()
self.gsub(/<.+?>/, "")
end

def html_decode
es = {'&amp;' => '&', '&gt;' => '>', '&lt;' => '<', '&quot;' => '"'}
self.gsub(/&amp;|&gt;|&lt;|&quot;/) { |s| es[s] }
end

# clear unsafe char with url slug
def safe_slug(spliter = '-')
@slug = self
Expand Down

0 comments on commit bcbaa5b

Please sign in to comment.