Class: Masuda::Diary
- Inherits:
-
Object
- Object
- Masuda::Diary
- Defined in:
- lib/masuda.rb
Constant Summary collapse
- @@host =
'anond.hatelabo.jp'
- @@login_host =
'www.hatelabo.jp'
- @@user_agent =
"RubyMasudaLibrary/#{VERSION}"
Class Method Summary collapse
Instance Method Summary collapse
- #entries(page = nil) ⇒ Object
- #entry(id) ⇒ Object
-
#initialize ⇒ Diary
constructor
A new instance of Diary.
- #login(user, pass) ⇒ Object
- #logined? ⇒ Boolean
- #logout ⇒ Object
- #my_entries(page = nil) ⇒ Object
- #post(title, content) ⇒ Object
- #raw ⇒ Object
- #trackbacks(id) ⇒ Object
- #update(raw_diary) ⇒ Object
Constructor Details
#initialize ⇒ Diary
Returns a new instance of Diary.
45 46 47 |
# File 'lib/masuda.rb', line 45 def initialize @cookies = {} end |
Class Method Details
Instance Method Details
#entries(page = nil) ⇒ Object
85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/masuda.rb', line 85 def entries(page = nil) path = page ? "/?page=#{page}" : '/' res = request(path) ets = nil if '200' == res.code ets, pages = to_entries(res.body) ets.instance_variable_set(:@pages, pages) def ets.pages; @pages; end end ets end |
#entry(id) ⇒ Object
73 74 75 76 77 78 79 |
# File 'lib/masuda.rb', line 73 def entry(id) res = request("/#{id}/") return nil unless ('200' == res.code) source = res.body.to_a et= to_entry(source) load_trackbacks(source, self, et) et end |
#login(user, pass) ⇒ Object
55 56 57 58 59 60 61 62 |
# File 'lib/masuda.rb', line 55 def login(user, pass) logout if logined? res = request('/login', {:mode => 'enter', :key => user, :password => pass, :autologin => 1}, @@login_host) = res.get_fields('set-cookie') () if @user = user if (retval = logined?) retval end |
#logined? ⇒ Boolean
69 70 71 |
# File 'lib/masuda.rb', line 69 def logined? %w(rk b).all? {|k| @cookies.has_key?(k) and @cookies[k].valid? } end |
#logout ⇒ Object
64 65 66 67 |
# File 'lib/masuda.rb', line 64 def logout @cookies.clear @user = nil end |
#my_entries(page = nil) ⇒ Object
99 100 101 102 103 104 105 106 107 108 109 110 111 112 |
# File 'lib/masuda.rb', line 99 def my_entries(page = nil) return nil unless logined? path = page ? "/#{@user}/?page=#{page}" : "/#{@user}/" res = request(path) ets = nil if '200' == res.code ets, pages = to_entries(res.body) ets.instance_variable_set(:@pages, pages) def ets.pages; @pages; end end ets end |
#post(title, content) ⇒ Object
114 115 116 117 118 |
# File 'lib/masuda.rb', line 114 def post(title, content) return false unless logined? res = request("/#{@user}/edit", {:mode => 'confirm', :rkm => rkm, :id => '', :title => title, :body => content, :edit => "\343\201\223\343\201\256\345\206\205\345\256\271\343\202\222\347\231\273\351\214\262\343\201\231\343\202\213"}) ('302' == res.code) end |
#raw ⇒ Object
120 121 122 |
# File 'lib/masuda.rb', line 120 def raw Marshal.dump('user' => @user, 'cookies' => @cookies.values.map {|| .raw }) end |
#trackbacks(id) ⇒ Object
81 82 83 |
# File 'lib/masuda.rb', line 81 def trackbacks(id) entry(id).trackbacks end |
#update(raw_diary) ⇒ Object
124 125 126 127 128 |
# File 'lib/masuda.rb', line 124 def update(raw_diary) attrs = Marshal.restore(raw_diary) @user = attrs['user'] (attrs['cookies']) end |