Last active
December 26, 2015 07:09
-
-
Save saiten/7113103 to your computer and use it in GitHub Desktop.
destiny公式のアカウントを監視して、ベータコードっぽいものをtweetしたら登録してみるスクリプト
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# destiny beta code getter | |
twitter = require 'ntwitter' | |
Spooky = require 'spooky' | |
async = require 'async' | |
# | |
# config | |
# | |
twitterToken = | |
consumer_key: 'CONSUMER_KEY' | |
consumer_secret: 'CONSUMER_SECRET' | |
access_token_key: 'ACCESS_TOKEN' | |
access_token_secret: 'ACCESS_TOKEN_SECRET' | |
psnAccount = | |
username: 'USERNAME' | |
password: 'PASSWORD' | |
targetScreenName = "DestinyTheGame" | |
# | |
# challenge redeem | |
# | |
challengeRedeem = (account, code, callback) -> | |
console.log "challenge code : #{code}" | |
config = | |
child: | |
transport: 'http' | |
casper: | |
pageSetting: | |
loadImages: false | |
loadPlugins: false | |
userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5)' | |
logLevel: 'debug' | |
verbose: true | |
waitTimeout: 10000 | |
spooky = new Spooky config, (err) -> | |
throw err if err? | |
# access bungie site | |
spooky.start 'http://www.bungie.net/en/User/coderedemption', -> | |
loggedIn = @evaluate -> $("input#text_code:visible").length > 0 | |
if loggedIn | |
@echo "already logged in" | |
@click "div#alert" | |
@bypass 6 | |
# psn login | |
spooky.then -> @clickLabel "Sign In" | |
spooky.then -> @clickLabel "PlayStation Network" | |
spooky.waitForPopup 'Psnid' | |
spooky.withPopup 'Psnid', [{ account: account }, -> | |
@fill 'form#mainform', { | |
j_username: account.username | |
j_password: account.password | |
}, true | |
] | |
# input code | |
spooky.waitUntilVisible 'input#text_code' | |
spooky.then [{ code: code }, -> @sendKeys 'input#text_code', code ] | |
spooky.then -> @click "a.btn_submitCode" | |
spooky.then [{ code: code }, -> @wait 1000, => @capture code + '.png' ] | |
spooky.run -> @emit 'finish' | |
spooky.on 'error', (err, stack) -> | |
console.log err | |
spooky.on 'console', (line) -> | |
console.log line | |
spooky.on 'finish', -> | |
callback() | |
# | |
# watch timeline | |
# | |
watchTimeline = (twitterToken, account, targetScreenName) -> | |
twit = new twitter twitterToken | |
twit.stream 'user', (stream) -> | |
stream.on 'data', (data) -> | |
if data?.text? and data?.user?.screen_name is targetScreenName | |
console.log "#{data.user.screen_name} : #{data.text}" | |
if codes = data.text.match /[A-Z0-9]{3}-[A-Z0-9]{3}-[A-Z0-9]{3}/g | |
# shuffle codes | |
random = codes.map Math.random | |
codes.sort (a,b) -> random[a] - random[b] | |
console.log "codes : #{codes}" | |
async.eachSeries codes, (code, callback) -> | |
challengeRedeem account, code, callback | |
stream.on 'end', (response) -> | |
console.log response | |
stream.on 'destroy', (response) -> | |
console.log response | |
# | |
# start | |
# | |
watchTimeline twitterToken, psnAccount, targetScreenName |
わー、見過ごしてました。すいません。
もしかしたらnodeのバージョンが少し古いのかもしれないですね。
参考までに自分の環境は↓の感じです。
OSX 10.8.5
[email protected]
[email protected]
[email protected]
[email protected]
またbetaコード配布されるかもしれないので参考までに。
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
ありがとうございます。
良い物めっけたと喜んだのですが以下の様になってうまくいきません
良かったら回答お願いします
C:\node>coffee code_getter.coffee
DestinyTheGame : XXX-XXX-XXX
codes : XXX-XXX-XXX
challenge code : XXX-XXX-XXX
{ [Error: Child terminated with non-zero exit code 127] details: { code: 127, signal: null } }
node v0.8.25 windows7 64bit
↓code127はPATHの問題みたいですがもうなにがなんだか
SpookyJS/SpookyJS#14
何だこいつと思われたら放置かコメント削除してください。慣れないことして疲れ果てました
失礼しました