HEMiDEMi4r 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/hemidemi.rb +65 -0
- metadata +46 -0
data/lib/hemidemi.rb
ADDED
@@ -0,0 +1,65 @@
|
|
1
|
+
class HEMiDEMi
|
2
|
+
require 'open-uri'
|
3
|
+
require 'rubygems'
|
4
|
+
require 'hpricot'
|
5
|
+
=begin
|
6
|
+
Format:
|
7
|
+
rss/bookmark/[recent|popular|recommendation|recent_recommendation|recent_popular].xml
|
8
|
+
rss/user/xxx/bookmark/[recent|recommendation].xml
|
9
|
+
rss/group/xxx/bookmark/[recent|popular|recommendation|recent_recommendation|recent_popular].xml
|
10
|
+
rss/bookmark/tag/[tagname].xml
|
11
|
+
rss/user/xxx/bookmark/tag/[tagname].xml
|
12
|
+
rss/group/xxx/bookmark/tag/[tagname].xml
|
13
|
+
=end
|
14
|
+
HEMiDEMi_URL = "http://www.hemidemi.com/"
|
15
|
+
BOOKMARKS_URL = HEMiDEMi_URL + "rss/bookmark/"
|
16
|
+
USER_BOOKMARKS_URL = HEMiDEMi_URL + "rss/user/"
|
17
|
+
GROUP_BOOKMARKS_URL = HEMiDEMi_URL + "rss/group/"
|
18
|
+
def method_missing(m_id, options=nil, *args)
|
19
|
+
# options => Hash
|
20
|
+
# {:user => "garylin", :group => "ruby_and_ror", :tag => "tag"}
|
21
|
+
bkms = $1 if m_id.to_s =~ /^get_(\w+)_bookmarks/
|
22
|
+
ubkms = $1 if m_id.to_s =~ /^get_(\w+)_bookmarks_by_user/
|
23
|
+
gbkms = $1 if m_id.to_s =~ /^get_(\w+)_bookmarks_by_group/
|
24
|
+
tags = $1 if m_id.to_s =~ /^get_tag_bookmarks_by_(\w+)/
|
25
|
+
from, type = $1, $2 if m_id.to_s =~ /^get_url_by_(\w+)_(\w+)/
|
26
|
+
type = $1 if m_id.to_s =~ /^get_url_by_(\w+)/
|
27
|
+
|
28
|
+
super(m_id) if (bkms.nil? && ubkms.nil? && gbkms.nil? && tags.nil? && type.nil?)
|
29
|
+
# Get Bookmarks in recent or others
|
30
|
+
@url = BOOKMARKS_URL + bkms.to_s + ".xml" unless (bkms.nil? || bkms.size < 1)
|
31
|
+
|
32
|
+
# Get Bookmarks in recent or recommend by user
|
33
|
+
@url = USER_BOOKMARKS_URL + options.to_s + "/bookmark/" + ubkms.to_s + ".xml" if (options.is_a?(String) && (!ubkms.nil? || (ubkms.size > 0) if ubkms.is_a?(String)))
|
34
|
+
|
35
|
+
# Get bookmarks in recent of others by group
|
36
|
+
@url = GROUP_BOOKMARKS_URL + options.to_s + "/bookmark/" + gbkms.to_s + ".xml" if (options.is_a?(String) && (!gbkms.nil? || (gbkms.size > 0) if gbkms.is_a?(String)))
|
37
|
+
|
38
|
+
# Get bookmarks by tag
|
39
|
+
# @url = tags.to_s + user + "/bookmark/tag/" + tag + ".xml"
|
40
|
+
case tags
|
41
|
+
when "user"
|
42
|
+
user, tag = options[:user], options[:tag] if options.is_a?(Hash)
|
43
|
+
@url = USER_BOOKMARKS_URL + user + "/bookmark/tag/" + tag + ".xml"
|
44
|
+
when "group"
|
45
|
+
group, tag = options[:group], options[:tag] if options.is_a?(Hash)
|
46
|
+
@url = GROUP_BOOKMARKS_URL + group + "/bookmark/tag/" + tag + ".xml"
|
47
|
+
end
|
48
|
+
|
49
|
+
return self.send("get_#{type.to_s.split("_")[1]}_bookmarks_by_#{from}", options) if (!from.nil? && !type.nil?)
|
50
|
+
return self.send("get_#{type}_bookmarks") unless type.nil?
|
51
|
+
return @url if !@url.nil?
|
52
|
+
end
|
53
|
+
|
54
|
+
def get_rss(from="", name="", type="recent")
|
55
|
+
doc = nil
|
56
|
+
if (from.size > 0 && name.size > 0)
|
57
|
+
doc = Hpricot(open(self.send("get_url_by_#{from}_#{type}", name)))
|
58
|
+
else
|
59
|
+
doc = Hpricot(open(self.send("get_url_by_#{type}")))
|
60
|
+
end
|
61
|
+
search = doc.search("//channel/item")
|
62
|
+
return [search, search.size]
|
63
|
+
end
|
64
|
+
|
65
|
+
end
|
metadata
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
rubygems_version: 0.9.2
|
3
|
+
specification_version: 1
|
4
|
+
name: HEMiDEMi4r
|
5
|
+
version: !ruby/object:Gem::Version
|
6
|
+
version: 0.1.1
|
7
|
+
date: 2007-06-21 00:00:00 +08:00
|
8
|
+
summary: HEMiDEMi Library
|
9
|
+
require_paths:
|
10
|
+
- lib
|
11
|
+
email: zusocfc@gmail.com
|
12
|
+
homepage: http://zusocfc.blogspot.com
|
13
|
+
rubyforge_project:
|
14
|
+
description:
|
15
|
+
autorequire:
|
16
|
+
default_executable:
|
17
|
+
bindir: bin
|
18
|
+
has_rdoc: false
|
19
|
+
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">"
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 0.0.0
|
24
|
+
version:
|
25
|
+
platform: ruby
|
26
|
+
signing_key:
|
27
|
+
cert_chain:
|
28
|
+
post_install_message:
|
29
|
+
authors:
|
30
|
+
- CFC
|
31
|
+
files:
|
32
|
+
- lib/hemidemi.rb
|
33
|
+
test_files: []
|
34
|
+
|
35
|
+
rdoc_options: []
|
36
|
+
|
37
|
+
extra_rdoc_files: []
|
38
|
+
|
39
|
+
executables: []
|
40
|
+
|
41
|
+
extensions: []
|
42
|
+
|
43
|
+
requirements: []
|
44
|
+
|
45
|
+
dependencies: []
|
46
|
+
|