You need riddles http class, general class, and I think the gaia.
Code:
######Gaiaonline Login#####
######Made by Bman    #####
######logicalgamers   #####
######asydix@live.ca  #####
from mods import gaiaonline, session, general
import hashlib
class Main:
    def __init__(self):
        http = session.HTTP()
        Gaia = gaiaonline.Gaiaonline(session.HTTP())
        g = general.General
        self.user = input("Please input your Gaiaonline Username : ")
        self.passw = input("Please input your Gaiaonline Password : ")
        Html = http.GET("http://www.gaiaonline.com/auth/login")
        strtp = 'name="token" value="(.*)"'
        strtkp = 'name="sid" value="(.*)"'
        self.strtoken = g.Find_All(self,strtp,Html)
        self.strsid = g.Find_All(self,strtkp,Html)
        self.strtoken = self.extract(str(self.strtoken),"['","']")
        self.strsid = self.extract(str(self.strsid),"['","']")
        self.chap = self.Chap()
        print("Chap : "+self.chap)
        Html = http.POST("http://www.gaiaonline.com/auth/login","token="+self.strtoken+"&sid="+self.strsid+"&redirect=http%3A%2F%2Fwww.gaiaonline.com%2Fauth%2Flogin&username="+self.user+"&password=&chap="+self.chap)
        if "gold_amt" in Html:
            print("Logged in!")
        else:
            print("Failed to log in.")
        input()
        
    def extract(self,text, sub1, sub2):
        return text.split(sub1, 1)[-1].split(sub2, 1)[0]
    def Chap(self):
        g = general.General()
        chap1 = g.md5Digest(self.passw)
        encp = g.md5Digest(chap1+self.strtoken)
        return encp
if __name__ == "__main__":
    Main()
Prints chap, edit it out if you want.