Advertisement
Guest User

SytheBumper.py

a guest
Dec 15th, 2015
591
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.38 KB | None | 0 0
  1. import urllib
  2. import urllib2
  3. import cookielib
  4. import re
  5. import hashlib
  6. import time
  7.  
  8.  
  9. """
  10. @author John Devola
  11. @version 0.01
  12. """
  13.  
  14. class Thread:
  15.  
  16. def __init__(self, refNumber, message):
  17. self.refNumber = refNumber
  18. self.message = message
  19.  
  20. def getNumber(self):
  21. return self.refNumber
  22. def getMessage(self):
  23. return self.message
  24.  
  25. class Bumper:
  26.  
  27. def __init__(self, userName,passWord,bumpHours):
  28.  
  29. self.jar = cookielib.FileCookieJar("cookies")
  30. self.opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self.jar))
  31. self.opener.addheaders = [('User-agent', 'Mozilla/5.0')]
  32.  
  33. self.user = userName
  34. self.password = passWord
  35.  
  36. m = hashlib.md5()
  37. m.update(self.password)
  38. self.password = m.hexdigest()
  39.  
  40. self.bumpHours = bumpHours
  41. self.threads = []
  42.  
  43. def add_thread(self, threadNum, message):
  44. thread = Thread(threadNum,message);
  45. self.threads.append(thread)
  46.  
  47. def toString(self):
  48. print self.user, self.password, self.bumpHours
  49. for t in self.threads:
  50. print t.getNumber(), t.getMessage()
  51.  
  52. def run(self):
  53.  
  54. while True:
  55. self.login()
  56. for t in self.threads:
  57. self.bumpThread(t)
  58. self.sleepTimer();
  59.  
  60.  
  61. def sleepTimer(self):
  62. counter = 0
  63. timeToWait = int(self.bumpHours) * 3600
  64. print "Waiting", timeToWait, "until next bump"
  65.  
  66. while counter != timeToWait:
  67. time.sleep(600)
  68. counter += 600
  69. print (timeToWait - counter), "seconds left till next bump"
  70.  
  71.  
  72. def login(self):
  73. logindata = urllib.urlencode({'do' : 'login',
  74. 'url':'',
  75. 'vb_login_md5password' : self.password,
  76. 'vb_login_md5password_utf' : self.password,
  77. 's' : '',
  78. 'vb_login_username': self.user,
  79. 'vb_login_password': '' })
  80.  
  81. response = self.opener.open("http://www.sythe.org/login.php?do=login", logindata)
  82. """file = open(str(self.user)+'.html','w');
  83. file.write(response.read());
  84. file.close()"""
  85. print "logged in as", self.user
  86. time.sleep(5);
  87.  
  88. def bumpThread(self,thread):
  89.  
  90. threadNumber = thread.getNumber()
  91. threadMessage = thread.getMessage()
  92.  
  93.  
  94. logindata = urllib.urlencode({'title' : 'The Thread',
  95. 'message' : threadMessage,
  96. 'wysiwyg' : '0',
  97. 'iconid' : '0',
  98. 's' : '',
  99. 'do' : 'postreply',
  100. 't' : threadNumber,
  101. 'p' : '',
  102. 'posthash' : '',
  103. 'poststarttime' : '',
  104. 'loggedinuser' : '',
  105. 'multiquoteempty' : '',
  106. 'sbutton' : 'Submit Reply',
  107. 'signature' : '1',
  108. 'parseurl' : '1',
  109. 'emailupdate' : '9999' })
  110.  
  111. openThread = self.opener.open("http://www.sythe.org/newreply.php?do=postreply&t=" + str(threadNumber),logindata)
  112. time.sleep(15);
  113. """file = open(str(threadNumber)+'.html','w');
  114. file.write(openThread.read());
  115. file.close()"""
  116.  
  117. print "Posted message to thread", threadNumber
  118.  
  119. def getData(text):
  120. matches=re.findall(r'\"(.+?)\"',text)
  121. return ",".join(matches)
  122.  
  123.  
  124. f = open('Sythe.txt', 'r+')
  125. data = {}
  126. threads = 0
  127.  
  128. for line in f:
  129. tempData = getData(line)
  130. key = line.replace(" = ","").replace("\n","").replace("\"","").replace(tempData,"");
  131. data[key] = tempData
  132. if("Thread" in key):
  133. threads += 1
  134.  
  135. bump = Bumper(data["Username"],data["Password"],data["HoursBump"])
  136. for x in range(1,threads+1):
  137. bump.add_thread(data["Thread"+str(x)],data["Message"+str(x)])
  138.  
  139.  
  140. f.close()
  141.  
  142. bump.run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement