必威体育Betway必威体育官网
当前位置:首页 > IT技术

JavaEye闲聊客户端[ruby]

时间:2019-08-15 08:10:00来源:IT技术作者:seo实验室小编阅读:56次「手机版」
 

javaeye

最近在学习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

相关阅读

手机浏览器,QQ通讯组件无法唤醒QQ客户端

新博客地址昨天遇到了这个问题,在网页端可以正常使用QQ通讯组件,但是放到了移动端就不行。试了好久终于搞定,在此分享一下我的经验,如

Linux FTP客户端

  1.File Zilla File Zilla是一个开源的,跨平台的Linux FTP客户端。File Zilla有一个标签式的用户界面,允许用户查看正在传输的

SVN客户端使用——访问库文件

SVN客户端使用——如何访问库文件本地选择一个空间足够大的存储盘,新建一个名为SVN_WORK 文件夹专门用来存放SVN文件,在SVN_WORK文

mac双开微信客户端方法

打开终端输入:open -n /Applications/WeChat.app/Contents/MacOS/WeChat即可完成微信的双开。

webservice之jax-ws服务端及客户端实现

1. 运行环境 (1) 操作系统 :windows10 (2) JDK:1.7 (3) IDE:Myeclipse10 (4)服务器:tomcat72. 服务端搭建步骤 (1) 在myeclipse中创建 Web

分享到:

栏目导航

推荐阅读

热门阅读