Class: Actir::CookiesBaidu
- Inherits:
-
Object
- Object
- Actir::CookiesBaidu
- Defined in:
- lib/actir/script/cookies_baidu.rb
Class Method Summary collapse
-
.baifubao_account_file ⇒ Object
百度账号配置文件.
- .baifubao_key ⇒ Object
-
.clear_after_failure ⇒ Object
更新baidu_cookies失败后的清理操作。目前需要手动调用,后续优化.
-
.cookies_file ⇒ Object
配置文件相对路径.
-
.cookies_path ⇒ Object
配置文件的上一级路径.
-
.get_baifubao_cookies ⇒ Object
获取cookies.
-
.get_useful_card ⇒ Object
获取可用的百度账号的hash 返回值=> {“username” => “xxx”, “password”=>“iloveyouzan”, xxx}.
-
.login_baifubao(username, password) ⇒ Object
登录百付宝主页.
- .modify_cookies(card, cookies) ⇒ Object
-
.open_baifubao(address = []) ⇒ Object
访问百付宝主页.
-
.re_available ⇒ Object
将所有百度支付卡的available状态恢复为true.
-
.set_useless_card(card) ⇒ Object
设置不可用的卡 入参传入卡的key.
-
.update_all(address = []) ⇒ Object
更新百度账号所有的配置文件.
-
.update_cookies(card, address = []) ⇒ Object
更新配置文件中的baidu_cookies.
Class Method Details
.baifubao_account_file ⇒ Object
百度账号配置文件
150 151 152 |
# File 'lib/actir/script/cookies_baidu.rb', line 150 def baifubao_account_file File.join(Actir::Config.default_config_dir, "/pay.yaml") end |
.baifubao_key ⇒ Object
154 155 156 |
# File 'lib/actir/script/cookies_baidu.rb', line 154 def baifubao_key "pay.baifubao" end |
.clear_after_failure ⇒ Object
更新baidu_cookies失败后的清理操作。目前需要手动调用,后续优化
77 78 79 80 81 |
# File 'lib/actir/script/cookies_baidu.rb', line 77 def clear_after_failure if @browser != nil @browser.close end end |
.cookies_file ⇒ Object
配置文件相对路径
145 146 147 |
# File 'lib/actir/script/cookies_baidu.rb', line 145 def File.join(File.dirname(__FILE__), "cookies", "/cookies.yaml") end |
.cookies_path ⇒ Object
配置文件的上一级路径
140 141 142 |
# File 'lib/actir/script/cookies_baidu.rb', line 140 def File.join(File.dirname(__FILE__), "cookies") end |
.get_baifubao_cookies ⇒ Object
获取cookies
123 124 125 126 127 128 129 130 131 |
# File 'lib/actir/script/cookies_baidu.rb', line 123 def sleep 3 id = @browser.[:BAIDUID][:value] ss = @browser.[:BDUSS][:value] @browser.close #cookies = " BAIDUID:\s\s\s\s\s\s\"" + id + "\"\n BDUSS:\s\s\s\s\s\s\s\s\"" + ss + "\"\n" #以hash形式返回 {:BAIDUID => id, :BDUSS => ss } end |
.get_useful_card ⇒ Object
获取可用的百度账号的hash 返回值=> {“username” => “xxx”, “password”=>“iloveyouzan”, xxx}
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/actir/script/cookies_baidu.rb', line 49 def get_useful_card # old_config = Actir::Config.config_dir # Actir::Config.config_dir = script_config_path #通过配置文件判断取出可用的卡的参数 baidu_card = Actir::Config.get(baifubao_key) card = {} baidu_card.each do |key, value| if value["available"] == true # 顺便取一下cookies = Actir::Config.get("cookies." + key, ) value["BAIDUID"] = ["BAIDUID"] value["BDUSS"] = ["BDUSS"] #有可用的卡,取出cookies等参数 card.store(key, value) break end end # Actir::Config.config_dir = old_config card end |
.login_baifubao(username, password) ⇒ Object
登录百付宝主页
111 112 113 114 115 116 117 118 119 120 |
# File 'lib/actir/script/cookies_baidu.rb', line 111 def login_baifubao(username, password) # 选择账号登陆(默认是短信快捷登录,所以需要点击切换一下) link_baifubao_login_back.wait_until_present link_baifubao_login_back.click # 输入账号密码 text_baifubao_username.wait_until_present text_baifubao_username.set username text_baifubao_password.set password .click end |
.modify_cookies(card, cookies) ⇒ Object
133 134 135 136 137 |
# File 'lib/actir/script/cookies_baidu.rb', line 133 def (card, ) .each do |key, value| Actir::Config.set("cookies" + "." + card + "." + key.to_s , "\"" + value.to_s + "\"", ) end end |
.open_baifubao(address = []) ⇒ Object
访问百付宝主页
99 100 101 102 103 104 105 106 107 108 |
# File 'lib/actir/script/cookies_baidu.rb', line 99 def open_baifubao(address = []) if address.size == 0 if $mode == :remote address = Actir::Remote.get_remote_address(1) end end @browser = Browser.new(:www, :url => address[0], :mode => $mode, :browser => :chrome, :window_size => nil) @browser.goto "baifubao.com" @browser end |
.re_available ⇒ Object
将所有百度支付卡的available状态恢复为true
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/actir/script/cookies_baidu.rb', line 27 def re_available #每次登陆都判断一下cookies文件的上一次修改时间和当前时间 #如果日期不同,则刷新所有的pay文件中baidu-card的状态 unless Actir::Config.is_same_day?("cookies", ) Actir::Config.lock("pay") do str_array = IO.readlines(baifubao_account_file) str_array.each_with_index do |line, index| if line =~ /available\:\s*false/ str_array[index] = line.gsub(/false/, 'true') end end = File.open(baifubao_account_file, 'w') str_array.each do |line| .puts line end .close end end end |
.set_useless_card(card) ⇒ Object
设置不可用的卡 入参传入卡的key
72 73 74 |
# File 'lib/actir/script/cookies_baidu.rb', line 72 def set_useless_card(card) Actir::Config.set(baifubao_key + "." + card + "." + "available", "false") end |
.update_all(address = []) ⇒ Object
更新百度账号所有的配置文件
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/actir/script/cookies_baidu.rb', line 9 def update_all(address = []) baidu_card = Actir::Config.get(baifubao_key) # 确认目前可用的卡的数目和cookies文件上的是否匹配 # TODO 先不实现,cookies文件上的cards数量过多目前看不影响 # baidu_card_cookies = Actir::Config.get("cookies", cookies_path) # if baidu_card_cookies != nill && baidu_card != nil # if baidu_card_cookies.size > baidu_card.size # # end # else # raise "no baifubao cards" # end baidu_card.each do |card, value| (card, address) end end |
.update_cookies(card, address = []) ⇒ Object
更新配置文件中的baidu_cookies
84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'lib/actir/script/cookies_baidu.rb', line 84 def (card, address = []) #打开百付宝 open_baifubao(address) #获取对应卡的账号密码 args = Actir::Config.get(baifubao_key + "." + card) #登录百付宝 login_baifubao(args["username"], args["password"]) #获取cookies = #清除之前的cookies (card, ) puts "Already update baifubao's cookies" end |