Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #import the module to deal with the requests
- import requests
- #import regular expression module
- import re
- #import time module
- import time
- #import mathermatics module
- import math
- #import random libary
- from random import randint
- #import the current time
- from datetime import datetime
- #declear important pages
- global resource
- resource = "http://s123-en.ogame.gameforge.com/game/index.php?page=resources"
- station = "http://s123-en.ogame.gameforge.com/game/index.php?page=station"
- global index
- index = "http://s123-en.ogame.gameforge.com/game/index.php"
- def login(s):
- #create a payload to login with
- payload = {'kid':'','uni':'s123-en.ogame.gameforge.com','login':'jhylands','pass':'*****'}
- #send that payload to the login server
- r = s.post("http://en.ogame.gameforge.com/main/login", data=payload)
- #display cookies
- for cookie in s.cookies:
- print (cookie.name,cookie.value)
- r = s.post(index)
- return s
- def getEnergy(s):
- r = s.post(index)
- trim = r.text
- start = trim.find('id="resources_energy"')
- trim = trim[start:]
- start = trim.find(">")+1
- trim = trim[start:]
- end = trim.find("<")
- return trim[:end].strip()
- #gets the current amount of a resource
- def getResourceLevel(s,type):
- r = s.post(index)
- trim = r.text
- start = trim.find('id="resources_' + type + '"')
- trim = trim[start:]
- start = trim.find(">")+1
- trim = trim[start:]
- end = trim.find("<")
- trim = trim[:end]
- return trim
- def upgrade(s,item):
- #upgrade = True
- #while upgrade:
- trim = cutToSupply(s,item)
- #trim is now limited to supply 4 or solar power
- if(trim.find("sendBuildRequest")!=-1):
- #it can be upgraded
- start = trim.find("sendBuildRequest") + 18
- trim=trim[start:]
- finish = trim.find("'")
- r = s.post(trim[:finish])
- return 0
- else:
- trim = cutToLevel(trim)
- print item + " level " + str(trim)
- return trim
- #requires cutToSupply first for mines only
- def cutToLevel(r):
- trim = r
- start = trim.find('</span')+8
- trim = trim[start:]
- finish = trim.find("</span")
- trim = trim[:finish].strip()
- try:
- trim = int(trim)
- except:
- #try something else
- trim = r
- start = trim.find('class="level"')
- trim = trim[start:]
- start = trim.find(">") +1
- trim = trim [start:]
- finish = trim.find("<")
- trim = trim[:finish].strip()
- return trim
- def cutToSupply(s,item):
- r = s.post(resource)
- trim = r.text
- start = trim.find("supply" + item) + 8
- trim = trim[start:]
- end = trim.find("</li>")
- trim = trim[:end]
- return trim
- def storageCap(level):
- # print "Level" + str(float(level))
- a = (20 * float(level)) / 33
- # print "A<1>" + str(a)
- a = 2.5 * math.exp(a)
- # print "A<2>" + str(a)
- # time.sleep(10)
- return 5000 * int(a)
- def mineCost(level,mult,B):
- return B * mult ** (int(level)-1)
- def build(s,page,type):
- #!!use class="disabled" to tell if an item will not upgrade
- r = s.post(index + "?page=" + page)
- trim = r.text
- start = trim.find("name='token'")+13
- trim = trim[start:]
- start = trim.find("'")+1
- trim = trim[start:]
- print trim[:32]
- trim = trim[:32]
- print "Token: " + trim
- token = trim
- trim = r.text
- start = trim.find(page + str(int(type) % 100))
- trim = trim[start:]
- end = trim.find(">")
- trim = trim[:end]
- if trim.find("on"):
- #create a payload to login with
- payload = {'token':token,'modus':'1','type':type,'menge':'1'}
- #send that payload to the login server
- r = s.post(index + "?page=" + page + "&depreciated=1", data=payload).text
- return True
- else:
- return False
- def checkForMessage(s):
- r = s.post(index)
- trim = r.text
- if trim.find("empty"):
- return False
- else:
- return True
- def printInboxStatus(s):
- if checkForMessage(s):
- print "You have unread message(s)"
- else:
- print "inbox empty"
- #create a session to hold the cookie data
- s = requests.Session()
- s = login(s)
- pausetime = 600
- thisUp="Metal"
- loopno = 0
- while True:
- #build solar sat
- # build(s,"shipyard","212")
- loopno +=1
- #get met level
- metalAmount = getResourceLevel(s,"metal")
- crystalAmount = getResourceLevel(s,"crystal")
- deuteriumAmount = getResourceLevel(s,"deuterium")
- print "This up:" + thisUp
- print "Loop no. :" + str(loopno)
- print datetime.now()
- print "Metal: " + metalAmount
- print "Crystal: " + crystalAmount
- print "Det : " + deuteriumAmount
- # f = open("log.txt",'a')
- # f.write("<log><time>")
- # f.write(datetime.now())
- # f.write("</time><this>")
- # f.write(thisUp)
- # f.write("</this>")
- # f.write("</log>")
- # f.close()
- if(randint(1,10)==7):
- s = requests.session()
- s = login(s)
- energy_amount = getEnergy(s)
- print "Energy: " + energy_amount
- if(int(energy_amount) < 50):
- level = upgrade(s,"4")
- while level!=0:
- #cost to upgrade
- trim = cutToSupply(s,"22")#23,24 resp
- levelStorage = cutToLevel(trim)
- # print "storageCap: " + str(storageCap(levelStorage))
- # print "mine cost: " + str(mineCost(level,1.5,75))
- if(storageCap(levelStorage)< (3 * mineCost(level,1.5,75)) ):
- while upgrade(s,"22")!=0:
- print "attempting to upgrade met store"
- #wait 10 mins to try again
- time.sleep(pausetime)
- trim = cutToSupply(s,"23")#p
- levelStorage = cutToLevel(trim)
- if(storageCap(levelStorage)< (3 * mineCost(level,1.5,35)) ):
- while upgrade(s,"23")!=0:
- #wait 10 mins to try again
- print "attempting to upgrade cry store"
- time.sleep(pausetime)
- printInboxStatus(s)
- print "Attempting to upgrade energy"
- level = upgrade(s,"4")
- time.sleep(pausetime)
- print "energy Upgraded"
- #because energy will get caught up if too low we continue without else
- if(thisUp=="Metal"):
- level = upgrade(s,"1")
- while level!=0:
- #cost to upgrade
- trim = cutToSupply(s,"22")#23,24 resp
- levelStorage = cutToLevel(trim)
- if(storageCap(levelStorage)< (3 * mineCost(level,1.5,60)) ):
- while upgrade(s,"22")!=0:
- print "attempting to upgrade met store"
- #wait 10 mins to try again
- time.sleep(pausetime)
- trim = cutToSupply(s,"23")#p
- levelStorage = cutToLevel(trim)
- if(storageCap(levelStorage)< (3 * mineCost(level,1.5,15)) ):
- while upgrade(s,"23")!=0:
- print "attempting to upgrade cry store"
- #wait 10 mins to try again
- time.sleep(pausetime)
- printInboxStatus(s)
- print "Trying to upgrade metal"
- level = upgrade(s,"1")
- time.sleep(pausetime)
- thisUp = "Crystal"
- print "Upgraded Metal"
- elif(thisUp=="Crystal"):
- level = upgrade(s,"2")
- while level!=0:
- #cost to upgrade
- trim = cutToSupply(s,"22")#23,24 resp
- levelStorage = cutToLevel(trim)
- if(storageCap(levelStorage)< (3 * mineCost(level,1.6,48)) ):
- while upgrade(s,"22")!=0:
- print "attempting to upgrade met store"
- #wait 10 mins to try again
- time.sleep(pausetime)
- trim = cutToSupply(s,"23")#p
- levelStorage = cutToLevel(trim)
- if(storageCap(levelStorage)< (3 * mineCost(level,1.6,24)) ):
- while upgrade(s,"23")!=0:
- print "attempting to upgrade cry store"
- #wait 10 mins to try again
- time.sleep(pausetime)
- printInboxStatus(s)
- print "crystal upgrade being tried"
- level = upgrade(s,"2")
- time.sleep(pausetime)
- thisUp="Deuterium"
- print "Upgraded crystal"
- elif(thisUp=="Deuterium"):
- level = (upgrade(s,"3"))
- while level!=0:
- #cost to upgrade
- trim = cutToSupply(s,"22")#23,24 resp
- levelStorage = cutToLevel(trim)
- if(storageCap(levelStorage)< (3 * mineCost(level,1.5,225)) ):
- while upgrade(s,"22")!=0:
- print "attempting to upgrade met store"
- #wait 10 mins to try again
- time.sleep(pausetime)
- trim = cutToSupply(s,"23")#p
- levelStorage = cutToLevel(trim)
- if(storageCap(levelStorage)< (3 * mineCost(level,1.5,75)) ):
- while upgrade(s,"23")!=0:
- print "attempting to upgrade cry store"
- #wait 10 mins to try again
- time.sleep(pausetime)
- printInboxStatus(s)
- print "Det upgrade being tried"
- level = upgrade(s,"3")
- time.sleep(pausetime)
- thisUp="Metal"
- print "upgraded deu"
- #build defence
- while not build(s,"defense","402"):
- print "build error"
Advertisement
Add Comment
Please, Sign In to add comment