Mercurial > hg > horiscopes
comparison V4/synastry.py @ 13:b253748dbb11
developing V4 - Class based structure, with self calcuation of all aspects
author | DaveM |
---|---|
date | Sun, 04 Mar 2018 14:51:43 +0000 |
parents | |
children | 50a95089414d |
comparison
equal
deleted
inserted
replaced
12:18e337b2550d | 13:b253748dbb11 |
---|---|
1 import random | |
2 | |
3 class Person: | |
4 url = 'https://horoscopes.astro-seek.com/calculate-love-compatibility/' | |
5 def __init__(self,personDict): | |
6 # self. = planetPositions() | |
7 self.id = personDict['ID'] | |
8 self.dob = personDict['DOB'] | |
9 self.tob = personDict['TOB'] | |
10 self.cob = personDict['COB'] | |
11 self.p_dob = personDict['pDOB'] | |
12 self.p_tob = personDict['pTOB'] | |
13 self.p_cob = personDict['pCOB'] | |
14 self.horiscope = None | |
15 | |
16 def makePayload(self): | |
17 if type(self.cob) is str: | |
18 cob_0 = float(self.cob.split(',')[0][1:]) | |
19 cob_1 = float(self.cob.split(',')[1]) | |
20 self.cob = (cob_0,cob_1) | |
21 if type(self.p_cob) is str: | |
22 pcob_0 = float(self.p_cob.split(',')[0][1:]) | |
23 pcob_1 = float(self.p_cob.split(',')[1]) | |
24 self.p_cob = (pcob_0,pcob_1) | |
25 if type(self.dob) is str: | |
26 self.dob = self.dob[1:-1].split(',') | |
27 if type(self.p_dob) is str: | |
28 self.p_dob = self.p_dob[1:-1].split(',') | |
29 if type(self.tob) is str: | |
30 self.tob = self.tob[1:-1].split(',') | |
31 if type(self.p_tob) is str: | |
32 self.p_tob = self.p_tob[1:-1].split(',') | |
33 # pdb.set_trace() | |
34 | |
35 # print dataDict['pDOB'] | |
36 | |
37 self.payload = {'send_calculation':'1', #Req | |
38 'muz_narozeni_den':self.dob[0], | |
39 'muz_narozeni_mesic':self.dob[1], | |
40 'muz_narozeni_rok':self.dob[2], | |
41 'muz_narozeni_hodina':self.tob[0], | |
42 'muz_narozeni_minuta':self.tob[1], | |
43 'muz_narozeni_city':'', | |
44 'muz_narozeni_mesto_hidden':'Manually+place%3A+%C2%B0%27N%2C+%C2%B0%27E',#auto | |
45 'muz_narozeni_stat_hidden':'XX', | |
46 'muz_narozeni_podstat_kratky_hidden':'', | |
47 'muz_narozeni_podstat_hidden':'', | |
48 'muz_narozeni_podstat2_kratky_hidden':'', | |
49 'muz_narozeni_podstat3_kratky_hidden':'', | |
50 'muz_narozeni_input_hidden':'', | |
51 'muz_narozeni_sirka_stupne':str(abs(self.cob[0])).split('.')[0], | |
52 'muz_narozeni_sirka_minuty':str(float('0.'+str(self.cob[0]).split('.')[1])*60).split('.')[0], | |
53 'muz_narozeni_sirka_smer': '1' if self.cob[0]<0 else '0', #address N Dir (0':'N',1':'S) | |
54 'muz_narozeni_delka_stupne':str(abs(self.cob[1])).split('.')[0], #address E - Main | |
55 'muz_narozeni_delka_minuty':str(float('0.'+str(self.cob[1]).split('.')[1])*60).split('.')[0], | |
56 'muz_narozeni_delka_smer': '1' if self.cob[1]<0 else '0', #address E Dir (0':'E',1':'W) | |
57 'muz_narozeni_timezone_form':'auto', | |
58 'muz_narozeni_timezone_dst_form':'auto', | |
59 'send_calculation':'1', | |
60 'zena_narozeni_den':self.p_dob[0], | |
61 'zena_narozeni_mesic':self.p_dob[1], | |
62 'zena_narozeni_rok':self.p_dob[2], | |
63 'zena_narozeni_hodina':self.p_tob[0], | |
64 'zena_narozeni_minuta':self.p_tob[1], | |
65 'zena_narozeni_city':'', | |
66 'zena_narozeni_mesto_hidden':'Manually+place%3A+%C2%B0%27N%2C+%C2%B0%27E', | |
67 'zena_narozeni_stat_hidden':'XX', | |
68 'zena_narozeni_podstat_kratky_hidden':'', | |
69 'zena_narozeni_podstat_hidden':'', | |
70 'zena_narozeni_podstat2_kratky_hidden':'', | |
71 'zena_narozeni_podstat3_kratky_hidden':'', | |
72 'zena_narozeni_input_hidden':'', | |
73 'zena_narozeni_sirka_stupne':str(abs(self.p_cob[0])).split('.')[0], | |
74 'zena_narozeni_sirka_minuty':str(float('0.'+str(self.p_cob[0]).split('.')[1])*60).split('.')[0], | |
75 'zena_narozeni_sirka_smer': '1' if self.p_cob[0]<0 else '0', | |
76 'zena_narozeni_delka_stupne':str(abs(self.p_cob[1])).split('.')[0], | |
77 'zena_narozeni_delka_minuty':str(float('0.'+str(self.p_cob[1]).split('.')[1])*60).split('.')[0], | |
78 'zena_narozeni_delka_smer': '1' if self.p_cob[1]<0 else '0', | |
79 'zena_narozeni_timezone_form':'auto', | |
80 'zena_narozeni_timezone_dst_form':'auto', | |
81 'switch_interpretations':'0', | |
82 'house_system':'placidus', | |
83 'uhel_orbis':'#tabs_redraw'} | |
84 # return R | |
85 | |
86 | |
87 class planetRelation: | |
88 def __init__(self,planetName): | |
89 self.name = planetName | |
90 self.angleA = None | |
91 self.angleB = None | |
92 | |
93 def setLocation(self,A,B): | |
94 self.angleA = '.'.join(A.encode('ascii','replace').split('?'))[:-1] | |
95 self.angleB = '.'.join(B.encode('ascii','replace').split('?'))[:-1] | |
96 | |
97 | |
98 def test_random(self): | |
99 self.angleA = random.random()*360 | |
100 self.angleB = random.random()*360 | |
101 | |
102 | |
103 class planetPositions: | |
104 aspectDict = {'conjunct':0,'semi-square':45,'sextile':60,'square':90,'trine':120,'opposite':180} | |
105 planetNames = ['sun','moon','mercury','venus','mars','jupiter','saturn','uranus','neptune','pluto','node','lilith','chiron','asc','ic','dsc','mc','asc_mc','sun_moon'] | |
106 def __init__(self): | |
107 self.planets = {} | |
108 for i in range(len(planetPositions.planetNames)): | |
109 self.planets[planetPositions.planetNames[i]] = planetRelation(planetPositions.planetNames[i]) | |
110 self.aspect = {} | |
111 | |
112 def test_random(self): | |
113 for planet in self.planets: | |
114 self.planets[planet].test_random() | |
115 | |
116 def calcAngle(self,componentA,componentB): | |
117 self.angle = max(self.planets[componentA].angleA,self.planets[componentB].angleB) - min(self.planets[componentA].angleA,self.planets[componentB].angleB) | |
118 self.angleRange = self.angle-10,self.angle+10 | |
119 | |
120 def calcAspect(self,componentA,componentB): | |
121 self.calcAngle(componentA,componentB) | |
122 for aspect in planetPositions.aspectDict: | |
123 if self.angleRange[0] < planetPositions.aspectDict[aspect] and self.angleRange[1] > planetPositions.aspectDict[aspect]: | |
124 self.aspect[componentA,componentB] = aspect | |
125 return aspect | |
126 | |
127 | |
128 | |
129 | |
130 | |
131 | |
132 | |
133 | |
134 |