最近在学习ruby的GUI工具Shoes,想用ruby做一个和JE Talker差不多的工具,所以就先写了个JavaEye的Client。
目前已完成认证,get_all(获取全站闲聊),get_list(获取自己订阅的闲聊),get_reply(获取@自己的闲聊)。
这是项目地址:http://javaeye-client-ruby.googlecode.com/svn/trunk/
code:
require'net/http'
require'json'
module JavaEye
AUTH_URL="http://api.iteye.com/api/auth/verify"
VIA="EyeShoes"
LIST_URL="http://api.iteye.com/api/twitters/list"
REPLY_URL='http://api.iteye.com/api/twitters/replies'
ALL_URL='http://api.iteye.com/api/twitters/all'
class User
%W[name domain id logo].each do |attr|
attr_accessor attr.to_sym
end
def initialize(hash)
hash.each do |key,value|
self.send("#{key}=",value)
end
end
end
class Twitter
%W[user id created_at body name logo domain receiver reply_to_id via].each do |attr|
attr_accessor attr.to_sym
end
def initialize(hash)
hash.each do |key,value|
if key=="user"
self.send("#{key}=",User.new(value))
else
self.send("#{key}=",value)
end
end
end
end
class Client
attr_accessor:user
attr_accessor:auth_code
def initialize(username,password)
@username=username
@password=password
end
def auth
@url=AUTH_URL
@url=URI.parse(@url)
Net::HTTP.start(@url.host) do |http|
req=Net::HTTP::Get.new(@url.path)
req.basic_auth @username,@password
resp=http.request(req)
case resp.code
when "200"
@auth_code="200"
@user=User.new(JSON.parse(resp.body))
when "400"
@auth_code="400"
when "401"
@auth_code="401"
end
end
end
def option2query(option)
query=''
option.each do |key,value|
query<<(key.to_s+'='+value.to_s+'&')
query.chomp
end
query.chop
end
def get_request_uri(path,option)
query=option2query(option)
if query.empty?
path
else
path+'?'+query
end
end
def basic_get_request(url,option={})
url=get_request_uri(url,option)
url=URI.parse(url)
Net::HTTP.start(url.host) do |http|
req=Net::HTTP::Get.new(url.request_uri)
req.basic_auth @username,@password
resp=http.request(req)
return resp
end
end
def basic_post_request(url,data,option={})
url=get_request_uri(url,option)
url=URI.parse(url)
Net::HTTP.start(url.host) do |http|
req=Net::HTTP::Post.new(url.request_uri,data)
req.basic_auth @username,@password
resp=http.request(req)
return resp
end
end
def get_twitters(url,option)
resp=basic_get_request(url,option)
case resp.code
when "200"
@auth_code="200"
twitters||=[]
JSON.parse(resp.body).each do |twitter|
twitters<<Twitter.new(twitter)
end
twitters
when "400"
@auth_code="400"
nil
when "401"
@auth_code="401"
nil
end
end
def get_list(option={})
get_twitters(LIST_URL,option)
end
def get_reply(option={})
get_twitters(REPLY_URL,option)
end
def get_all(option={})
get_twitters(ALL_URL,option)
end
def create
end
def delete
end
end
end
分享到:
相关推荐
JavaEye客户端是一款基于Java开发的开源软件,专为学习和理解客户端编程技术而设计,尤其适合初学者。这个客户端代码库包含了许多与网络通信相关的功能,主要集中在HTTP协议的使用和数据解析上。通过深入研究JavaEye...
《Android JavaEye客户端详解》 JavaEye作为知名的IT社区,为开发者提供了丰富的资讯与交流平台。而Android JavaEye客户端则是该社区为了满足移动用户需求,专门开发的一款应用程序,旨在让用户随时随地获取最新的...
JavaEye是一个基于Android平台的应用程序,它展示了在移动设备上构建功能丰富的软件的可能性。这个小应用旨在为开发者提供灵感和指导,帮助他们更好地理解和实践Android应用开发。让我们深入探讨一下这个应用背后的...
- 实现了JavaEye闲聊功能,允许用户进行即时聊天。 - 支持站内短信功能,方便用户发送和接收站内消息。 - 集成了收藏功能,让用户能够收藏感兴趣的内容。 - **发布情况**:该应用已经成功上线Android Market,即...
【标题】:“麦库客户端模仿javaeye插入代码高亮插件” 这个标题表明我们要讨论的是一个针对麦库(Maiku)客户端的修改或增强,它借鉴了JavaEye网站的代码高亮显示功能。JavaEye是一个知名的中国IT社区,其代码高亮...
JavaEye Client SourceCode是一个开源项目,专为Android平台设计,提供了JavaEYE的客户端实现。这个项目的源代码为我们提供了一个深入了解Android应用开发以及Java编程在移动设备上的实践的宝贵资源。接下来,我们将...
经过2个半星期的努力… lordhong和mqqqvpppm, 轩[kop]一起开发了JavaEye的android客户端alpha版本. 当前版本包括闲聊, 站内短信, 和收藏. 功能安装当前API上的描述来开发
javaeye被黑 大家看看
### JavaEye3.0开发手记之开发环境搭建详解 #### 一、开发环境搭建概述 随着JavaEye3.0开发计划的启动,本篇文章将详细介绍如何为该项目搭建高效的开发环境。开发过程中不仅需要考虑软件的选择,还需要针对操作...
19. Ruby on Rails:Ruby on Rails是一个流行的Web开发框架,文中探讨了其在企业开发、嵌入式开发中的应用,以及工作流实现。 20. AJAX技术:包括ExtJS基础教程和jQuery图片循环效果,展示了AJAX如何提升用户体验。...
同期,Ruby on Rails 2.3最终版发布,该版本引入了Rack中间件的使用和支持新Engine的增强等关键特性,增强了Ruby on Rails的可扩展性和性能。 在开源技术领域,Linux有潜力成为Java的操作系统(OS),以及Google ...
- **Ruby操作Excel**:`http://www.javaeye.com/topic/46768` 提供了Ruby操作Excel的方法。 - **Ruby自带教程**:位于 `C:\ruby\doc\ProgrammingRuby.chm` ,提供了详细的Ruby教程。 - **Ruby自带示例**:位于 `C:\...
JavaEye+技术架构,讲述java框架的应用
- `*`表示匹配前一个字符0次或多次,例如`/Hello*/`可以匹配`Hello`或`HelloJavaeye`。 - `+`表示匹配前一个字符1次或多次,例如`/a+c/`可以匹配`abc`或`abbc`等。 - `{n}`表示精确匹配前一个字符n次,例如`/d{3}/`...
javaeye的信息提示框代码之css,application.js
### JavaEye2.0_on_rails:敏捷Web开发实践与Ruby on Rails的应用 #### 敏捷软件开发方法 - **背景**:传统软件工程方法在实际应用中面临着项目延期、成本超支以及软件质量不高的问题。为了克服这些挑战,业界提出...
ruby勇士,初学者边游戏边学习ruby的好玩的东西。具体玩法在 http://www.javaeye.com/topic/383938,或者Google一下“ruby勇士”。因为下载游戏的网站有时访问不了,上传一下提供下载。