Module: ActionHelper
- Includes:
- ConfigHelper
- Defined in:
- lib/action/system/user_action.rb
Constant Summary
Constants included from ConfigHelper
ConfigHelper::CONF, ConfigHelper::ENV
Instance Method Summary collapse
-
#actv_space ⇒ Object
激活空间.
-
#login(user) ⇒ Object
登录.
-
#login? ⇒ Boolean
判断是否登录.
-
#login_raw(user) ⇒ Object
已废弃,请不要使用 参见 login.
-
#logout ⇒ Object
登出.
-
#regist_user(user) ⇒ Object
注册.
-
#upload_portrait(img_file) ⇒ Object
上传用户头像.
Instance Method Details
#actv_space ⇒ Object
激活空间
Example:
user_A = User.new "ruguo", "passme123", "ruguo"
actv_space user_A
113 114 115 116 117 118 119 120 121 122 |
# File 'lib/action/system/user_action.rb', line 113 def actv_space() raise "must login first" unless login? post "#{ENV['hi']}post/actv", { :spSpaceName => @user.name+"的空间", :spSpaceURL => @user.url } assert_grep "/sys/guide/portrait" $log.info "actv_space user[#{@user}] success!" end |
#login(user) ⇒ Object
登录
Example:
user_A = User.new "ruguo", "passme123", "ruguo"
login user_A
17 18 19 20 21 22 23 24 25 26 |
# File 'lib/action/system/user_action.rb', line 17 def login(user) get "#{ENV['passport']}" post "#{ENV['passport']}?login", { :username => user.name, :password => user.password } assert_grep "用户登录" @user = user $log.info "login user[#{user}] success!" end |
#login? ⇒ Boolean
判断是否登录
Example:
puts login? #=> false
login "ruguo", "passme123"
puts login? #=> true
131 132 133 |
# File 'lib/action/system/user_action.rb', line 131 def login? @user != nil end |
#login_raw(user) ⇒ Object
已废弃,请不要使用参见 login
30 31 32 33 34 35 36 |
# File 'lib/action/system/user_action.rb', line 30 def login_raw(user) get "#{ENV['passport']}" post "#{ENV['passport']}?login", { :username => user.name, :password => user.password } end |
#logout ⇒ Object
登出
Example:
login User.new "ruguo", "passme123", "ruguo"
logout
43 44 45 46 47 48 49 50 51 |
# File 'lib/action/system/user_action.rb', line 43 def logout raise "must login first" unless login? get "#{ENV['passport']}?logout",{},{ :referer => nil } assert_ok @user = nil $log.info "logout user[#{@user}] success!" end |
#regist_user(user) ⇒ Object
注册
因为注册地防作弊策略比较复杂,故此方法不是直接post数据,而是先get注册页面,解析出防作弊策略的参数,再发送post请求并且,由于验证码加解密算法仍未破解,故只能用于线下环境,验证码使用统一的aaaa
Example:
user_A = User.new "ruguo", "passme123", "ruguo"
regist_user user_A
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
# File 'lib/action/system/user_action.rb', line 62 def regist_user(user) # pass的防作弊策略,必须先请求注册页面获取crypt/k_k/k_v三个关键参数 get "#{ENV['passport']}?reg" crypt = find_attr "form[@name='reg'] input[@name='crypt']", "value" k_k = find_attr "form[@name='reg'] input[@name^='k']", "name" k_v = find_attr "form[@name='reg'] input[@name^='k']", "value" # pass的又一防作弊策略!! 访问这个页面是为了获取 BDUSS 的cookie get "#{ENV['passport']}?verifypic" # 配合pass的防作弊策略,必须停留5秒以上才能注册成功 sleep 5 post "#{ENV['passport']}?reg",{ #post "http://db-testing-space13.db01.baidu.com:4444/?reg",{ :aid => "", :friend => "", :tpl => "", :tpl_ok => "", :need_coin => "", :need_pay => "", :next_target => "", :nick => "", :pay_method => "", :rand => "", :regin => 0, :skip_ok => "", :uid => "", :u => ENV['passport'], :username => user.name, :loginpass => user.password, :verifypass => user.password, :sex => user.sex, :email => "#{user.name}@baidu.com", :regin => 0, :return_method => "GET", :crypt => crypt, k_k => k_v, :verifycode => "aaaa" } assert_grep "恭喜您已经成功注册" $log.info "regist_user user[#{user}] success!" end |
#upload_portrait(img_file) ⇒ Object
上传用户头像
参数说明:
-
img_file 用户头像的图片
Example:
login User.new "sst_hy_1","passme123","sst_hy_1","ba1368616e6e7975353132311905"
upload_portrait("#{$SUPER_ROOT_DATA}/images/Winter.jpg")
145 146 147 148 149 150 151 152 153 154 155 156 157 158 |
# File 'lib/action/system/user_action.rb', line 145 def upload_portrait(img_file) raise "must login first" unless login? raise "user[#{@user}] must have a portrait" if @user.portrait.nil? post "#{ENV['himg']}sys/upload/#{@user.portrait}",{ :BrowserType =>1, :cm =>1, :ct =>4, :spAlbumName =>"默认相册", :spIsBlogPicAdd =>2, :B2 =>"上传" },{},{:f0 => img_file} assert_grep 'parent.uploadstatus("0")' $log.info "upload_portrait img_file[#{img_file}] success!" end |