DaveM@13: import random DaveM@13: DaveM@13: class Person: DaveM@13: url = 'https://horoscopes.astro-seek.com/calculate-love-compatibility/' DaveM@13: def __init__(self,personDict): DaveM@13: # self. = planetPositions() DaveM@13: self.id = personDict['ID'] DaveM@13: self.dob = personDict['DOB'] DaveM@13: self.tob = personDict['TOB'] DaveM@13: self.cob = personDict['COB'] DaveM@13: self.p_dob = personDict['pDOB'] DaveM@13: self.p_tob = personDict['pTOB'] DaveM@13: self.p_cob = personDict['pCOB'] DaveM@13: self.horiscope = None DaveM@13: DaveM@13: def makePayload(self): DaveM@13: if type(self.cob) is str: DaveM@13: cob_0 = float(self.cob.split(',')[0][1:]) DaveM@13: cob_1 = float(self.cob.split(',')[1]) DaveM@13: self.cob = (cob_0,cob_1) DaveM@13: if type(self.p_cob) is str: DaveM@13: pcob_0 = float(self.p_cob.split(',')[0][1:]) DaveM@13: pcob_1 = float(self.p_cob.split(',')[1]) DaveM@13: self.p_cob = (pcob_0,pcob_1) DaveM@13: if type(self.dob) is str: DaveM@13: self.dob = self.dob[1:-1].split(',') DaveM@13: if type(self.p_dob) is str: DaveM@13: self.p_dob = self.p_dob[1:-1].split(',') DaveM@13: if type(self.tob) is str: DaveM@13: self.tob = self.tob[1:-1].split(',') DaveM@13: if type(self.p_tob) is str: DaveM@13: self.p_tob = self.p_tob[1:-1].split(',') DaveM@13: # pdb.set_trace() DaveM@13: DaveM@13: # print dataDict['pDOB'] DaveM@13: DaveM@13: self.payload = {'send_calculation':'1', #Req DaveM@13: 'muz_narozeni_den':self.dob[0], DaveM@13: 'muz_narozeni_mesic':self.dob[1], DaveM@13: 'muz_narozeni_rok':self.dob[2], DaveM@13: 'muz_narozeni_hodina':self.tob[0], DaveM@13: 'muz_narozeni_minuta':self.tob[1], DaveM@13: 'muz_narozeni_city':'', DaveM@13: 'muz_narozeni_mesto_hidden':'Manually+place%3A+%C2%B0%27N%2C+%C2%B0%27E',#auto DaveM@13: 'muz_narozeni_stat_hidden':'XX', DaveM@13: 'muz_narozeni_podstat_kratky_hidden':'', DaveM@13: 'muz_narozeni_podstat_hidden':'', DaveM@13: 'muz_narozeni_podstat2_kratky_hidden':'', DaveM@13: 'muz_narozeni_podstat3_kratky_hidden':'', DaveM@13: 'muz_narozeni_input_hidden':'', DaveM@13: 'muz_narozeni_sirka_stupne':str(abs(self.cob[0])).split('.')[0], DaveM@13: 'muz_narozeni_sirka_minuty':str(float('0.'+str(self.cob[0]).split('.')[1])*60).split('.')[0], DaveM@13: 'muz_narozeni_sirka_smer': '1' if self.cob[0]<0 else '0', #address N Dir (0':'N',1':'S) DaveM@13: 'muz_narozeni_delka_stupne':str(abs(self.cob[1])).split('.')[0], #address E - Main DaveM@13: 'muz_narozeni_delka_minuty':str(float('0.'+str(self.cob[1]).split('.')[1])*60).split('.')[0], DaveM@13: 'muz_narozeni_delka_smer': '1' if self.cob[1]<0 else '0', #address E Dir (0':'E',1':'W) DaveM@13: 'muz_narozeni_timezone_form':'auto', DaveM@13: 'muz_narozeni_timezone_dst_form':'auto', DaveM@13: 'send_calculation':'1', DaveM@13: 'zena_narozeni_den':self.p_dob[0], DaveM@13: 'zena_narozeni_mesic':self.p_dob[1], DaveM@13: 'zena_narozeni_rok':self.p_dob[2], DaveM@13: 'zena_narozeni_hodina':self.p_tob[0], DaveM@13: 'zena_narozeni_minuta':self.p_tob[1], DaveM@13: 'zena_narozeni_city':'', DaveM@13: 'zena_narozeni_mesto_hidden':'Manually+place%3A+%C2%B0%27N%2C+%C2%B0%27E', DaveM@13: 'zena_narozeni_stat_hidden':'XX', DaveM@13: 'zena_narozeni_podstat_kratky_hidden':'', DaveM@13: 'zena_narozeni_podstat_hidden':'', DaveM@13: 'zena_narozeni_podstat2_kratky_hidden':'', DaveM@13: 'zena_narozeni_podstat3_kratky_hidden':'', DaveM@13: 'zena_narozeni_input_hidden':'', DaveM@13: 'zena_narozeni_sirka_stupne':str(abs(self.p_cob[0])).split('.')[0], DaveM@13: 'zena_narozeni_sirka_minuty':str(float('0.'+str(self.p_cob[0]).split('.')[1])*60).split('.')[0], DaveM@13: 'zena_narozeni_sirka_smer': '1' if self.p_cob[0]<0 else '0', DaveM@13: 'zena_narozeni_delka_stupne':str(abs(self.p_cob[1])).split('.')[0], DaveM@13: 'zena_narozeni_delka_minuty':str(float('0.'+str(self.p_cob[1]).split('.')[1])*60).split('.')[0], DaveM@13: 'zena_narozeni_delka_smer': '1' if self.p_cob[1]<0 else '0', DaveM@13: 'zena_narozeni_timezone_form':'auto', DaveM@13: 'zena_narozeni_timezone_dst_form':'auto', DaveM@13: 'switch_interpretations':'0', DaveM@13: 'house_system':'placidus', DaveM@13: 'uhel_orbis':'#tabs_redraw'} DaveM@13: # return R DaveM@13: DaveM@13: DaveM@13: class planetRelation: DaveM@13: def __init__(self,planetName): DaveM@13: self.name = planetName DaveM@13: self.angleA = None DaveM@13: self.angleB = None DaveM@13: DaveM@13: def setLocation(self,A,B): DaveM@13: self.angleA = '.'.join(A.encode('ascii','replace').split('?'))[:-1] DaveM@13: self.angleB = '.'.join(B.encode('ascii','replace').split('?'))[:-1] DaveM@13: DaveM@13: DaveM@13: def test_random(self): DaveM@13: self.angleA = random.random()*360 DaveM@13: self.angleB = random.random()*360 DaveM@13: DaveM@13: DaveM@13: class planetPositions: DaveM@13: aspectDict = {'conjunct':0,'semi-square':45,'sextile':60,'square':90,'trine':120,'opposite':180} DaveM@13: planetNames = ['sun','moon','mercury','venus','mars','jupiter','saturn','uranus','neptune','pluto','node','lilith','chiron','asc','ic','dsc','mc','asc_mc','sun_moon'] DaveM@13: def __init__(self): DaveM@13: self.planets = {} DaveM@13: for i in range(len(planetPositions.planetNames)): DaveM@13: self.planets[planetPositions.planetNames[i]] = planetRelation(planetPositions.planetNames[i]) DaveM@13: self.aspect = {} DaveM@13: DaveM@13: def test_random(self): DaveM@13: for planet in self.planets: DaveM@13: self.planets[planet].test_random() DaveM@13: DaveM@13: def calcAngle(self,componentA,componentB): DaveM@13: self.angle = max(self.planets[componentA].angleA,self.planets[componentB].angleB) - min(self.planets[componentA].angleA,self.planets[componentB].angleB) DaveM@13: self.angleRange = self.angle-10,self.angle+10 DaveM@13: DaveM@13: def calcAspect(self,componentA,componentB): DaveM@13: self.calcAngle(componentA,componentB) DaveM@13: for aspect in planetPositions.aspectDict: DaveM@13: if self.angleRange[0] < planetPositions.aspectDict[aspect] and self.angleRange[1] > planetPositions.aspectDict[aspect]: DaveM@13: self.aspect[componentA,componentB] = aspect DaveM@13: return aspect DaveM@13: DaveM@13: DaveM@13: DaveM@13: DaveM@13: DaveM@13: DaveM@13: DaveM@13: DaveM@13: