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

Instance Method Details

#actv_spaceObject

激活空间

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"
 user_A


17
18
19
20
21
22
23
24
25
26
# File 'lib/action/system/user_action.rb', line 17

def (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
 "ruguo", "passme123"
puts login?    #=> true

Returns:

  • (Boolean)


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 (user)
    get "#{ENV['passport']}"
    post "#{ENV['passport']}?login", {
        :username => user.name,
        :password => user.password
    }
end

#logoutObject

登出

Example:

 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:

 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