Neverendless 프리서버에서 와우를 시작하기는 했는데, 문제가 있었습니다. vote 템을 사기 위해서는 주기적으로-12시간마다- vote를 해야되는데, 인간적으로 저걸 위해서 맨날 사이트를 쳐다보는 짓은 못하겠어서, 간단하게 script를 만들었습니다.
이 script를 돌리기 위해서는 아래와 같은 것들을 설치해야 합니다.
- python 2.5 or 2.6 : http://python.org/download/
- ClientForm : http://wwwsearch.sourceforge.net/ClientForm/
- ClientCookie : http://wwwsearch.sourceforge.net/ClientCookie/
vote.py를 매시간 혹은 그보다 짧게 실행하다록 윈도우즈의 예약작업이나 cron을 설정해 놓으시면 됩니다. 그러면 vote.py는 최근 vote를 수행한지 12시간이 지나면 로그인해서 vote를 하게 됩니다.
login 아이디와 비번은 아래 부분을 수정하시면 됩니다.
11. form['login'] = '아이디'
12. form['pw'] = '비번'
binary로 배포할까 하다가, 비번을 빼가는걸로 오해하실 분들이 있으실지 몰라서 소스채로 오픈합니다.
그럼 즐거운 와우생활 하세요~
[Download vote.py]
- #/usr/bin/python
- import urllib2, time, traceback, pickle
- import ClientCookie
- from ClientForm import ParseResponse
- def vote():
- print 'try to vote'
- url = "http://neverendless-wow.com/login/?=back=/usercp/voteshop/"
- forms1 = ParseResponse( urllib2.urlopen( url ) )
- form = forms1[0]
- form['login'] = 'INPUT YOUR ID HERE'
- form['pw'] = 'INPUT YOUR PASSWORD HERE'
- request = form.click()
- response = ClientCookie.urlopen( request )
- response = ClientCookie.urlopen('http://neverendless-wow.com/usercp/vote/')
- forms2 = ParseResponse( response )
- print 'the number of form detected :', len(forms2)
- for form in forms2:
- time.sleep(2)
- try:
- req = form.click()
- response = ClientCookie.urlopen( req )
- except:
- #traceback.print_exc()
- pass
- else:
- print 'clicked'
- return
- if __name__ == "__main__":
- bVote = False
- try:
- f = open('time.pkl', 'rb')
- prev = pickle.load(f)
- f.close()
- curtime = time.time()
- dur = curtime - prev
- if dur > 12*60*60:
- bVote = True
- else:
- print 'not ready yet'
- except:
- traceback.print_exc()
- bVote = True
- if bVote:
- vote()
- f = open('time.pkl', 'wb')
- curtime= time.time()
- pickle.dump(curtime, f)
- f.close()