-
Notifications
You must be signed in to change notification settings - Fork 0
/
TravianLogic.py
123 lines (81 loc) · 3.24 KB
/
TravianLogic.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
#!/usr/bin/python
# -*- coding: utf-8; -*-
#
from TravianClient import TravianClient
from TravianParser import TravianParser
from village import Village, Resources
from units import Troop
class TravianLogic:
def __init__(self, config):
self.resources = Resources()
self.Village = Village()
self.parser = TravianParser()
self.tclient = TravianClient(config)
self.conn = False
def connect(self):
self.conn = self.tclient.login()
return self.conn
def update(self):
if not self.conn:
return False
# FIELDS
html = self.tclient.get("dorf1.php")
dorf1 = self.parser.parse(html)
# VILLAGE BUILDINGS
html = self.tclient.get("dorf2.php")
dorf2 = self.parser.parse(html)
# PROFILE
uid = self.parser.getProfileUid(dorf1)
html = self.tclient.get("spieler.php?uid=%s" % (uid))
profile = self.parser.parse(html)
### RALLY POINT
html = self.tclient.get("build.php?id=39")
rally_point = self.parser.parse(html)
village_name = self.parser.getVillageName(dorf1)
server_time, calculated = self.parser.getServerTime(dorf1)
res = self.parser.getRes(dorf1)
troops = self.parser.getTroops(dorf1)
movements = self.parser.getMovements(dorf1)
fields = self.parser.getFields(dorf1)
for field in fields:
id, name, level = field
self.Village.updateBuilding(id, name=name, level=level)
buildings = self.parser.getVillageBuildings(dorf2)
for build in buildings:
id, name, level = build
self.Village.updateBuilding(id, name=name, level=level)
villages = self.parser.getVillages(profile)
print self.Village
mega_troop = Troop()
mega_troop.owner = "angelow"
my, reinf, prisoners = self.parser.getRallyPoint(rally_point)
for village, troops in my.items():
t = Troop()
t.village = village
t.owner = "myself"
t.update(troops)
print t
mega_troop += t
for owner, data in reinf.items():
for village, troops in data.items():
t = Troop()
t.village = village
t.owner = owner
t.type = "deff"
t.update(troops)
print t
mega_troop += t
for owner, data in prisoners.items():
for village, troops in data.items():
t = Troop()
t.village = village
t.owner = owner
t.type = "prisoners"
t.update(troops)
print t
mega_troop += t
mega_troop.owner = "angelow"
mega_troop.village = village_name
mega_troop.type = "all units"
print mega_troop
return True